Для кого эта статья
Статья будет полезна пользователям Универсального модуля Диадок, которые хотят решить задачу по добавлению собственного документа в состав типового пакета исходящих документов.
Вводные
Рассмотрим кейс, когда вместе с УПД нужно отправить внешнюю печатную форму договора и приложенные к счету-фактуре файлы. Пример реализован для БП 3.0, но его легко адаптировать для любой другой конфигурации.
Ознакомиться с полным листингом кода можно по ссылке в конце статьи или в модуле приложенной обработки.
Общий концепт решения
Изменять поведение коробочного модуля Диадока и добавлять новые возможности нужно с помощью подключаемого модуля. Подключаемый модуль (ПМ) для Диадока представляет собой внешнюю обработку со специальным программным интерфейсом. Сейчас подробно на этом останавливаться не буду, всё будет в примере. Для реализации кейса нам потребуется определить в ПМ следующие события:
С помощью ПМ можно как полностью переопределить "коробочное" поведение, так и расширить его, реализовать собственные сценарии. Для нашего кейса переопределять типовые обработчики не требуется. Поэтому мы будем вызывать наш код после выполнения стандартных алгоритмов, чтобы доработать их результаты.
События подключаемого модуля
ПолучитьТаблицуИспользуемыхВидовДокументов
В этом событии необходимо описать добавляемые виды электронных документов:
- внутренний идентификатор вида документов
- пользовательское представление вида документов
- формат отправки: тип документа в терминах Web API, тип контента (содержимого), функция электронного документа (актуально для УПД, УКД и т.п.)
В параметрах события передаётся таблица значений, в которую нужно добавить строки с описанием наших видов документов.
ПодготовитьПакет
Событие предназначено для описания состава пакета отправляемых документов. Здесь можно описать состав собственного пакета или изменить состав типового пакета.
ПодготовитьЭлектронныйДокумент
Остается последний шаг - описать алгоритм получения файла отправляемого документа и заполнить сведения об электронном документе (его мету - информацию, которая будет отображаться в веб-интерфейсе: наименование файла, номер, дата, сумма и т.д.).
Результат работы нашего ПМ
Счет-фактура по договору 568:
Внешняя печатная форма договора 568:
Присоединенные файлы счета-фактуры (GetDocumentTypes.json и ПримерПМ_Диадок_ДобавитьДоговорВПакетУПД.epf)
Пакет документов на отправку УПД + договор + 2 приложения
Ссылки
- Документация к модулю Диадока для разработчиков
- С полным листингом подключаемого модуля для примера из статьи можно ознакомиться на GitHub
- Полезная статья от John_d про то, как сформировать собственный пакет электронных документов
- Скачать актуальную версию модуля Диадока можно с официального сайта
Приложенные файлы
ПримерПМ_Диадок_ДобавитьДоговорВПакетУПД.epf - подключаемый модуль, в котором реализовано добавление в пакет УПД печатной формы договора и файлов, прикрепленных к счету-фактуре. Работа подключаемого модуля протестирована на следующем окружении:
- Платформа: 1С:Предприятие 8.3 (8.3.23.1596)
- Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.103.12)
- Модуль Диадок: Универсальный модуль Диадок, вер. 4.29.2