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