Автоприкрепление документов в ДИАДОК

Публикация № 1812249 20.02.23

Задачи пользователя - Обработка документов

pdf присоединенные файлы Диадок

"А можно, чтоб подписанные контрагентом документы сами в присоединённые файлы добавлялись?" Ответ сотрудников Диадок: можно. С вас 53 000 (с год назад) или ну хотя бы 30 000 (на днях) ... ага, деньги вы заплатили ... и полная база со всеми доступами, иначе мы пальцем не пошевелим!" Мой ответ: можно. Забирайте.

Процедуры предназначены для добавления в модуль ФормаУправляемая того модуля Диадок, который внешняя обработка (и для лишения дохода тех, кто сначала требует оплатить счёт, а потом ставит условия вразрез с политикой конфиденциальности). Тестировалось на модуле 4.28.1, БП 3.0.130.22.

Что умеют:

Автоматом прикреплять pdf по всем документам, которые считаны с сервера, с отбором (по умолчанию) по статусу "Подписан контрагентом", а дальше как сами захотите.

Используют процедуры модуля "Ядро", то есть надо послеживать за их синтаксисом.

Ориентируются на СписокДокументов в обработке, но можно и передать в функцию аналогичную таблицу.

Вызов: втыкаете ПроверитьОбновитьПрисоединенныеФайлы() туда, где вам нравится. Я воткнула после обновления списка документов. Всё можно сделать оптимальнее, особенно если вы узнаете, как достучаться до API Диадока таким образом, чтобы получать таблицу только свежеподписанных.

Желающие получить готовую доработку: выложить на ИС диадоковский модуль я всё равно не могу, ибо авторские права. Но воткнуть уже известное всяко дешевле!

Главная процедура (для затравки - а сапиенти и без прочего сат):
 

&НаСервере
Процедура ПроверитьОбновитьПрисоединенныеФайлы()      
	Для каждого стросп из Объект.СписокДокументов Цикл  
		Если не стросп.Статус="Подписан контрагентом" Тогда Продолжить; КонецЕсли;
		Если не ЗначениеЗаполнено(стросп.Документ) Тогда Продолжить; КонецЕсли;
		//Тут можно добавить условия - по виду объектов, ещё по чему-то
		ИмяФайлаПечатнойФормы = стросп.ПредставлениеДокументаДиадок + " - " + стросп.DocumentId + ".pdf"; 
		ВладелецФайла=стросп.Документ;
		ПереопределитьВладельцаФайла(ВладелецФайла); //здесь мы можем изменить владельца как нам угодно
		Если ПрикрепленныйФайлСуществует(ВладелецФайла,ИмяФайлаПечатнойФормы) Тогда Продолжить; КонецЕсли; //не обновляем
		ОписаниеФайла="подписал документ и завершил документооборот";
		Документ = ДокументИзДанныхСтрокиТЧ(стросп); //вызов процедуры модуля той же ФормаУправляемая
	 	ДвоичныеДанныеПечатнойФормы = Модуль_ЯдроНаСервере().Документы_ПечатнаяФормаСервераДиадок(Документ.Идентификаторы);
		ПрисоединитьФайлПДФ(ВладелецФайла,ДвоичныеДанныеПечатнойФормы,ИмяФайлаПечатнойФормы,ОписаниеФайла);
	КонецЦикла;
КонецПроцедуры


P.S. Кусок кода прикрепления файла через БСП честно упёрт отсюда: https://bv-dev.ru/1c-software-attachment-of-a-file-to-document/ - у меня был свой вызов, но чуть длиннее.

P.P.S. Возможно, проверка наличия присоединённого файла тоже оптимизируется, но пользователей уже устраивает, а премию ещё не дали.

P.P.P.S. Полагаю, в расширение оно втыкается примерно с той же степенью сложности, но - см.выше. 

P.P.P.P.S. О! десять дней спустя "ничего не будем делать без полного доступа к вашей базе" - "вы можете подписать у менеджера соглашение о неразглашении". С этого начинать надо было... а теперь - пользуйтесь на здоровье!

Скачать файлы

Наименование Файл Версия Размер
Автоприкрепление документов в ДИАДОК:

.txt 7,26Kb
4
.txt 7,26Kb 4 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. stsasha87 135 20.02.23 17:52 Сейчас в теме
Поделюсь тоже своими раскопками. Единственная разница в том, что к документу прикрепляется архив, внутри которого подписанный pdf и сами файлы подписей.
Вызываю из модуля объекта обработки из процедуры СписокДокументов_Обновить.
Через подключаемый модуль, увы, не сделать это.
Вот урезанный кусок кода для примера:

Код
cleaner_it; e.kogan; Yashazz; sapervodichka; +4 Ответить
4. e.kogan 1884 21.02.23 20:56 Сейчас в теме
(1) Я тоже подумывала туда воткнуться, но решила, что хватит и текущего )
2. tpkpsd 21.02.23 10:04 Сейчас в теме
Одно время играл в догонялки с их отделом разработки, втыкая свои вставки в очередные релизы. Психанул, воткнул во внешний модуль.
Я похожую задачу воткнул в регламент
Обработка = ВнешниеОбработки.Создать("путь к Диадок 1С.epf", Ложь);
Обработка.ИнициализироватьОбщийКонтекст();
Ядро = Обработка.Модуль_Ядро();
         
Ядро.Авторизация_ПоПаролю(Логин, Пароль);
Ядро.КонтекстСеанса_ДляСлужебнойУчетнойЗаписи();

Ядро.ТипыДокументовAPI_ПроверитьНаличие();  

ПараметрыСписка = Ядро.Контракт_ПараметрыПолученияСпискаДокументов();
ПараметрыСписка.Режим                      = "ОтправленныеДокументы";
ПараметрыСписка.НачалоПериода              = НачалоДня(Дата);
ПараметрыСписка.КонецПериода               = КонецДня(ТекущаяДата());
ПараметрыСписка.ПоказыватьЗавершенные      = Ложь;
ПараметрыСписка.РежимОтбораПоПериоду       = "ПоДатеОтправкиИлиПолучения";
ПараметрыСписка.ВключитьОтборПоОрганизации = Ложь;
ПараметрыСписка.ВключитьОтборПоКонтрагенту = Ложь;
ПараметрыСписка.ВключитьОтборПоСтатусу     = Истина;
ПараметрыСписка.ОтборПоСтатусу             = "Подписан контрагентом";

СтруктураДокумента = Новый Структура;
СтруктураДокумента.Вставить("BoxId", НашИдОтправителя); 

СписокДокументов = Ядро.СписокДокументов_Документы(ПараметрыСписка);

Для Каждого х ИЗ СписокДокументов Цикл    
  СтруктураДокумента.Вставить("DocumentId", х.DocumentId);
  СтруктураДокумента.Вставить("LetterId",   х.LetterId);    
  ПечатнаяФорма = Ядро.Документы_ПечатнаяФормаСервераДиадок(СтруктураДокумента); //пдф
КонецЦикла;
    
Обработка.ЗавершитьРаботуМодуля();
Показать
cleaner_it; e.kogan; stsasha87; +3 Ответить
3. stsasha87 135 21.02.23 17:44 Сейчас в теме
(2) В идеале хотелось тоже что-то подобное, но не получилось, т.к. в базе много организаций и авторизация у всех в обработке по сертификату происходит. А это код на клиенте, его в рег задание не засунуть((
5. tpkpsd 22.02.23 08:11 Сейчас в теме
(3) 1) процепите логин:пасс на сертификат (у меня так)
2) установить криптопро на сервак и играйте отпечатками
ubnkfl; e.kogan; +2 Ответить
Оставьте свое сообщение

См. также

Приемная руководителя, редакция 1.1

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

Приемная руководителя, редакция 1.1. Конфигурация на управляемых формах (интерфейс - Такси) с открытым кодом, создана для секретарей.

1500 руб.

19.05.2015    34376    24    12    

26