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