ЗаписатьРезультатИзвлеченияТекста (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебный
БСП

Записать результат извлечения текста. Записывает на сервер результат извлечения текста - извлеченный текст и СтатусИзвлеченияТекста.

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ЗаписатьКодировкуВерсииФайлаИИзвлеченныйТекст (БСП)

ИзвлечьТекстИзФайлов (БСП)

ЗаполнитьОчередьИзвлеченияТекста (БСП)

ОбработатьОчередьИзвлеченияТекста (БСП)

ОбновитьСостояниеОчередиИзвлеченияТекста (БСП)

ИзвлечьТекст (БСП)

ТекстЗапросаДляИзвлеченияТекста (БСП)

ПоказатьНастройку (БСП)

Синтакс-помощник БСП с нейросетевым ассистентом