Задача
При переходе сделки в SberCRM на определенный этап — создавать документ на оплату счета по шаблону в MoreDOC и возвращать в сделку ссылку на документ
Подключение сервисов
Первым делом — необходимо подключить сервисы в MoreKIT
Подключение SberCRM
Подключим сервис SberCRM в MoreKIT. Для этого перейдем в раздел добавления сервиса в MoreKIT и найдем SberCRM

После нажатия на кнопку Добавить произойдет редирект на страницу SberCRM, вводим логин и пароль и нажимаем Войти

После добавления сервиса — он отобразится в списке сервисов

Если перейти в сервис — увидим его статус. Если авторизация выполнена успешно, статус сервиса будет Готово

Подключение MoreDOC
В кабинете MoreDOC переходим в раздел Настройки, сверху увидим раздел API, нажимаем на кнопку Добавить для генерации API-ключа

Даем ключу название и нажимаем Применить

Копируем API ключ и идем в MoreKIT

Ищем в списке сервисов MoreDOC и вставляем API-ключ


Создание процесса в MoreKIT
Далее — создадим процесс в MoreKIT, на который будут поступать данные из SberCRM
Нажимаем на кнопку Создать процесс, тип процесса выбираем Другое

Далее — копируем ссылку из первого блока, эта ссылка — принимающий URL процесса MoreKIT, на него нужно отправить данные из SberCRM

Настройка отправки из SberCRM
Следующим шагом — настроим отправку данных при смене статуса из SberCRM
Создание исходящей интеграции
Следующим шагом — создадим настройки для исходящих из SberCRM данных
Необходимо перейти в Настройки —> Настройка интеграции —> Исходящие интеграции
Нажимаем на кнопку Новая исходящая интеграция

Здесь присваиваем название, системное имя и описание, что будет делать интеграция

Галочками отмечаем, какие данные нужны для формирования счета


В параметрах интеграции указываем ссылку на созданный процесс в MoreKIT

Далее — заходим в раздел Автоматизации, здесь выбираем событие Стадия сделки изменена и тип действия Исходящая интеграция

Теперь необходимо проверить, что данные приходят и узнать название нужного статуса, при переходе на который должен будет формироваться документ. Сдвинем сделку на нужную стадию и перейдем в События в схеме MoreKIT


Здесь должны отобразиться данные, которые отправляются из сделки SberCRM

Настройка шаблона в MoreDOC
Теперь необходимо создать и настроить шаблон на стороне MoreDOC

В кабинете MoreDOC заходим во вкладку Шаблоны, создаем новый шаблон, обязательно указываем Общий доступ: просмотр, чтобы после формирования счета можно было просматривать документ
Подробнее о шаблонах и синтаксисе можно прочитать в документации MoreDOC

Шаблон будет выглядеть следующим образом
В шаблоне будут использованы следующие маски (ключи к данным будут указаны позже в процессе MoreKIT):
- Описание счета будет: Счет № LIC-
{{counter}}от{{additional.doc_date|format:"%d.%m.%y"}} - Данные о заказчике:
Заказчик:{{additional.organization_name}}
ИНН заказчика:{{additional.organization_inn}} - Вывод в таблицу списка продуктов из сделки SberCRM с помощью цикла
{% for %}
{% for item in additional.products %}
{{forloop.counter}}
{{item.name}}
{{item.capacity}}
{{item.price}}
{{item.capacity|mult:item.price}}
{% endfor %}Подробнее про циклы и фильтры описано в документации по настройкам шаблона
При переборе товаров автоматически будет создана таблица, записаны позиции и будет произведен расчет цены товара Х количество товара с помощью фильтра |mult
Настройка процесс в MoreKIT
На стороне процесса MoreKIT схема будет выглядеть следующим образом:

Данная схема работает следующим образом:
- Проверяет статус сделки в SberCRM, в данном примере статус Счет выставлен = billPaid
- Создает документ с дополнительными данными о товарах и клиенте
- Формирует текст созданного счета для передачи его назад в сделку
- Передает ссылку на счет в поле Описание
Описание блоков схемы

#8 Проверка — проверяет статус сделки из входящих данных, чтобы создавать счет только тогда, когда сделка переходит на этап Счет Выставлен

#4 Создать документ — создает документ в MoreDOC, при формировании документа передаются дополнительные данные по маскам шаблона.
Например, в шаблоне используется маска {{additional.organization_inn}} к отправляемому ключу organization_name

#14 Создать переменную — формируем текст для поля Описание в сделку SberCRM о созданном счете

#13 Обновить объект — обновляем поле описание в сделке SberCRM, возвращая ссылку и краткое описание по созданному счету
Проверка
Переместим сделку в SberCRM еще раз на нужную стадию и проверим, создастся ли счет

После перемещения сделки — обновим страницу, поле Описание должно быть заполнено ссылкой на созданный счет
Как видим — ссылка появилась, перейдем по ней и посмотрим созданный счет

Как видим — документ есть, данные подставились

Событие выполнено без ошибок
Также в кабинете MoreDOC можно найти созданный документ

Документ создался, задача выполнена успешно
Подведем итоги
В данной статье рассмотрели, как можно сформировать документ на примере SberCRM и MoreDOC. Был создан документ по шаблону, в документ передалась информацию об организации сделки и список товаров, прикрепленных к сделке, а также в сделку возвращена ссылка на созданный документ