1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-04-07 07:10:01 +02:00

Классы в CLI

This commit is contained in:
Anton Titovets 2024-03-22 10:40:03 +03:00
parent 8437b82ea9
commit c341507d83
5 changed files with 226 additions and 195 deletions

View File

@ -1,10 +1,16 @@
#Использовать cmdline
#Использовать oint
#Использовать "internal"
#Использовать "../../tools"
#Использовать "../../help"
#Область СлужебныйПрограммныйИнтерфейс
Перем ОбъектОПИ;
Перем Парсер;
#КонецОбласти
Процедура ПриСозданииОбъекта()
ОбъектОПИ = Новый СвязьОПИ;
КонецПроцедуры
#Область СлужебныеПроцедурыИФункции
@ -13,16 +19,16 @@
Процедура ОсновнойОбработчик()
Парсер = Новый ПарсерАргументовКоманднойСтроки();
Для Каждого Команда Из ПолучитьИмяМодуля() Цикл
Для Каждого Команда Из ОбъектОПИ.ПолучитьИмяМодуля() Цикл
СформироватьКоманду(Команда.Ключ, Парсер);
КонецЦикла;
Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
ТекущаяКоманда = Результат["Команда"];
Если ТекущаяКоманда = Неопределено Тогда
ВывестиНачальнуюСтраницу();
Справка.ВывестиНачальнуюСтраницу();
Иначе
ВыполнитьОбработкуКоманды(Результат);
КонецЕсли;
@ -32,7 +38,7 @@
Процедура СформироватьКоманду(Знач Имя, Парсер)
Команда = Парсер.ОписаниеКоманды(Имя);
ТаблицаПараметров = ПолучитьТаблицуПараметров(Имя);
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Имя).Скопировать();
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
@ -69,31 +75,29 @@
КонецПроцедуры
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
Модуль = ПолучитьИмяМодуля(Команда);
Модуль = ОбъектОПИ.ПолучитьИмяМодуля(Команда);
Параметры = Данные["ЗначенияПараметров"];
Метод = Параметры["Метод"];
Ответ = "<пустой возврат>";
ТаблицаПараметров = ПолучитьТаблицуПараметров(Команда);
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Команда);
Если Не ЗначениеЗаполнено(Метод) Тогда
ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
Возврат "";
КонецЕсли;
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
ТекстВыполнения = "";
Если Параметры.Количество() = 1 Тогда
ВывестиСправкуПоПараметрам(ПараметрыМетода);
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
Возврат "";
КонецЕсли;
СтрокаВызова = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода);
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
Выполнить(ТекстВыполнения);
Возврат Ответ;
@ -116,7 +120,7 @@
КонецПроцедуры
Процедура ОбработатьВыводJSON()
Процедура ОбработатьВыводJSON(Вывод)
Если ТипЗнч(Вывод) = Тип("Структура")
Или ТипЗнч(Вывод) = Тип("Соответствие")
@ -127,96 +131,53 @@
КонецЕсли;
КонецПроцедуры
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода)
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод)
ТекстВыполнения = "";
СтрокаВызова = Модуль + "." + Метод + "(";
Счетчик = 0;
СтрокаВызова = Модуль + "." + Метод + "(";
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
ЗначениеПараметра = ПереданныеПараметры.Получить(НеобходимыйПараметр.Параметр);
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметра" + Строка(Счетчик);
ТекстВыполнения = ТекстВыполнения
+ Символы.ПС
+ НеобходимыйПараметр.Имя
+ ИмяПараметра
+ " = ОбработатьВходящийПараметр("""
+ ЗначениеПараметра
+ """, """
+ НеобходимыйПараметр.ВариантОбработки
+ """);";
СтрокаВызова = СтрокаВызова + НеобходимыйПараметр.Имя + ", ";
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
Счетчик = Счетчик + 1;
Иначе
СтрокаВызова = СтрокаВызова + " , ";
КонецЕсли;
КонецЦикла;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - 2);
СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова;
ЛишниеСимволы = 2;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова;
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
Возврат СтрокаВызова;
Возврат ТекстВыполнения;
КонецФункции
#КонецОбласти
#Область ОбработкаПараметров
Функция ОбработатьВходящийПараметр(Знач Значение, Знач ВидОбработки)
Если ВидОбработки = "СоответствиеJSON" Тогда
ОбработатьПараметрJSON(Значение);
ИначеЕсли ВидОбработки = "ТекстовыеДанные" Тогда
ОбработатьПараметрТекст(Значение);
Иначе
Значение = Строка(Значение);
КонецЕсли;
Возврат Значение;
КонецФункции
Процедура ОбработатьПараметрJSON(Значение)
Файл = Новый Файл(Значение);
ЧтениеJSON = Новый ЧтениеJSON;
Если Файл.Существует() Тогда
ЧтениеJSON.ОткрытьФайл(Значение);
ЧтениеJSON.Прочитать();
Иначе
ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение));
КонецЕсли;
Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
ЧтениеJSON.Закрыть();
КонецПроцедуры
Процедура ОбработатьПараметрТекст(Значение)
Файл = Новый Файл(Значение);
Если Файл.Существует() Тогда
ЧтениеТекста = Новый ЧтениеТекста(Значение);
Значение = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Иначе
Значение = Строка(Значение);
КонецЕсли;
Значение = СокрЛП(Значение);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
Попытка
ПриСозданииОбъекта();
ОсновнойОбработчик();
Исключение
Сообщить(Символы.ПС + "!!! ОШИБКА: Проверьте корректность введенных данных" + Символы.ПС, СтатусСообщения.ОченьВажное);

View File

@ -1,11 +1,12 @@
#Использовать "internal"
#Использовать "../../tools"
#Область Справки
#Область СлужебныйПрограммныйИнтерфейс
Процедура ВывестиНачальнуюСтраницу() Экспорт
СписокКоманд = "";
Модули = ПолучитьИмяМодуля();
СвязьОПИ = Новый СвязьОПИ;
Модули = СвязьОПИ.ПолучитьИмяМодуля();
Для Каждого Команда Из Модули Цикл
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
@ -83,4 +84,4 @@
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -1,113 +0,0 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция ПолучитьИмяМодуля(Знач ИмяКоманды = "") Экспорт
СоответствиеКомандМодулей = Новый Соответствие();
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
Если ЗначениеЗаполнено(ИмяКоманды) Тогда
Результат = СоответствиеКомандМодулей.Получить(ИмяКоманды);
Иначе
Результат = СоответствиеКомандМодулей;
КонецЕсли;
Если Не ЗначениеЗаполнено(Результат) Тогда
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
Функция ПолучитьТаблицуПараметров(Знач ИмяКоманды) Экспорт
ТПМ = Новый ТаблицаЗначений();
ТПМ.Колонки.Добавить("Метод");
ТПМ.Колонки.Добавить("МетодПоиска");
ТПМ.Колонки.Добавить("Параметр");
ТПМ.Колонки.Добавить("Имя");
ТПМ.Колонки.Добавить("Описание");
ТПМ.Колонки.Добавить("ВариантОбработки");
Попытка
Выполнить("ЗаполнитьТаблицуПараметров" + ИмяКоманды + "(ТПМ);");
Исключение
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
КонецПопытки;
Возврат ТПМ;
КонецФункции
Процедура ЗаполнитьТаблицуПараметровTelegram(ТПМ) Экспорт
ДобавитьПараметрМетода(ТПМ, "ПолучитьИнформациюБота" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ПолучитьОбновления" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook" , "--url" , "URL" , "Адрес обработки запросов (с https://)");
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook" , "--url" , "URL" , "Адрес обработки запросов (с https://)");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--path" , "Картинка" , "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--path" , "Картинка" , "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--path" , "Гифка" , "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--path" , "Аудио" , "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--token" , "Токен" , "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--text" , "Текст" , "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--path" , "Документ" , "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьПараметрМетода(Таблица
, Знач Метод
, Знач Параметр
, Знач Имя
, Знач Описание
, Знач ВариантОбработки = "Строка")
НовыйПараметр = Таблица.Добавить();
НовыйПараметр.МетодПоиска = вРег(Метод);
НовыйПараметр.Метод = Метод;
НовыйПараметр.Параметр = Параметр;
НовыйПараметр.Имя = Имя;
НовыйПараметр.Описание = Описание;
НовыйПараметр.ВариантОбработки = ВариантОбработки;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,128 @@
Перем СоответствиеТаблицПараметров;
Перем СоответствиеКомандМодулей;
Процедура ПриСозданииОбъекта()
СоответствиеТаблицПараметров = Новый Соответствие();
СоответствиеКомандМодулей = Новый Соответствие();
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
КонецПроцедуры
#Область СлужебныйПрограммныйИнтерфейс
Функция ПолучитьИмяМодуля(Знач ИмяКоманды = "") Экспорт
Если ЗначениеЗаполнено(ИмяКоманды) Тогда
Результат = СоответствиеКомандМодулей.Получить(ИмяКоманды);
Иначе
Результат = СоответствиеКомандМодулей;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Результат) Тогда
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
Функция ПолучитьТаблицуПараметров(Знач ИмяКоманды) Экспорт
ТПМ = СоответствиеТаблицПараметров.Получить(ИмяКоманды);
Если ТПМ = Неопределено Тогда
ТПМ = Новый ТаблицаЗначений();
ТПМ.Колонки.Добавить("Метод");
ТПМ.Колонки.Добавить("МетодПоиска");
ТПМ.Колонки.Добавить("Параметр");
ТПМ.Колонки.Добавить("Описание");
ТПМ.Колонки.Добавить("ВариантОбработки");
Попытка
Выполнить("ЗаполнитьТаблицуПараметров" + ИмяКоманды + "(ТПМ);");
Исключение
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
КонецПопытки;
СоответствиеТаблицПараметров.Вставить(ИмяКоманды, ТПМ);
КонецЕсли;
Возврат ТПМ;
КонецФункции
Процедура ЗаполнитьТаблицуПараметровTelegram(ТПМ) Экспорт
ДобавитьПараметрМетода(ТПМ, "ПолучитьИнформациюБота", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ПолучитьОбновления", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook", "--url", "Адрес обработки запросов (с https://)");
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook", "--url", "Адрес обработки запросов (с https://)");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--path", "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--path", "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--path", "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--path", "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--token", "Токен бота");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--id", "ID чата / ID чата*ID темы");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--text", "Текст сообщения");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--path", "Путь к файлу");
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьПараметрМетода(Таблица
, Знач Метод
, Знач Параметр
, Знач Описание
, Знач ВариантОбработки = "Строка")
НовыйПараметр = Таблица.Добавить();
НовыйПараметр.МетодПоиска = вРег(Метод);
НовыйПараметр.Метод = Метод;
НовыйПараметр.Параметр = Параметр;
НовыйПараметр.Описание = Описание;
НовыйПараметр.ВариантОбработки = ВариантОбработки;
КонецПроцедуры
#КонецОбласти
ПриСозданииОбъекта();

View File

@ -0,0 +1,54 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция ОбработатьВходящийПараметр(Знач Значение, Знач ВидОбработки) Экспорт
Если ВидОбработки = "СоответствиеJSON" Тогда
ОбработатьПараметрJSON(Значение);
ИначеЕсли ВидОбработки = "ТекстовыеДанные" Тогда
ОбработатьПараметрТекст(Значение);
Иначе
Значение = Строка(Значение);
КонецЕсли;
Возврат Значение;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ОбработатьПараметрJSON(Значение)
Файл = Новый Файл(Значение);
ЧтениеJSON = Новый ЧтениеJSON;
Если Файл.Существует() Тогда
ЧтениеJSON.ОткрытьФайл(Значение);
ЧтениеJSON.Прочитать();
Иначе
ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение));
КонецЕсли;
Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
ЧтениеJSON.Закрыть();
КонецПроцедуры
Процедура ОбработатьПараметрТекст(Значение)
Файл = Новый Файл(Значение);
Если Файл.Существует() Тогда
ЧтениеТекста = Новый ЧтениеТекста(Значение);
Значение = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Иначе
Значение = Строка(Значение);
КонецЕсли;
Значение = СокрЛП(Значение);
КонецПроцедуры
#КонецОбласти