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