Программное добавление документа в исходящий пакет (Контур.Диадок)

27.03.23

Функциональные - Документооборот и делопроизводство (СЭД)

В статье описана механика добавления произвольного неформализованного документа в стандартный исходящий пакет для модуля Диадок ("Универсальный модуль").

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Программно добавить документ в исходящий пакет (Контур.Диадок):
.epf 8,94Kb
27
27
1 SM
Скачать Купить за 1 850 руб.

Для кого эта статья

Статья будет полезна пользователям Универсального модуля Диадок, которые хотят решить задачу по добавлению собственного документа в состав типового пакета исходящих документов.

 

Вводные

Рассмотрим кейс, когда вместе с УПД нужно отправить внешнюю печатную форму договора и приложенные к счету-фактуре файлы. Пример реализован для БП 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

диадок эдо контур электронный документооборот неформализованный документ УПД

См. также

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    107915    108    5    

89

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Платные (руб)

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

90000 руб.

24.10.2022    5206    7    1    

6

SALE! 50%

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

В публикации размещены специализированные обработки для загрузки кассовых чеков в базах 1С (для локальных баз): '1С:Бухгалтерия предприятия, ред. 3.0', '1С:Управление нашей фирмой 8, ред. 3.0', '1С:Комплексная автоматизация, ред. 2.5', ‘1С:ERP Управление предприятием, ред. 2’ и ‘1С:Управление торговлей, ред. 11.5’. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах' и 'Поступление денежных документов'.

12960 9720 руб.

19.08.2020    66858    320    73    

215

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    103771    304    173    

319

Регламентированный учет и отчетность ЭДО и ОФД Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 Пищевая промышленность Россия Бухгалтерский учет Налоговый учет Акцизы Платные (руб)

Расширение для Бухгалтерии предприятия 3.0 «Акцизы на сахаросодержащие напитки» предназначено для автоматизированного учета сумм акцизов по реализованным сахаросодержащим напиткам с 01 июля 2023 года. Позволяет выделить суммы акциза в первичных документах («Реализация товаров и услуг», «Корректировка реализации»), сформировать проводки по начислению акциза, а также сформировать и отправить корректные документы по ЭДО.

14400 руб.

16.10.2023    1551    14    0    

13

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

40800 руб.

19.12.2022    10943    24    19    

17

Рабочее место Документооборот и делопроизводство (СЭД) Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Документооборот Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

48000 руб.

11.06.2015    56857    35    19    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Maksis 07.04.23 00:24 Сейчас в теме
Доброго вечера!
А не подскажите как решить обратную задачу. Т.е. из пакета программно удалить документ
2. charushkin 108 09.04.23 21:24 Сейчас в теме
(0) @Maksis, привет!

Удалить документ из пакета намного проще, чем добавить)


// Описывает правила формирования состава пакета исходящих документов.
// https://developer.kontur.ru/Docs/Diadoc_UM/func/pm/Podgotovit%27Paket.html
//
// Параметры:
//  ПараметрыСобытия - Структура - содержит ключи:
//    * ВидПакетаРазвернутый - Структура - описание вида пакета
//    * СтрокаСписка - Структура - значения колонок строки списка пакетов для отправки
//    * Пакет - Структура - сведения о формируемом пакете
//    * Результат_ИМ - Булево - (необязательный) Если ключа нет, значит это вызов перед типовым обработчиком
// 
// Возвращаемое значение:
//  Произвольный - Неопределено, если обработчик отключен, иначе Истина.
//
Функция ПодготовитьПакет(ПараметрыСобытия)
	
	Если ОбработчикиСобытий_ЭтоВызовПередТиповымОбработчиком(ПараметрыСобытия) Тогда
		// пример реализации проверки смотри тут: https://gist.github.com/acharushkin/87c87441e97b973c5a9329aabb66d2e5
		Возврат Неопределено;
	КонецЕсли;
	
	ТекущийПакет = ПараметрыСобытия.Пакет;
	
	Если ТекущийПакет.ИдентификаторВида = "ИдентификаторПакетаИзКоторогоНужноУдалитьДокумент" Тогда
		
		Пакеты_УдалитьЛишниеДокументы(ТекущийПакет);
		
		Возврат Истина;
		
	КонецЕсли;
	
КонецФункции
Показать


Вот пример реализации удаления документов из пакета:
Процедура Пакеты_УдалитьЛишниеДокументы(Пакет)
	
	ДокументыНаОтправку = Пакет.Документы;
	МаксИндекс = ДокументыНаОтправку.ВГраница();
	
	Для ОбратныйИндекс = -МаксИндекс По 0 Цикл
		
		Индекс = -ОбратныйИндекс;
		Элемент = ДокументыНаОтправку[Индекс];
		
		Если Элемент.ИдентификаторВида = "ИдентификаторЛишнегоВидаДокументов"
			И ТребуетсяОтменитьОтправкуЭлектронногоДокумента(Элемент.ДокументУчета) Тогда
			
			ДокументыНаОтправку.Удалить(Индекс);
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
3. John_d 5767 17.04.23 13:03 Сейчас в теме
(2) Спасибо. Пригодилось удаление)
Мне кажется любые подобные статьи по Диадок облегчают разработчику жизнь.
4. charushkin 108 17.04.23 15:51 Сейчас в теме
(3) рад, что смог помочь. А о чём ещё хотелось бы узнать? Задавай вопросы, попробую дать развернутые ответы
5. John_d 5767 21.04.23 15:52 Сейчас в теме
(4) Добрый день! В Счет-фактуре в шапке есть строка Идентификатор государственного контракта, договора (соглашения) (при наличии):
А можно через подключаемый модуль добавить ниже еще строчки?
- Дополнение: договор Договор поставки №1 от 08.09.2022 г.
- Данные о транспортировке и грузе: 123 от 18.03.2023
- Примечание: счет-фактура составлена ООО "ннн", посредником (комиссионером), приобретающим товары (работы, услуги) от своего имени, за счет Комитента.
6. charushkin 108 26.04.23 13:48 Сейчас в теме
(5) Jhon_d, привет!

А можно через подключаемый модуль добавить ниже еще строчки?


Счет-фактура - это XML-файл, формат которого регламентируется ФНС. Взять и добавить в произвольное место свои дополнительные поля нельзя. Дополнительную информацию (дополнительные поля) можно передавать в специальных элементах (тегах), предусмотренных форматом 820@: ТекстИнф в элементах ИнфПолФХЖ1, ИнфПолФХЖ2 и ИнфПолФХЖ3.

В Универсальном модуле такие дополнительные поля выводятся в превью электронного документа.

Дополнительные поля шапки документа (ИнфПолФХЖ1) можно добавлять прямо в пользовательском режиме в форме исходящего пакета (приложил файл с примером). Любые дополнительные поля можно добавлять программно через событие "ПодготовитьЭлектронныйДокумент" в подключаемом модуле с помощью функции ДобавитьИнформационноеПоле

P.S. Для веб-интерфейса можно подключить функцию "Кастомная печатная форма", чтобы стандартную визуализацию электронного документа. Но работать это будет только в веб-интерфейсе, в модуле для 1С визуализация останется прежней.
Прикрепленные файлы:
VyacheslavShilov; +1 Ответить
8. John_d 5767 11.05.23 13:45 Сейчас в теме
(6) Спасибо. Так и сделал.
7. John_d 5767 11.05.23 13:25 Сейчас в теме
(4) Что будет если к документу реализация уже привязан один пакет, а я хочу еще один пакета привязать
Можно так делать? Потом это учтется при отправки в Диадок в доп.свойствах?
ОсновнойМодуль.ЭДО_Служебные_ДобавитьСтрокуВТаблицуЗначений(ТЗ, "ID_СФ", "СФ" , "ID_СФ", "РеализацияТоваровУслуг", "РеализацияТоваровУслуг");
ОсновнойМодуль.ЭДО_Служебные_ДобавитьСтрокуВТаблицуЗначений(ТЗ, "ID_АктПП", "АктПП" , "ID_АктПП", "РеализацияТоваровУслуг", "РеализацияТоваровУслуг");
9. John_d 5767 24.05.23 14:03 Сейчас в теме
(4) Добры день! Как можно через подключаемый модуль указать промежуточного получателя?
10. charushkin 108 08.06.23 10:58 Сейчас в теме
(9) Привет!
Промежуточного получателя можно указать в событии ПослеПодготовкиПакета.
Пример есть в официальной инструкции Дополнительная обработка исходящих пакетов
11. John_d 5767 08.06.23 11:37 Сейчас в теме
(10) Спасибо. Буду смотреть
12. user631502_m.parakhina 07.07.23 10:42 Сейчас в теме
Добрый день.
А для групповой отправки документов это тоже будет работать?
13. charushkin 108 17.07.23 15:21 Сейчас в теме
(12) Привет!

Да, работает в том числе при групповой отправке
14. kai068 5 30.10.23 12:38 Сейчас в теме
Здравствуйте! Возможно ли исключить пользователя из процесса? А именно: что бы статус "Передать на подпись" присваивался автоматически определенным УПД (по Контрагентам например). Исключая из цепочки менеджера, который может "забыть" отправить документ на подпись.
15. psa247 18 30.10.23 15:46 Сейчас в теме
Доброго дня! Не подскажете, как получить хмл входящего документа программно, не используя ПМ
16. psa247 18 06.12.23 05:38 Сейчас в теме
(15) В итоге "ковыряния" модуля Диадок - вывод такой: проще добавить объекты в основную конфу и выдергивать данные оттуда
17. mrcamomile 81 20.12.23 14:19 Сейчас в теме
Спасибо за статью.
Вопрос: событие "ПодготовитьПакет" вызывается всегда при выводе списка + при открытии конкретного пакета. Есть способ отличить эти вызовы?
Пока выкрутился так: в структуру "СтрокаСписка" добавил 2 свойства (просмотр пакета исходящее / входящее).
ЭтоПросмотрПакета__НаправлениеИсходящее = ПараметрыСобытия.СтрокаСписка.ЭтоПросмотрПакета__НаправлениеИсходящее;


Если так не сделать - получается для каждой строки списка при открытии обработки мой подключаемый модуль генерил временные файлы и подкладывал двоичные данные для каждого пакета. А по факту отправить хотели только один документ. Поэтому сделал при открытии конкретного пакета.
18. dezd 04.03.24 18:14 Сейчас в теме
Добрый день. Есть необходимость удалить из пакета лишний документ. Пакет уже отправлен. Можно ли такое осуществить?
19. IvanPoh 25 24.04.24 15:31 Сейчас в теме
Добрый день. А как можно добавить программно сформированный файл в пакет? т.е. я при подготовке пакет формирую некий файл, и мне нужно его просто добавить в пакет, так же как если бы я через плюсик в режиме пользователя его добавлял
20. user1446168 06.05.24 18:02 Сейчас в теме
Добрый день, а как можно добавить внешнюю печатную форму УПД?
Оставьте свое сообщение