You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
Рефакторинг вызова команд CLI
This commit is contained in:
142
ci/os/internal/Modules/МетодыCLI.os
vendored
142
ci/os/internal/Modules/МетодыCLI.os
vendored
@@ -103,18 +103,17 @@
|
||||
Процедура ЗаписатьВспомогательныеФункции()
|
||||
|
||||
МодульСоставаОПИ.ДобавитьСтроку("
|
||||
|
|
||||
|Функция ПолучитьСостав(Знач Команда) Экспорт
|
||||
| ТекущийСостав = Новый(Команда);
|
||||
| Возврат ТекущийСостав.ПолучитьСостав();
|
||||
|КонецФункции
|
||||
|
|
||||
|
||||
|Функция ПолучитьПолныйСостав() Экспорт
|
||||
|
|
||||
|
|
||||
| ОбщаяТаблица = Неопределено;
|
||||
|
|
||||
|
|
||||
| Для Каждого Команда Из ПолучитьСоответствиеКомандМодулей() Цикл
|
||||
|
|
||||
|
|
||||
| ТекущаяТаблица = ПолучитьСостав(Команда.Ключ);
|
||||
|
|
||||
| Если ОбщаяТаблица = Неопределено Тогда
|
||||
@@ -124,75 +123,88 @@
|
||||
| ЗаполнитьЗначенияСвойств(ОбщаяТаблица.Добавить(), СтрокаТаблицы);
|
||||
| КонецЦикла;
|
||||
| КонецЕсли;
|
||||
|
|
||||
|
|
||||
| КонецЦикла;
|
||||
|
|
||||
|
|
||||
| Возврат ОбщаяТаблица;
|
||||
|
|
||||
|
|
||||
|КонецФункции
|
||||
|
|
||||
|Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод) Экспорт
|
||||
|
|
||||
| ТекстВыполнения = """";
|
||||
| СтрокаВызова = Модуль + ""."" + Метод + ""("";
|
||||
| Счетчик = 0;
|
||||
|
|
||||
| Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
||||
|
|
||||
| ИмяПараметра = НеобходимыйПараметр.Параметр;
|
||||
| ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
|
||||
|
|
||||
| Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
|
|
||||
| ИмяПараметра = ""Параметр"" + СтрЗаменить(ИмяПараметра, ""--"", ""_"");
|
||||
|
|
||||
| ТекстВыполнения = ТекстВыполнения
|
||||
| + Символы.ПС
|
||||
| + ИмяПараметра
|
||||
| + "" = """"""
|
||||
| + СтрЗаменить(ЗначениеПараметра, """""""", """""""""""")
|
||||
| + """""";"";
|
||||
|
|
||||
|
||||
|Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач Команда, Знач Метод) Экспорт
|
||||
|
|
||||
| Модуль = СоответствиеКоманд.Получить(Команда);
|
||||
|
|
||||
| Если Не ЗначениеЗаполнено(Модуль) Тогда
|
||||
| Возврат Новый Структура(""Ошибка,Результат"", Истина, ""Команда"");
|
||||
| КонецЕсли;
|
||||
|
|
||||
| ОтборКоманды = Новый Структура(""МетодПоиска"", вРег(Метод));
|
||||
| ПараметрыМетода = ПолучитьСостав(Команда).НайтиСтроки(ОтборКоманды);
|
||||
|
|
||||
| Если Не ЗначениеЗаполнено(ПараметрыМетода) Тогда
|
||||
| Возврат Новый Структура(""Ошибка,Результат"", Истина, ""Метод"");
|
||||
| КонецЕсли;
|
||||
|
|
||||
| ТекстВыполнения = """";
|
||||
| СтрокаВызова = Модуль + ""."" + Метод + ""("";
|
||||
| Счетчик = 0;
|
||||
|
|
||||
| Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
||||
|
|
||||
| ИмяПараметра = НеобходимыйПараметр.Параметр;
|
||||
| ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
|
||||
|
|
||||
| Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
|
|
||||
| ИмяПараметра = ""Параметр"" + СтрЗаменить(ИмяПараметра, ""--"", ""_"");
|
||||
|
|
||||
| ТекстВыполнения = ТекстВыполнения
|
||||
| + Символы.ПС
|
||||
| + ИмяПараметра
|
||||
| + "" = """"""
|
||||
| + СтрЗаменить(ЗначениеПараметра, """""""", """""""""""")
|
||||
| + """""";"";
|
||||
|
|
||||
| Если ТребуетсяОбработкаУправляющихПоследовательностей(ИмяПараметра, ЗначениеПараметра) Тогда
|
||||
|
|
||||
| ТекстВыполнения = ТекстВыполнения + ""
|
||||
| |OPI_Инструменты.ЗаменитьУправляющиеПоследовательности("" + ИмяПараметра + "");
|
||||
| |"";
|
||||
|
|
||||
| КонецЕсли;
|
||||
|
|
||||
| СтрокаВызова = СтрокаВызова + ИмяПараметра + "", "";
|
||||
|
|
||||
| ТекстВыполнения = ТекстВыполнения + ""
|
||||
| |OPI_Инструменты.ЗаменитьУправляющиеПоследовательности("" + ИмяПараметра + "");
|
||||
| |"";
|
||||
|
|
||||
| КонецЕсли;
|
||||
|
|
||||
| СтрокаВызова = СтрокаВызова + ИмяПараметра + "", "";
|
||||
| Счетчик = Счетчик + 1;
|
||||
|
|
||||
| Иначе
|
||||
| СтрокаВызова = СтрокаВызова + "" , "";
|
||||
| КонецЕсли;
|
||||
|
|
||||
| КонецЦикла;
|
||||
|
|
||||
| ЛишниеСимволы = 2;
|
||||
| СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
|
||||
| СтрокаВызова = СтрокаВызова + "");"";
|
||||
| СтрокаВызова = ""Ответ = "" + СтрокаВызова;
|
||||
| ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
||||
|
|
||||
| Возврат ТекстВыполнения;
|
||||
|
|
||||
|
|
||||
| Иначе
|
||||
| СтрокаВызова = СтрокаВызова + "" , "";
|
||||
| КонецЕсли;
|
||||
|
|
||||
| КонецЦикла;
|
||||
|
|
||||
| ЛишниеСимволы = 2;
|
||||
| СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
|
||||
| СтрокаВызова = СтрокаВызова + "");"";
|
||||
| СтрокаВызова = ""Ответ = "" + СтрокаВызова;
|
||||
| ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
||||
|
|
||||
| Возврат Новый Структура(""Ошибка,Результат"", Ложь, ТекстВыполнения);
|
||||
|
|
||||
|КонецФункции
|
||||
|
|
||||
|
||||
|Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
|
||||
|
|
||||
| ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
|
||||
| ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
|
||||
|
|
||||
| Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, ""{"")
|
||||
| И Не СтрНачинаетсяС(ЗначениеПараметраСокр, ""["")
|
||||
| И Не ФайлПараметра.Существует()
|
||||
| И Не ИмяПараметра = ""Параметр_out"";
|
||||
|
|
||||
|
|
||||
| ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
|
||||
| ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
|
||||
|
|
||||
| Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, ""{"")
|
||||
| И Не СтрНачинаетсяС(ЗначениеПараметраСокр, ""["")
|
||||
| И Не ФайлПараметра.Существует()
|
||||
| И Не ИмяПараметра = ""Параметр_out"";
|
||||
|
|
||||
|КонецФункции
|
||||
|");
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьТаблицыСостава()
|
||||
|
@@ -105,7 +105,6 @@
|
||||
|
||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры)
|
||||
|
||||
Модуль = Команды[Команда];
|
||||
Метод = Параметры["Метод"];
|
||||
Ответ = "Функция вернула пустое значение";
|
||||
|
||||
@@ -115,18 +114,25 @@
|
||||
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
||||
КонецЕсли;
|
||||
|
||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыМетода) Тогда
|
||||
Справка.ВывестиСообщениеИсключения("Метод", ФайлВывода);
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.Количество() = ЧислоСтандартныхПараметров Или Параметры["--help"] Тогда
|
||||
|
||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыМетода) Тогда
|
||||
Справка.ВывестиСообщениеИсключения("Метод", ФайлВывода);
|
||||
КонецЕсли;
|
||||
|
||||
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
|
||||
КонецЕсли;
|
||||
|
||||
ТекстВыполнения = ОбъектОПИ.СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||
СтруктураВыполнения = ОбъектОПИ.СформироватьСтрокуВызоваМетода(Параметры, Команда, Метод);
|
||||
|
||||
Если СтруктураВыполнения["Ошибка"] Тогда
|
||||
Справка.ВывестиСообщениеИсключения(СтруктураВыполнения["Результат"], ФайлВывода);
|
||||
Иначе
|
||||
ТекстВыполнения = СтруктураВыполнения["Результат"];
|
||||
КонецЕсли;
|
||||
|
||||
Если Отладка Или Тестирование Тогда
|
||||
Сообщить(ТекстВыполнения, СтатусСообщения.Внимание);
|
||||
|
@@ -3,42 +3,42 @@
|
||||
Перем СоответствиеКоманд;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
СоответствиеКоманд = Новый Соответствие();
|
||||
СоответствиеКоманд.Вставить("tools", "Утилиты");
|
||||
СоответствиеКоманд.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКоманд.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКоманд.Вставить("cdek", "OPI_CDEK");
|
||||
СоответствиеКоманд.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКоманд.Вставить("gcalendar", "OPI_GoogleCalendar");
|
||||
СоответствиеКоманд.Вставить("gdrive", "OPI_GoogleDrive");
|
||||
СоответствиеКоманд.Вставить("gsheets", "OPI_GoogleSheets");
|
||||
СоответствиеКоманд.Вставить("google", "OPI_GoogleWorkspace");
|
||||
СоответствиеКоманд.Вставить("mongodb", "OPI_MongoDB");
|
||||
СоответствиеКоманд.Вставить("neocities", "OPI_Neocities");
|
||||
СоответствиеКоманд.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКоманд.Вставить("ozon", "OPI_Ozon");
|
||||
СоответствиеКоманд.Вставить("s3", "OPI_S3");
|
||||
СоответствиеКоманд.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКоманд.Вставить("sqlite", "OPI_SQLite");
|
||||
СоответствиеКоманд.Вставить("tcp", "OPI_TCP");
|
||||
СоответствиеКоманд.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКоманд.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКоманд.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКоманд.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКоманд.Вставить("vkteams", "OPI_VKTeams");
|
||||
СоответствиеКоманд.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКоманд.Вставить("yandex", "OPI_YandexID");
|
||||
СоответствиеКоманд.Вставить("yamarket", "OPI_YandexMarket");
|
||||
СоответствиеКоманд.Вставить("metrika", "OPI_YandexMetrika");
|
||||
СоответствиеКоманд.Вставить("proxy", "OPI_ПроксиИнтеграций");
|
||||
СоответствиеКоманд = Новый Соответствие();
|
||||
СоответствиеКоманд.Вставить("tools", "Утилиты");
|
||||
СоответствиеКоманд.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКоманд.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКоманд.Вставить("cdek", "OPI_CDEK");
|
||||
СоответствиеКоманд.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКоманд.Вставить("gcalendar", "OPI_GoogleCalendar");
|
||||
СоответствиеКоманд.Вставить("gdrive", "OPI_GoogleDrive");
|
||||
СоответствиеКоманд.Вставить("gsheets", "OPI_GoogleSheets");
|
||||
СоответствиеКоманд.Вставить("google", "OPI_GoogleWorkspace");
|
||||
СоответствиеКоманд.Вставить("mongodb", "OPI_MongoDB");
|
||||
СоответствиеКоманд.Вставить("neocities", "OPI_Neocities");
|
||||
СоответствиеКоманд.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКоманд.Вставить("ozon", "OPI_Ozon");
|
||||
СоответствиеКоманд.Вставить("s3", "OPI_S3");
|
||||
СоответствиеКоманд.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКоманд.Вставить("sqlite", "OPI_SQLite");
|
||||
СоответствиеКоманд.Вставить("tcp", "OPI_TCP");
|
||||
СоответствиеКоманд.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКоманд.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКоманд.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКоманд.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКоманд.Вставить("vkteams", "OPI_VKTeams");
|
||||
СоответствиеКоманд.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКоманд.Вставить("yandex", "OPI_YandexID");
|
||||
СоответствиеКоманд.Вставить("yamarket", "OPI_YandexMarket");
|
||||
СоответствиеКоманд.Вставить("metrika", "OPI_YandexMetrika");
|
||||
СоответствиеКоманд.Вставить("proxy", "OPI_ПроксиИнтеграций");
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьВерсию() Экспорт
|
||||
Возврат "1.18.0";
|
||||
Возврат "1.18.0";
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьСоответствиеКомандМодулей() Экспорт
|
||||
Возврат СоответствиеКоманд;
|
||||
Возврат СоответствиеКоманд;
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПолныйСостав() Экспорт
|
||||
|
||||
|
||||
ОбщаяТаблица = Неопределено;
|
||||
|
||||
|
||||
Для Каждого Команда Из ПолучитьСоответствиеКомандМодулей() Цикл
|
||||
|
||||
|
||||
ТекущаяТаблица = ПолучитьСостав(Команда.Ключ);
|
||||
|
||||
Если ОбщаяТаблица = Неопределено Тогда
|
||||
@@ -63,70 +63,83 @@
|
||||
ЗаполнитьЗначенияСвойств(ОбщаяТаблица.Добавить(), СтрокаТаблицы);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Возврат ОбщаяТаблица;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод) Экспорт
|
||||
|
||||
ТекстВыполнения = "";
|
||||
СтрокаВызова = Модуль + "." + Метод + "(";
|
||||
Счетчик = 0;
|
||||
|
||||
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
||||
|
||||
ИмяПараметра = НеобходимыйПараметр.Параметр;
|
||||
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
|
||||
|
||||
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
|
||||
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
|
||||
|
||||
ТекстВыполнения = ТекстВыполнения
|
||||
+ Символы.ПС
|
||||
+ ИмяПараметра
|
||||
+ " = """
|
||||
+ СтрЗаменить(ЗначениеПараметра, """", """""")
|
||||
+ """;";
|
||||
|
||||
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач Команда, Знач Метод) Экспорт
|
||||
|
||||
Модуль = СоответствиеКоманд.Получить(Команда);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Модуль) Тогда
|
||||
Возврат Новый Структура("Ошибка,Результат", Истина, "Команда");
|
||||
КонецЕсли;
|
||||
|
||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||
ПараметрыМетода = ПолучитьСостав(Команда).НайтиСтроки(ОтборКоманды);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыМетода) Тогда
|
||||
Возврат Новый Структура("Ошибка,Результат", Истина, "Метод");
|
||||
КонецЕсли;
|
||||
|
||||
ТекстВыполнения = "";
|
||||
СтрокаВызова = Модуль + "." + Метод + "(";
|
||||
Счетчик = 0;
|
||||
|
||||
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
||||
|
||||
ИмяПараметра = НеобходимыйПараметр.Параметр;
|
||||
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
|
||||
|
||||
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
|
||||
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
|
||||
|
||||
ТекстВыполнения = ТекстВыполнения
|
||||
+ Символы.ПС
|
||||
+ ИмяПараметра
|
||||
+ " = """
|
||||
+ СтрЗаменить(ЗначениеПараметра, """", """""")
|
||||
+ """;";
|
||||
|
||||
Если ТребуетсяОбработкаУправляющихПоследовательностей(ИмяПараметра, ЗначениеПараметра) Тогда
|
||||
|
||||
ТекстВыполнения = ТекстВыполнения + "
|
||||
|OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(" + ИмяПараметра + ");
|
||||
|";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||
|
||||
ТекстВыполнения = ТекстВыполнения + "
|
||||
|OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(" + ИмяПараметра + ");
|
||||
|";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
Иначе
|
||||
СтрокаВызова = СтрокаВызова + " , ";
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЛишниеСимволы = 2;
|
||||
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
|
||||
СтрокаВызова = СтрокаВызова + ");";
|
||||
СтрокаВызова = "Ответ = " + СтрокаВызова;
|
||||
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
||||
|
||||
Возврат ТекстВыполнения;
|
||||
|
||||
|
||||
Иначе
|
||||
СтрокаВызова = СтрокаВызова + " , ";
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЛишниеСимволы = 2;
|
||||
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
|
||||
СтрокаВызова = СтрокаВызова + ");";
|
||||
СтрокаВызова = "Ответ = " + СтрокаВызова;
|
||||
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
||||
|
||||
Возврат Новый Структура("Ошибка,Результат", Ложь, ТекстВыполнения);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
|
||||
|
||||
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
|
||||
ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
|
||||
|
||||
Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
|
||||
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
|
||||
И Не ФайлПараметра.Существует()
|
||||
И Не ИмяПараметра = "Параметр_out";
|
||||
|
||||
|
||||
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
|
||||
ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
|
||||
|
||||
Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
|
||||
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
|
||||
И Не ФайлПараметра.Существует()
|
||||
И Не ИмяПараметра = "Параметр_out";
|
||||
|
||||
КонецФункции
|
||||
|
Reference in New Issue
Block a user