Модуль предназначен для переопределения классов Factory, Container, Router и упрощенной работе с событиями смарт -процессов. А также позволяет добавлять свои операции без подмены сервисов посредством события Bitrix класса Event. Ознакомиться со всеми событиями вы можете тут - https://gitverse.ru/altplus255/devband.replacecrm <br /><br />Рекомендую перед началом работы ознакомиться с официальной документации Битрикс - https://dev.1c-bitrix.ru/api_d7/bitrix/crm/customization/index.php, а также изучить паттерны Фабрики, ServiceLocator. <br /><br />В стандартной реализации (в документации) Битрикс предлагает переопределить классы в init.php и работать со всеми сущностями: "Лиды", "Сделки", "Смарт-процессы" там (в файле php_interface/init.php), что приводит к лишним зависимостям и подключению модуля CRM на уровне init.php, т.е. везде. <br /> <br />Данное решение позволит вам, как разработчикам, разделять классы для разных сущностей в разные модули. <br />
Ниже будет приведен пример работы подмены сервисов CRM.
Разберем такую ситуацию. У вас есть 2 смарт-процесса: "Начисления" и "Долги". Под каждый смарт-процесс вам необходимо создать отдельный модуль. Ведь это разные сущности и логика у них отличается с точки зрения бизнеса. Да, можно было бы сделать 1 модуль и внутри него реализовать все классы, но я придерживаюсь принципов дядюшки Боба "Чистый код", поэтому работу с разными сущностями разделяю на разные модули.
Итак для 2х сущностей, описанных выше, мы создаем 2 модуля с названиями:
vendor.accruals и vendor.debts, где vendor - символьный код вашей компании.
Все файлы по работе с Factory, Container, Router создавайте внутри папки lib с соблюдением структуры Битрикс. (Например: \Bitrix\Crm\Service\Container по такому неймспейсу располагается контейнер для CRM. Внутри ваших модулей должна быть такая же структура, т.е. \Vendor\Accruals\Crm\Service\Container, по аналогии поступаем со всеми остальными классами, которые мы хотим подменить). Рекомендую так делать по причине прозрачности и очевидности. Зная структуру модуля в ядре, любой разработчик сможет легко подхватить и понять написанный вами код без распутывания узлов.
Продолжим, в каждом модуле создаем файл .settings.php, в который вставляем services, которые хотим подменить, НО с указанием в prefix строки "replace.".
return [
'services' => [
'value' => [
'replace.crm.service.container.192' => new \Vendor\Accruals\Crm\Service\Container ,
]
]
];
В примере выше показано описание подмены сервиса контейнер для смарт-процесса с EntityTypeId = 192
По аналогии вы можете также подменить сервис Router и Filter/Factory.
Также для полного понимания работы с модулем настоятельно рекомендую изучить его классы.
Закажите любой модуль у нас на сайте с бесплатной установкой и гарантией 14 дней
Мы работаем с физическими и юридическими лицами. И предоставляем сразу два варианта оплаты.
- Наличные. Вы подписываете товаросопроводительные документы, расплачиваетесь денежными средствами, получаете товар и чек.
- Безналичный расчет. Принимаем карты Visa и MasterCard. Доступен при курьерской доставке.
Ваш заказ можем доставить собственными ресурсами, при условии вашего нахождения в городе. Либо через 4 варианта доставки:
- Курьерская доставка. Курьерская доставка работает с 9:00 до 19:00. Когда товар поступит на склад, курьерская служба свяжется для уточнения деталей. Специалист предложит выбрать удобное время доставки и уточнит адрес.
- Самовывоз из магазина. Для получения заказа обратитесь к сотруднику в кассовой зоне и назовите номер.
- Сотрудничаем с постаматами. Срок хранения — 3 дня.
- Предоставляем почтовую доставку через почту России. Когда заказ придет в отделение, на ваш адрес придет извещение о посылке. Вскрывать коробку самостоятельно вы можете только после оплаты заказа.
Дополнительная вкладка для размещения информации о товарах, доставке или любого другого важного контента. Поможет вам ответить на интересующие покупателя вопросы и развеять его сомнения в покупке. Используйте её по своему усмотрению.
Вы можете убрать её или вернуть обратно, изменив одну галочку в настройках компонента. Очень удобно.
- Комментарии
- ВКонтакте