mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-02 22:05:37 +02:00
Правки по CLI
This commit is contained in:
parent
419cedd743
commit
d546b737c6
@ -6,58 +6,74 @@
|
|||||||
Перем ОбъектОПИ;
|
Перем ОбъектОПИ;
|
||||||
Перем Парсер;
|
Перем Парсер;
|
||||||
|
|
||||||
Процедура ПриСозданииОбъекта()
|
|
||||||
|
|
||||||
ОбъектОПИ = Новый СвязьОПИ();
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
#Область Основные
|
#Область Основные
|
||||||
|
|
||||||
Процедура ОсновнойОбработчик()
|
Процедура ОсновнойОбработчик()
|
||||||
|
|
||||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||||
|
ОбъектОПИ = Новый СвязьОПИ();
|
||||||
|
Команды = ОбъектОПИ.СоответствиеКомандМодулей;
|
||||||
|
|
||||||
Для Каждого Команда Из ОбъектОПИ.ПолучитьИмяМодуля() Цикл
|
ДобавитьКомандуСправки();
|
||||||
|
|
||||||
|
Для Каждого Команда Из Команды Цикл
|
||||||
СформироватьКоманду(Команда.Ключ, Парсер);
|
СформироватьКоманду(Команда.Ключ, Парсер);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
|
Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
|
||||||
ТекущаяКоманда = Результат["Команда"];
|
ТекущаяКоманда = Результат["Команда"];
|
||||||
|
|
||||||
Если ТекущаяКоманда = Неопределено Тогда
|
Если ТекущаяКоманда = Неопределено Тогда
|
||||||
Справка.ВывестиНачальнуюСтраницу();
|
Справка.ВывестиНачальнуюСтраницу(Команды);
|
||||||
Иначе
|
Иначе
|
||||||
ВыполнитьОбработкуКоманды(Результат);
|
ВыполнитьОбработкуКоманды(Результат);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ДобавитьКомандуСправки()
|
||||||
|
|
||||||
|
Парсер.ДобавитьПараметр("-h");
|
||||||
|
Парсер.ДобавитьПараметр("-help");
|
||||||
|
Парсер.ДобавитьПараметр("--help");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
||||||
|
|
||||||
Команда = Парсер.ОписаниеКоманды(Имя);
|
Команда = Парсер.ОписаниеКоманды(Имя);
|
||||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Имя).Скопировать();
|
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Имя];
|
||||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
|
||||||
|
Если Не ТаблицаПараметров = Неопределено Тогда
|
||||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
|
||||||
|
ТаблицаПараметров = ТаблицаПараметров.Скопировать();
|
||||||
Парсер.ДобавитьКоманду(Команда);
|
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||||
|
|
||||||
|
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||||
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--help");
|
||||||
|
|
||||||
|
Парсер.ДобавитьКоманду(Команда);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Справка.ВывестиСообщениеИсключения("Команда");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВыполнитьОбработкуКоманды(Знач Данные)
|
Процедура ВыполнитьОбработкуКоманды(Знач Данные)
|
||||||
|
|
||||||
ТекущаяКоманда = Данные["Команда"];
|
ТекущаяКоманда = Данные["Команда"];
|
||||||
|
Параметры = Данные["ЗначенияПараметров"];
|
||||||
Вывод = "";
|
Вывод = "";
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Данные);
|
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры);
|
||||||
ОбработатьВыводJSON(Вывод);
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||||
|
ОбработатьВыводJSON(Вывод);
|
||||||
Сообщить(Символы.ПС + Вывод + Символы.ПС, СтатусСообщения.Внимание);
|
Сообщить(Символы.ПС + Вывод + Символы.ПС, СтатусСообщения.Внимание);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@ -66,37 +82,33 @@
|
|||||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||||
Сообщить(Вывод);
|
Сообщить(Вывод);
|
||||||
Иначе
|
Иначе
|
||||||
Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
|
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
Сообщить(Символы.ПС);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
|
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры)
|
||||||
|
|
||||||
Модуль = ОбъектОПИ.ПолучитьИмяМодуля(Команда);
|
Модуль = ОбъектОПИ.СоответствиеКомандМодулей[Команда];
|
||||||
Параметры = Данные["ЗначенияПараметров"];
|
|
||||||
Метод = Параметры["Метод"];
|
Метод = Параметры["Метод"];
|
||||||
Ответ = "<пустой возврат>";
|
Ответ = "Функция вернула пустое значение";
|
||||||
|
|
||||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Команда);
|
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Команда];
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Метод) Тогда
|
Если Не ЗначениеЗаполнено(Метод) Или Метод = "--help" Тогда
|
||||||
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
||||||
Возврат "";
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||||
|
|
||||||
Если Параметры.Количество() = 1 Тогда
|
Если Параметры.Количество() = 2 Или Параметры["--help"] = Истина Тогда
|
||||||
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода, Команда);
|
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода, Команда);
|
||||||
Возврат "";
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||||
|
|
||||||
Выполнить(ТекстВыполнения);
|
Выполнить(ТекстВыполнения);
|
||||||
|
|
||||||
@ -156,6 +168,7 @@
|
|||||||
|
|
||||||
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||||
Счетчик = Счетчик + 1;
|
Счетчик = Счетчик + 1;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
СтрокаВызова = СтрокаВызова + " , ";
|
СтрокаВызова = СтрокаВызова + " , ";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -176,8 +189,9 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
|
Попытка
|
||||||
ПриСозданииОбъекта();
|
|
||||||
ОсновнойОбработчик();
|
ОсновнойОбработчик();
|
||||||
|
Исключение
|
||||||
|
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
@ -1,21 +1,12 @@
|
|||||||
#Использовать "../../tools"
|
#Использовать "../../tools"
|
||||||
|
|
||||||
Перем ОбъектОПИ;
|
|
||||||
|
|
||||||
#Область СлужебныйПрограммныйИнтерфейс
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
Процедура ПриСозданииОбъекта()
|
Процедура ВывестиНачальнуюСтраницу(Знач СоответствиеКомандМодулей) Экспорт
|
||||||
|
|
||||||
ОбъектОПИ = Новый СвязьОПИ;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ВывестиНачальнуюСтраницу() Экспорт
|
|
||||||
|
|
||||||
СписокКоманд = "";
|
СписокКоманд = "";
|
||||||
Модули = ОбъектОПИ.ПолучитьИмяМодуля();
|
|
||||||
|
|
||||||
Для Каждого Команда Из Модули Цикл
|
Для Каждого Команда Из СоответствиеКомандМодулей Цикл
|
||||||
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
|
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@ -44,6 +35,8 @@
|
|||||||
|
|
||||||
Сообщить("Полную документацию можно найти по адресу: https://opi.neocities.org" + Символы.ПС
|
Сообщить("Полную документацию можно найти по адресу: https://opi.neocities.org" + Символы.ПС
|
||||||
, СтатусСообщения.Информация);
|
, СтатусСообщения.Информация);
|
||||||
|
|
||||||
|
ЗавершитьРаботу(0);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -62,22 +55,28 @@
|
|||||||
|
|
||||||
Сообщить(Символы.ПС);
|
Сообщить(Символы.ПС);
|
||||||
|
|
||||||
|
ЗавершитьРаботу(0);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВывестиСправкуПоПараметрам(Знач ТаблицаПараметров, Знач Команда) Экспорт
|
Процедура ВывестиСправкуПоПараметрам(Знач ТаблицаПараметров, Знач Команда) Экспорт
|
||||||
|
|
||||||
Если ТаблицаПараметров.Количество() = 0 Тогда
|
Если ТаблицаПараметров.Количество() = 0 Тогда
|
||||||
Возврат;
|
ВывестиСообщениеИсключения("Метод");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИмяМетода = ТаблицаПараметров[0].Метод;
|
Дополнение = СформироватьДополненеОписания(Команда);
|
||||||
ТекстСправки = "";
|
ИмяМетода = ТаблицаПараметров[0].Метод;
|
||||||
|
ТекстСправки = "
|
||||||
Сообщить("
|
|
||||||
| ## Метод " + ИмяМетода + "
|
| ## Метод " + ИмяМетода + "
|
||||||
| ## " + ТаблицаПараметров[0].ОписаниеМетода + "
|
| ## " + ТаблицаПараметров[0].ОписаниеМетода;
|
||||||
| " + ОбъектОПИ.ДополнениеОписанияПараметров[Команда] + "
|
|
||||||
| ", СтатусСообщения.Информация);
|
Если ЗначениеЗаполнено(Дополнение) Тогда
|
||||||
|
ТекстСправки = Символы.ПС + ТекстСправки + Дополнение + Символы.ПС;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Сообщить(ТекстСправки, СтатусСообщения.Информация);
|
||||||
|
ТекстСправки = "";
|
||||||
|
|
||||||
ОбработатьТабуляциюСправки(ТаблицаПараметров);
|
ОбработатьТабуляциюСправки(ТаблицаПараметров);
|
||||||
|
|
||||||
@ -93,22 +92,44 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Сообщить(ТекстСправки + Символы.ПС, СтатусСообщения.Внимание);
|
Сообщить(ТекстСправки + Символы.ПС, СтатусСообщения.Внимание);
|
||||||
|
|
||||||
|
ЗавершитьРаботу(0);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВывестиСообщениеИсключения(Знач Причина) Экспорт
|
||||||
|
|
||||||
|
Если Причина = "Команда" Тогда
|
||||||
|
Текст = "Некорректная команда! Проверьте правильность ввода";
|
||||||
|
Код = 1;
|
||||||
|
|
||||||
|
ИначеЕсли Причина = "Метод" Тогда
|
||||||
|
Текст = "Некорректный метод! Проверьте правильность ввода";
|
||||||
|
Код = 2;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Текст = "Непредвиденная ошибка!: " + Причина;
|
||||||
|
Код = 99
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Текст = Символы.ПС + Текст + Символы.ПС;
|
||||||
|
|
||||||
|
Сообщить(Текст, СтатусСообщения.ОченьВажное);
|
||||||
|
ЗавершитьРаботу(Код);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
Процедура ОбработатьТабуляциюСправки(ТаблицаПараметров)
|
Процедура ОбработатьТабуляциюСправки(ТаблицаПараметров)
|
||||||
|
|
||||||
МаксимальнаяДлина = 0;
|
|
||||||
|
МаксимальнаяДлина = 15;
|
||||||
|
|
||||||
Для Каждого ПараметрМетода Из ТаблицаПараметров Цикл
|
Для Каждого ПараметрМетода Из ТаблицаПараметров Цикл
|
||||||
|
|
||||||
ДлинаТекущего = СтрДлина(ПараметрМетода["Параметр"]);
|
|
||||||
МаксимальнаяДлина = ?(ДлинаТекущего > МаксимальнаяДлина, ДлинаТекущего, МаксимальнаяДлина);
|
|
||||||
|
|
||||||
Пока Не СтрДлина(ПараметрМетода["Параметр"]) = МаксимальнаяДлина Цикл
|
Пока Не СтрДлина(ПараметрМетода["Параметр"]) = МаксимальнаяДлина Цикл
|
||||||
ПараметрМетода["Параметр"] = ПараметрМетода["Параметр"] + " ";
|
ПараметрМетода["Параметр"] = ПараметрМетода["Параметр"] + " ";
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@ -139,7 +160,27 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
Функция СформироватьДополненеОписания(Команда)
|
||||||
|
|
||||||
|
Если Команда = "vk" Тогда
|
||||||
|
ТекстДополнения = "
|
||||||
|
| Структура JSON данных авторизации (параметр --auth):
|
||||||
|
| {
|
||||||
|
| ""access_token"": """",
|
||||||
|
| ""from_group"" : ""1"",
|
||||||
|
| ""owner_id"" : """",
|
||||||
|
| ""v"" : ""5.131"",
|
||||||
|
| ""app_id"" : """",
|
||||||
|
| ""group_id"" : """"
|
||||||
|
| }
|
||||||
|
|";
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
ТекстДополнения = "";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ТекстДополнения;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
ПриСозданииОбъекта();
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#Использовать "../../data"
|
#Использовать "../../data"
|
||||||
|
|
||||||
Перем СоответствиеТаблицПараметров;
|
Перем СоответствиеТаблицПараметров Экспорт;
|
||||||
Перем СоответствиеКомандМодулей;
|
Перем СоответствиеКомандМодулей Экспорт;
|
||||||
Перем ДополнениеОписанияПараметров Экспорт;
|
|
||||||
|
|
||||||
Процедура ПриСозданииОбъекта()
|
Процедура ПриСозданииОбъекта()
|
||||||
|
|
||||||
@ -13,8 +12,6 @@
|
|||||||
ТекущаяБиблиотека = "";
|
ТекущаяБиблиотека = "";
|
||||||
ТекущаяТаблица = "";
|
ТекущаяТаблица = "";
|
||||||
|
|
||||||
СформироватьДополненяОписаний();
|
|
||||||
|
|
||||||
Для Каждого СтрокаСостава Из ТаблицаСостава Цикл
|
Для Каждого СтрокаСостава Из ТаблицаСостава Цикл
|
||||||
|
|
||||||
Если ТекущаяБиблиотека <> СтрокаСостава.Библиотека Тогда
|
Если ТекущаяБиблиотека <> СтрокаСостава.Библиотека Тогда
|
||||||
@ -57,45 +54,4 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьИмяМодуля(Знач Команда = "") Экспорт
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Команда) Тогда
|
|
||||||
Значение = СоответствиеКомандМодулей[Команда];
|
|
||||||
Иначе
|
|
||||||
Значение = СоответствиеКомандМодулей;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Значение) Тогда
|
|
||||||
ВызватьИсключение "Команда не найдена: " + Команда;
|
|
||||||
Иначе
|
|
||||||
Возврат Значение;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ПолучитьТаблицуПараметров(Знач Команда) Экспорт
|
|
||||||
Возврат СоответствиеТаблицПараметров[Команда];
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция СформироватьДополненяОписаний()
|
|
||||||
|
|
||||||
ТекстДополненияВК = "
|
|
||||||
| Структура JSON данных авторизации (параметр --auth):
|
|
||||||
| {
|
|
||||||
| ""access_token"": """",
|
|
||||||
| ""from_group"" : ""1"",
|
|
||||||
| ""owner_id"" : """",
|
|
||||||
| ""v"" : ""5.131"",
|
|
||||||
| ""app_id"" : """",
|
|
||||||
| ""group_id"" : """"
|
|
||||||
| }
|
|
||||||
|";
|
|
||||||
|
|
||||||
ДополнениеОписанияПараметров = Новый Соответствие;
|
|
||||||
ДополнениеОписанияПараметров.Вставить("vk", ТекстДополненияВК);
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
ПриСозданииОбъекта();
|
|
@ -57,11 +57,11 @@
|
|||||||
|
|
||||||
Процедура ОбработатьПараметрМассив(Значение)
|
Процедура ОбработатьПараметрМассив(Значение)
|
||||||
|
|
||||||
Значение = СтрЗаменить(Значение, "['", "");
|
Значение = СтрЗаменить(Значение, "['" , "");
|
||||||
Значение = СтрЗаменить(Значение, "']", "");
|
Значение = СтрЗаменить(Значение, "']" , "");
|
||||||
Значение = СтрЗаменить(Значение, "', '", "','");
|
Значение = СтрЗаменить(Значение, "', '" , "','");
|
||||||
Значение = СтрЗаменить(Значение, "' , '", "','");
|
Значение = СтрЗаменить(Значение, "' , '", "','");
|
||||||
Значение = СтрЗаменить(Значение, "' ,'", "','");
|
Значение = СтрЗаменить(Значение, "' ,'" , "','");
|
||||||
|
|
||||||
Значение = СтрРазделить(Значение, "','", Ложь);
|
Значение = СтрРазделить(Значение, "','", Ложь);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user