| Цитата |
|---|
| Ахат Баязи написал: как добавить событие onBeforeProcessDocument из приложения? |
|
|||
|
|
|
|
Ахат Баязи,не очень понял вопрос. Ошибка говорит о том, что у пользователя нет прав к документу. Чтобы был доступ, надо настроить права доступа в самом генераторе документов, а также у пользователя должен быть доступ к сущности.
Если вы хотите открыть в слайдере документ, который был создан через методы documentgenerator.* (т.е. через чистый рест), то не получится. Слайдер в crm открывает только те документы, которые были созданы в модуле crm (в таблице шаблонов есть колонка MODULE_ID). |
|
|
|
|
Перепишите
|
|||||
|
|
|
|
Алексей Куканов,вставьте картинку в таблицу, а в свойствах таблицы укажите название поля (по аналогии, как это сделано в стандартных шаблонах с печатью и подписью)
|
|
|
|
|
|
|||
|
|
|
|
Ахат Баязи, за конвертацию в pdf отвечает отдельный модуль (transformer). Конвертация выполняется на облачных серверах компании 1с-битрикс. Чтобы она корректно работала, модуль должен быть доступен снаружи и в настройках модуля должен быть указан корректный публичный адрес.
Если всё настроено, но по-прежнему не работает - проверьте корректность настроек ssl-сертификата. Если ничего не помогло - в техподдержку |
|
|
|
|
|
Ахат Баязи, файл script.js компонента crm.timeline.
Там BX.CrmHistoryItemDocument.prototype.prepareTitleLayout - тут вешается событие на ссылку. Надо либо пройтись по всем объектам и у них переопределить BX.CrmHistoryItemDocument.editDocument либо найти все ссылки, убрать с них "штатные" обработчики события и повесить свои. Ещё есть вариант подлезть в файл /bitrix/components/bitrix/crm.document.view/slider.php и там заменить вызываемый компонент. Это модификация ядра, но вряд ли этот файл будет меняться в ближайшее время. |
|
|
|
|
|
Дмитрий Б, до модификатора с изменением регистра руки пока не дошли. Задача непростая. По-быстрому не смог придумать, как это сделать, поэтому пока отложил.
По поводу одного шаблона на разные реквизиты - используйте БП, это нормально. Шаблоны сами не умеют в условия и вычисления - это будет уже космолет какой-то. Есть специальный робот / активити, которое позволяет поменять значения полей. Всё можно через него обернуть. |
|
|
|
|
Для общих методов лучше делать общие контроллеры и обращаться к ним через BX.ajax.runAction |
|||
|
|
|
|
|||
|
|
|
|
Александр Исупов,проверьте, что у вас и печать и подпись в формате png и там фон прозрачный.
Также проверьте, что в шаблоне картинки не перекрывают друг друга. В этом случае в документе тоже должно быть правильно. |
|
|
|
|
|
Егор Зотов, привет.
А вы своего провайдера делаете или передаете значения полей снаружи? Там немного разные форматы будут. Если снаружи, то вот полный пример создания документа Если свой провайдер, то инструкция здесь Не поможет - кидайте свой код, посмотрю |
|
|
|
|
|
Ахат Баязи,версия 20.0.0. По срокам не знаю. Если выйдет в мае - будет хорошо.
|
|
|
|
|
|
Ахат Баязи, баг поправил, да. Рефлексия будет работать.
|
|
|
|
|
|
|||
|
|
|
|
|||
|
|
|
Пример обработчика событий с изменением содержимого товаров где-то есть выше в этой теме В облаке можно такое сделать, но только через рест |
|||
|
|
|
|
Алексей Гребнев, код правильный, но для его работы надо ещё передать описание новых полей.
Ниже полный пример с записью данных из своей таблицы. Вам по аналогии надо заполнить поля и передать в setFields() В этом примере используется провайдер для реста (это на случай, если у вас все данные свои). Уберите лишние поля, а описания своих добавьте
|
|||
|
|
|
Вам надо перехватить результат отправки аякс-запроса на получение списка шаблонов для текущей сущности и переопределить его, добавив туда нужный вам провайдер вместо стандартного. После этого всё должно заработать само, из сделки будет печататься документ через ваш провайдер |
|||
|
|
|
Главное проверить, что ваш провайдер появился в списке провайдеров в фильре. Дальше дело техники.
Вы попробовали способ, который я посоветовал? Там для прототипа работы совсем немного |
|||||||
|
|
|
Я бы предложил такой вариант: добавить к ссылке какой-то свой уникальный get-параметр, а в обработчике события его обрабатывать и вызывать метод
|
|||||||||||
|
|
|