Каталог решений - Перенос присоединенных файлов в документооборот при бесшовной интеграции

Перенос присоединенных файлов в документооборот при бесшовной интеграции

Перенос присоединенных файлов в документооборот при бесшовной интеграции

В наличии

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

Категория:

Описание

После организации бесшовной интеграции ERP и Документооборота  выяснилось. что присоединенные файлы, которые добавлены к документу на стороне ERP, в связанный документ на стороне Документооборота автоматически не переносятся. Со стороны ERP "прилетает" только печатная форма.

А эти файлы нужны для принятия решения по согласованию нашими сотрудниками.

Для решения этой задачи были внесены изменения в процедуру модуля менеджера справочника ПравилаИнтеграциис1сДокументооборотом

ЗаполнитьПечатныеФормы

&После("ЗаполнитьПечатныеФормы")
Процедура УО_ФинБлок_ЗаполнитьПечатныеФормы(Источник, Файлы, Правило, ТолькоОбновление, ПомещатьВоВременноеХранилище, ИдентификаторФормы)
		
	МассивФайловЛокальный = РаботаСФайламиСлужебный.ВсеПодчиненныеФайлы(Источник);
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
	
	ОбщийРазмерВложений=0;
	Для каждого ПрисоединенныйФайл из МассивФайловЛокальный Цикл
		ОбщийРазмерВложений=ОбщийРазмерВложений+ПрисоединенныйФайл.Размер;
	КонецЦикла;
	
	Если ОбщийРазмерВложений<20480000 Тогда
		Для каждого ПрисоединенныйФайл из МассивФайловЛокальный Цикл
			Если ПрисоединенныйФайл.Размер > 0 Тогда
				
				ДанныеФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл.Ссылка, Ложь);
				Если ДанныеФайла <> Неопределено Тогда
					ДанныеФайла.Записать(ИмяВременногоФайла);
				КонецЕсли;
				
				СтрокаФайлов = Файлы.Добавить();
				ЗаполнитьЗначенияСвойств(СтрокаФайлов,ПрисоединенныйФайл);
				
				Если ПомещатьВоВременноеХранилище Тогда
					СтрокаФайлов.АдресВременногоХранилищаФайла =
					ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВременногоФайла), ИдентификаторФормы);
					СтрокаФайлов.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.
					ПолучитьИндексПиктограммыФайла(СтрокаФайлов.Расширение);
				Иначе
					СтрокаФайлов.ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
				КонецЕсли;
				ИмяФайла=ПрисоединенныйФайл.Наименование;
				ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайла, " ");
				СтрокаФайлов.Наименование = ИмяФайла;
				
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	УдалитьФайлы(ИмяВременногоФайла);
	
	
КонецПроцедуры

Сейчас это все работает на связке ERP 2.4.13.123 и ДО 2.1.27.1 , платформа 8.3.18.1208.

Ограничение по общему размеру присоединенных файлов сделано из-за ограничений веб-сервера. 

В расширении программный код, который приведен в публикации

has been added to your cart:
Оформление заказа