| Цитата |
|---|
| Ахат Баязи написал: 1. можно ли как-то переопределять штатные события вызова генератора через JS? 2. Есть ли аналог BX.DocumentGenerator.Document.onBeforeCreate в BX24? 3. А если реализовать это через активити, то такого не сделаешь с использованием БП. Или я не прав? Тогда поподробнее можно логику? |
Оптимальный вариант будет следующий:
При клике на кнопку "Документ" в первый раз идёт аякс-запрос на получение списка доступных шаблонов. На js аякс вызывается тут
BX.DocumentGenerator.Button.init
documentgenerator/install/js/documentgenerator/documentprevi
На php этот запрос обрабатывается тут \Bitrix\DocumentGenerator\Controller\Document::getButtonTemplatesAction()
Вам надо перехватить событие onAjaxSuccess, в этом событии по урлу определить, что это нужный запрос, и в обработчике переопределить список шаблонов (видимо, придётся сделать ещё один аякс запрос). Больше ничего делать не надо, можно вообще никуда не лезть
2. вам надо сделать запрос к методу crm.documentgenerator.document.list
3. Через активити показать слайдер с документом конечно не получится. Может и есть способ, но мне не известен
| Цитата |
|---|
| Ахат Баязи написал: 1. Каким методом можно это реализовать из локального приложения (через REST) 2. Как сгенерировать ссылку, чтобы она открывала документ в слайдере (см. скриншот ниже)? |
Если нужен именно рест, то вам нужен метод crm.documentgenerator.document.list (там есть пример с фильтром)
Ссылка на просмотр существующего документа crm в слайдере имеет вид
/bitrix/components/bitrix/crm.document.view/slider.php?documentId=10&IFRAME=Y&IFRAME_TYPE=SIDE_SLIDER
чтобы в слайдере начался процесс генерации нового документа ссылка должна быть такой
/bitrix/components/bitrix/crm.document.view/slider.php?providerClassName=Bitrix\Crm\Integration\DocumentGenerator\D
здесь надо подставить нужный провайдер, ид шаблона и ид сущности