Извлечь текст из файлов. Извлечение текста для полнотекстового поиска.
////////////////////////////////////////////////////////////////////////////////
// Извлечение текста для полнотекстового поиска.
Процедура ИзвлечьТекстИзФайлов() Экспорт
УстановитьПривилегированныйРежим(Истина);
Если Не ОбщегоНазначения.ЭтоWindowsСервер() Тогда
Возврат; // Извлечение текста работает только под Windows.
КонецЕсли;
ИмяСРасширениемФайла = "";
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Файлы.Извлечение текста'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,
,
,
НСтр("ru = 'Начато регламентное извлечения текста'"));
Запрос = Новый Запрос(ТекстЗапросаДляИзвлеченияТекста());
ФайлыДляИзвлеченияТекста = Запрос.Выполнить().Выгрузить();
Для Каждого ФайлБезТекста Из ФайлыДляИзвлеченияТекста Цикл
ФайлЗаблокирован = Ложь;
ИмяФайлаСДвоичнымиДанными = "";
Попытка
ИзвлечьТекстИзФайла(ФайлБезТекста, ФайлЗаблокирован, ИмяФайлаСДвоичнымиДанными);
Исключение
Если ФайлЗаблокирован Тогда
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Файлы.Извлечение текста'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
,
,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось выполнить регламентное извлечение текста из файла
|""%1""
|по причине:
|""%2"".'"),
ИмяСРасширениемФайла,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) ));
КонецЕсли;
КонецПопытки;
Если ЗначениеЗаполнено(ИмяФайлаСДвоичнымиДанными) Тогда
Файл = Новый Файл(ИмяФайлаСДвоичнымиДанными);
Если Файл.Существует() Тогда
Попытка
УдалитьФайлы(ИмяФайлаСДвоичнымиДанными);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Извлечение текста'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Файлы.Извлечение текста'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,
,
,
НСтр("ru = 'Закончено регламентное извлечение текста'"));
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ИзвлечьТекстИзФайлаНаДиске (БСП)
ИзвлечьТекстOpenDocument (БСП)
ИзвлечьТекстИзТекстовогоФайла (БСП)
ИзвлечьТекстИзФайловНаСервере (БСП)