Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
15 Июнь 2022

Дружим JQuery Styler и Vue JS в реализации 1С Битрикс API

Всем привет!
Очень давно не писал — просто некогда. В отличие от времени когда я работал админом, сейчас, работая веб программистом свободного времени практически нет — всегда есть работа, которую нужно работать 🙂

Само по себе решение дружбы JQuery Styler и Vue JS конечно не лучший вариант, в идеале вообще нужно выкинуть JQuery и реализовать фронт на чистом Vue…
Но когда вёрстка собрана на JQuery + Styler, соответственно со стилями «подогнанными» под Styler то на подбор нужных компонентов и их стилизация потребуется довольно много времени (по крайней мере у меня т.к. готовых подобных решений я не нашел).

Проблема — при обновлении поля значение в модели не обновляется, хотя поле прикручено к модели через v-model.
Решение — в vue mounted() вешаем на изменения объекта styler-а vue метод обновления значения поля в модели + в моей реализации далее прокидываем из дочернего компонента родителю с помощью $emit

В реализации API 1С Битрикс компонент оборачиваем в BX.Vue.component()

Пример реализации для чекбокса

Далее уже в шаблоне основного компонента используем пользовательский vue тег данного компонента с штатной директивой v-model для связывания поля ввода и с переменной

На авторство не претендую — компоненты реализованы в одном из проектов веб студии Слон, где я в данный момент удалённо работаю.

PS
Добавлю реализацию для выбора даты

рубрики: Bitrix, Javascript - JQuery, VUE JS | Комментарии (0)

18 Март 2022

Битрикс — чистим b_sale_viewed_product

Фактически это код метода CSaleViewedProduct::ClearViewed() с увеличенным лимитом (1000 -> 10000000), который можно запускать автономно через ком. строку PHP.
Лимит вообще можно убрать (но запускать ночью, в момент выполнения, сайт зависнет — на 5 миллионов записей у меня чистило где-то минут 10).

По идее метод очистки должен отрабатывать штатно, но у клиента почему-то таблица разрослась — пока решил почистить и понаблюдать причины.
(возможно как раз из-за маленького LIMIT либо по какой то причине метод вообще не отрабатывает).

Настройки, влияющие на размер этой таблицы расположены в настройках модуля «Интернет магазин»
«Время хранения просмотренных товаров (дней)» и «Максимальное количество просмотренных товаров пользователя».

После удаления желательно произвести оптимизацию БД.

рубрики: Bitrix | Комментарии (0)

24 Февраль 2022

bitrix cli в режиме watch не видит изменений vue — решение

При работе с bitrix cli в режиме watch столкнулся с проблемой — при изменении в vue файлах проект не пересобирается, что оцень неудобно — постоянно приходится в ручную запускать bitrix build.
Для решения необходимо модифицировать два файла

/usr/local/lib/node_modules/@bitrix/cli/src/utils/is-allowed.js
в строке 22 в switch добавляем строку
case ‘.vue’

/usr/local/lib/node_modules/@bitrix/cli/src/tools/watch.js
в строке 21 (функция createPattern) в цикл forEach добавляем строку
acc.push(slash(path.resolve(currentConfig.context, ‘**/*.vue’)));

далее в каталоге /usr/local/lib/node_modules/@bitrix/cli/ запускаем npm run build

всё — запускаем в проекте
bitrix build -w
меняем vue файл и видим, что сборка осуществляется в автоматическом режиме

рубрики: Bitrix | Комментарии (0)

18 Ноябрь 2021

PHP скрипт поиска изменённых файлов

В текущей разработке сделал скриптик, может кому пригодиться 🙂

Ищет изменённые файлы по маске «*.php» в рутовой директории, за исключением [«bitrix», «upload», «local»] за последние сутки.

Две доки по find с хорошими примерами
https://www.dmosk.ru/miniinstruktions.php?mini=search-linux
https://masterpro.ws/forum/6-linux/4710-kak-nayti-nedavno-modificirovannye-fayly-v-linux

рубрики: Bitrix, PHP | Комментарии (0)

2 Ноябрь 2021

MYSQL Убираем дубли из таблицы — есть ID и нет ID

MYSQL Убираем дубли из таблицы если есть поле ID

MYSQL Убираем дубли из таблицы если нет поля ID

на примере таблицы b_user_access_check
В текущей версии 1С Битрикс айдишника нет и пишут они туда без какого либо контроля на дубли, в результате чего у одного из клиентов 80 млн. записей и 8 гигабайт «вес» файла таблицы, всё это «добро» от включенной галочки «Сохранять историю изменения полей профиля пользователя:» и нулём в «Сколько дней хранить историю».
Собственно, штатных методов почистить не нашел и саппорт тоже ничего не подсказал, поэтому убираем дубли напрямую запросом:

рубрики: Bitrix, MYSQL | Комментарии (0)

28 Июнь 2021

Полная очистка кеша memcashe

Чистка напрямую — соединяемся на порт и чистим командой

php вариант

рубрики: Bitrix | Комментарии (0)

17 Июнь 2021

Быстрое удаление файлового кеша на сайте Битрикс.

Выполнить команду в php-командной строке

>————— код ——————-
$obCache = new CPHPCache();
$obCache->CleanDir();
>—————————————

Все файлы кеша маркируются на удаление.
Потом на сервере

>————— код ——————-
rm -rf /home/bitrix/www/bitrix/cache/*.~*
>—————————————

PS
Это официальная информация от саппорта 1С-Битрикс (вообще Битрикс не рекомендует чистить кеш каким либо методом, кроме как из панели управления).
Запрос делал в связи с тем, что на одном крупном проекте файловый кеш — и чистится он из админки более 2х часов …
Надеюсь клиент согласится перевести кеш на memcache…

рубрики: Bitrix | Комментарии (0)

19 Май 2021

Битрикс — при изменении свойств элемента не отрабатывает OnBlockElementUpdate

Есть модуль по загрузке в Битрикс, где меняются свойства элемента инфоблока, НО OnBlockElementUpdate не отрабатывал.
Меняю с админки — пашет!

Ответ прост — в модуле для обновления свойств использовали не обновление элемента, а именно обновление свойств.
Поставил обработчик на OnIBlockElementSetPropertyValuesEx — вуайля, событие поймалось!

рубрики: Bitrix | Комментарии (0)

17 Май 2021

Битрикс «Миграции» — скрипт для переноса изменений БД

Очень полезная штука по сабжу
https://marketplace.1c-bitrix.ru/solutions/sprint.migration/

Автор молодец — всё чётко, понятно, удобно!

Добавлю к себе в инструментарий полезных модулей.

рубрики: Bitrix | Комментарии (0)

21 Апрель 2021

Не работают Cookie на ядре D7 Битрикс

Писать совсем некогда! Работа в веб-студии это прям тема — времени нет ни на что 🙂
Но всё же этот пост не могу не опубликовать, если бы мне такое попалось — экономия 1-2 часа 🙂
(да, да — именно столько я не мог «воткнуть» почему не работают примеры из документации)

Сегодня чуть мозг себе не взорвал, пока пытался понять, почему не работает механизм куков на ядре D7 Битрикс.
Всё делаю как в примерах — не пашет!
https://dev.1c-bitrix.ru/api_d7/bitrix/main/web/cookie/index.php
https://estrin.pw/bitrix-d7-snippets/s/cookie/
https://www.intervolga.ru/blog/projects/d7-analogi-lyubimykh-funktsiy-v-1s-bitriks/#section12
и только в блоге Антона К. дошел до истины!

ВНИМАНИЕ на странице обязательно должен быть подключен
require($_SERVER[‘DOCUMENT_ROOT’] . ‘/bitrix/footer.php’);
или
require($_SERVER[«DOCUMENT_ROOT»].BX_ROOT.»/modules/main/include/epilog_after.php»);
т.к. куки d7 добавляются именно в эпилоге.
(там вызывается метод Bitrix\Main\HttpResponse::flush() )

рубрики: Bitrix, Битрикс D7 | Комментарии (0)