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

27.03.23

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

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

Скачать исходный код

Наименование Файл Версия Размер
Программно добавить документ в исходящий пакет (Контур.Диадок):
.epf 8,94Kb
21
.epf 8,94Kb 21 Скачать

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

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

 

Вводные

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

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

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

48500 руб.

19.02.2016    107297    104    5    

86

Загрузка чеков ФНС в документы 1С:БП, 1С:УНФ, 1С:ERP, 1С:КА и 1С:УТ

Кассовые операции Файловый обмен (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 руб.

19.08.2020    65441    303    73    

211

1С:Архив

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

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

90000 руб.

24.10.2022    4964    5    1    

4

Таймлист (1С:Совещание, Таймлист Лайт)

Документооборот и делопроизводство (СЭД) Конфигурации 1cv8

«Таймлист» – экосистема сервисов («Таймлист Лайт», «1C:Совещание», «Таймлист Recorder»), основанная на искусственном интеллекте Таймлист, который позволяет эффективно работать с легкими поручениями за счет фиксации всех важных идей при расшифровке и последующем формировании автопротокола встречи. Сервисы, в которые интегрирован ИИ, позволяют работать с задачами (поручениями), полученными из автопротокола.

10000 руб.

06.12.2023    1505    0    0    

7

Загрузка в 1С:Бухгалтерию 3.0, 1С:КА 2.4, 2.5, УНФ 1.6/3.0 данных из ОФД о денежных поступлениях (чеках)

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

Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Эта обработка сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке). Проверено на: OFD.RU / Первый ОФД / Такском / Платформа ОФД / Ярус / ОФД Яндекс / ОФД Астрал /ОФД СБИС / Гарант ОФД / КОРУС ОФД / КОНТУР ОФД / ОФД АО Тандер / ИнитПро / Группа Элемент/

3600 руб.

09.08.2017    148347    870    372    

529

Выгрузка УПД реализации в xml ФНС для загрузки в ЭДО: Диадок, СБИС, Такском, КОРУС, Астрал и прочие. Обработка на управляемых формах для БП 3.0, УНФ 1.6 / 3.0, УТ 11.4 / 11.5, КА 2, ERP 2 (Приказ ФНС №820 от 19.12.2018, 736 от 12.10.2020)

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

Выгрузка УПД, товарной накладной ТОРГ-12, акта, счета-фактуры по реализации (в БП сч-ф на аванс) в xml-файл в формате ФНС приказ 820 от 19.12.2018. Выгрузка УКД и корректировочного счета-фактуры в xml-файл в формате ФНС приказ 736 от 12.10.2020. Выгрузка товарной накладной в xml-файл ФНС приказ 551 от 13.11.2015, редакция 08.04.2019. Выгрузка акта приемки-сдачи работ (услуг) в xml-файл ФНС приказ 552 от 13.11.2015, редакция 08.04.2019. Добавлена выгрузка счетов на оплату по документам ЗаказПокупателя (в УНФ), ЗаказКлинета (в УТ / КА / ERP), СчетНаОплатуПокупателю (в БП). Добавлена обработка Выгрузка УПД c документов реализации 1С в Контур.Диадок по API.

12000 руб.

13.04.2018    82480    392    9    

427

Акцизы на сахаросодержащие напитки

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

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

14400 руб.

16.10.2023    1176    10    0    

9

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в 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    102002    298    173    

314
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Maksis 07.04.23 00:24 Сейчас в теме
Доброго вечера!
А не подскажите как решить обратную задачу. Т.е. из пакета программно удалить документ
2. charushkin 104 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 5416 17.04.23 13:03 Сейчас в теме
(2) Спасибо. Пригодилось удаление)
Мне кажется любые подобные статьи по Диадок облегчают разработчику жизнь.
4. charushkin 104 17.04.23 15:51 Сейчас в теме
(3) рад, что смог помочь. А о чём ещё хотелось бы узнать? Задавай вопросы, попробую дать развернутые ответы
5. John_d 5416 21.04.23 15:52 Сейчас в теме
(4) Добрый день! В Счет-фактуре в шапке есть строка Идентификатор государственного контракта, договора (соглашения) (при наличии):
А можно через подключаемый модуль добавить ниже еще строчки?
- Дополнение: договор Договор поставки №1 от 08.09.2022 г.
- Данные о транспортировке и грузе: 123 от 18.03.2023
- Примечание: счет-фактура составлена ООО "ннн", посредником (комиссионером), приобретающим товары (работы, услуги) от своего имени, за счет Комитента.
6. charushkin 104 26.04.23 13:48 Сейчас в теме
(5) Jhon_d, привет!

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


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

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

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

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

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


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