Версии файлов при записи. Обработчик подписки "при записи" версии файла.
// Обработчик подписки "при записи" версии файла.
//
Процедура ВерсииФайловПриЗаписи(Источник, Отказ) Экспорт
Если Источник.ОбменДанными.Загрузка Тогда
ЗаписатьДанныеФайлаВРегистрПриОбмене(Источник);
Возврат;
КонецЕсли;
Если Источник.ДополнительныеСвойства.Свойство("ПереименованиеФайла") Тогда
Возврат;
КонецЕсли;
Если Источник.ДополнительныеСвойства.Свойство("КонвертацияФайлов") Тогда
Возврат;
КонецЕсли;
// Копируем реквизиты из версии в файл.
ТекущаяВерсия = Источник;
Если Не ТекущаяВерсия.Ссылка.Пустая() Тогда
ФайлСсылка = Источник.Владелец;
РеквизитыФайла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка,
"ИндексКартинки, Размер, ДатаСоздания, Изменил, Расширение, Том, ПутьКФайлу, ДатаМодификацииУниверсальная");
Если РеквизитыФайла.Размер <> ТекущаяВерсия.Размер
ИЛИ РеквизитыФайла.ДатаСоздания <> ТекущаяВерсия.ДатаСоздания
ИЛИ РеквизитыФайла.Расширение <> ТекущаяВерсия.Расширение
ИЛИ РеквизитыФайла.Том <> ТекущаяВерсия.Том
ИЛИ РеквизитыФайла.ПутьКФайлу <> ТекущаяВерсия.ПутьКФайлу
ИЛИ РеквизитыФайла.ИндексКартинки <> ТекущаяВерсия.ИндексКартинки
ИЛИ РеквизитыФайла.ДатаМодификацииУниверсальная <> ТекущаяВерсия.ДатаМодификацииФайла Тогда
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ФайлСсылка);
БлокировкаДанных.Заблокировать();
ФайлОбъект = ФайлСсылка.ПолучитьОбъект();
// Сменим индекс картинки, возможно, появилась версия или сменился индекс картинки у версии.
ФайлОбъект.ИндексКартинки = ТекущаяВерсия.ИндексКартинки;
// Копируем реквизиты для ускорения работы ограничения на уровне записей.
ФайлОбъект.Размер = ТекущаяВерсия.Размер;
ФайлОбъект.ДатаСоздания = ТекущаяВерсия.ДатаСоздания;
ФайлОбъект.Изменил = ТекущаяВерсия.Автор;
ФайлОбъект.Расширение = ТекущаяВерсия.Расширение;
ФайлОбъект.Том = ТекущаяВерсия.Том;
ФайлОбъект.ПутьКФайлу = ТекущаяВерсия.ПутьКФайлу;
ФайлОбъект.ТипХраненияФайла = ТекущаяВерсия.ТипХраненияФайла;
ФайлОбъект.ДатаМодификацииУниверсальная = ТекущаяВерсия.ДатаМодификацииУниверсальная;
Если Источник.ДополнительныеСвойства.Свойство("ЗаписьПодписанногоОбъекта") Тогда
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта",
Источник.ДополнительныеСвойства.ЗаписьПодписанногоОбъекта);
КонецЕсли;
ФайлОбъект.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецЕсли;
ОбновитьСостояниеОчередиИзвлеченияТекста(Источник.Ссылка, Источник.СтатусИзвлеченияТекста);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
Формирование файла CSV с записью в файл на клиенте
ПолучитьКодировкуВерсииФайла (БСП)
ЗаписатьКодировкуВерсииФайла (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)