Спасибо на добром слове. Наверно правда стоит сделать блог здесь, за статьи о битриксе на хабре все равно инвайт получить маловероятно =) Постараюсь в ближайшие пару дней написать продолжение, какая тема была бы наиболее интересна?
Пошагово все описать к сожалению не получится, но могу примерно описать набор инструментов, которые использую: IDE - phpstorm к нему вдобавок - для нормального автодополнения bxApiDocs и сниппеты с подключением компонентов https://github.com/matiaspub/bxCompSnpt
Сама разработка - в зависимости от того, как и с кем ведется разработка. Из вариантов: 1. Разработка на хостинге(через ftp/sftp), в этом случае дебага конечно не будет 2. На локальной копии, по готовности - заливка на хостинг 3. С использованием git - как и первый вариант, только у каждого разработчика своя копия на локальной машине, итог сводится на рабочий сервер с помощьют гита. Тут основная проблема с настройками битрикса - т.к. миграций в нем нет.
В 14-й версии вроде как обещают это из коробки. Около года назад делал похожее решение для систем видеонаблюдения. Реализовал примерно так: Есть инфоблок "комплекты", в нем элементы с множественной привязкой к другому каталогу "компоненты". По событиям изменения элементов компонентов - у комплектов пересчитываются цены. Но решение очень в лоб, с большим количеством минусов.
Вопрос по API бизнес-процессов, в частности HistoryService. Является ли оно на текущий момент стабильным, или будет менятся со временем? С учетом того, что в документации описания классов нет, использую разбирая код самостоятельно.
Доброго времени суток. Последние несколько месяцев делаю крупный проект. В связи с чем очень остро возникла проблема с переносом изменений на рабочий сервер. С кодом проблем нет - git замечательно справляется. Но перенос настроек - это сущий ад. Сначала приходится во время реализации функционала менять какие-то настройки на тестовом сервере, а потом их опять же руками переносить на боевой..
В связи с этим возник вопрос - может быть кто-то уже реализовывал инструмент миграции настроек и инфоблоков (именно через API битрикса, а не миграции БД как таковой)? Либо если готовых инструментов нет - можно создать совместный проект где-нибудь на гитхабе?
Я и не надеюсь что новое ядро решит эту проблему ) Просто писать сейчас модуль на старом API, которое к тому же не блещет прозрачностью и удобством, чтобы спустя полгода-год переписывать всё заново под новое ядро... Пока этот вопрос не горит, хотя и доставляет изрядно неудобств.
Готовых решений не нашел ( Последние две недели раздумываю над вопросом - стоит ли писать модуль миграций. С учетом того, что на подходе новое ядро(хочется верить что на подходе, обещаниями уже полгода кормят).
Вчера делал такое же для списка секций. Вариант черновой, крайне неоптимальный по производительности, но если нужно срочно - можно адаптировать под меню
Всё оказалось сложнее. Количество обновляется в callback-функции при вызове CSaleBasket::Update. Пришлось модифицировать компонент, прописывать свой callback и в нём формировать массив с запрашиваемым количеством товара. В шаблоне корзины сравнивается текущее количество с сохраненным в массиве и формируется предупредждение. Сделать надо было максимально быстро, поэтому способ мягко говоря кривой. Но работает.
Ситуация такая - есть каталог с торговыми предложениями. У торговых предложение есть определенное количество на складе, продавать больше которого нельзя. При пересчете количества в корзине, если выставить количество больше чем на складе - оно автоматически сбрасывается до доступного, при этом не выводится никаких предупреждений. Тестировал на последней версии битрикса(+беты) и последней версии eshop. Можно ли как-то малой кровью перехватывать этот обработчик количества и выдавать предупреждения в виде "Товара xxx недостаточно на складе, количество уменьшено до x"?
Есть инфоблок, с несколькими полями типа файл-множественное. При удалении элемента инфоблока, файлы так и остаются лежать на диске в /upload/iblock/.... Есть ли какой-то официальный способ удалять их вместе с элементом? Можно конечно повесить обработку события на удаление элемента и отрабатывать удаление вручную, но инфоблоков много, свойств тоже, работа не самая приятная..
Может кому-то пригодится - решил проблему созданием своего действия на основе delayactivity Модифицируем метод onexternalevent - в него включаем проверку необходимого условия.
В случае выполнения условия - закрываем действие, бизнесс-процесс идет дальше. В случае, если событие еще не наступило - пересоздаем подписку на событие, и через некоторое время проверка повторяется еще раз.
Отрабатывает правильно, но. Если тело цикла оставить пустым - выполнение идет по кругу, что логично. Если в другом окне изменить STATUS - выполнение прерывается и бизнес-процесс идет дальше. Но если в тело цикла вставить задержку выполнения, допустим в 10 секунд, то бизнес-процесс останавливается после первого выполнения
Цитата
Запущено действие 'Заполнение заявки (A73971_80417_19446_1371 8) ' Запущено действие 'Вход в статус (A41921_48433_3889_78734)' Запущено действие 'A79958_69844_11807_61847' Запущено действие 'Последовательность действий (A84546_51859_28555_17684)' Запущено действие 'Пауза в выполнении (A30320_42830_86243_2844 8) ' Действие 'Пауза в выполнении (A30320_42830_86243_2844 8) ': Отложено на 10 секунд Завершено действие 'Пауза в выполнении (A30320_42830_86243_2844 8) ' со статусом 'Выполняется' и результатом 'Успешно' Завершено действие 'Последовательность действий (A84546_51859_28555_17684)' со статусом 'Выполняется' и результатом 'Успешно'
Можно как-то обойти, или оперативно решить эту проблему?
Необходимо создать бизнес-процесс со следующим условием:
Проверка - если значение в свойстве CHECK == 'Y', продолжаем процесс. Если нет, ждём пока она не изменится и снова проверяем.
По логике выходит что это можно сделать через цикл и паузу в выполнении, для проверки с интервалами. Но непонятно как сделать условие. Встроенный метод позволяет фильтровать по значениям полей, но не свойсв. Есть вариант "PHP код", но нигде не нашел документацию - какие значения в нём доступны, для того чтобы построить условие.