#Использовать "../../tools" #Область СлужебныйПрограммныйИнтерфейс Процедура ВывестиНачальнуюСтраницу(Знач СоответствиеКомандМодулей, Знач Версия) Экспорт СписокКоманд = ""; Для Каждого Команда Из СоответствиеКомандМодулей Цикл СписокКоманд = СписокКоманд + Команда.Ключ + ", "; КонецЦикла; СписокКоманд = Лев(СписокКоманд, СтрДлина(СписокКоманд) - 2); Сообщить("-----------------------------------------------------", СтатусСообщения.Информация); Сообщить(" | | _______ _____________ ___ _______ | __ __ ___/__ _/_ / | / /___ __/ | _ / / / __ / __ / __ / | / /_/ / __/ / _ /| / _ / | \____/ /___/ /_/ |_/ /_/ | | | Добро пожаловать в OInt v " + Версия + "! | | Структура команд: | OInt БИБЛИОТЕКА МЕТОД [Параметры] | | Вызов библиотеки без метода или метода без параметров возвращает справку | Список доступных библиотек: " + СписокКоманд, СтатусСообщения.Внимание); Сообщить(" | Стандартные опции: | --help - выводит справку по текущей команде или методу. Аналогично вызову команды без опций | --debug - флаг, отвечающий за предоставление более подробной информации при работе программы | --out - путь к файлу сохранения результата (двоичных данных в частности) |", СтатусСообщения.Информация); Сообщить("Полную документацию можно найти по адресу: https://openintegrations.dev" + Символы.ПС , СтатусСообщения.Внимание); ЗавершитьРаботу(0); КонецПроцедуры Процедура ВывестиСправкуПоМетодам(Знач Команда, Знач ТаблицаПараметров) Экспорт Сообщить(Символы.ПС + " ## Команда - " + Команда, СтатусСообщения.Информация); ТаблицаПараметров.Свернуть("Метод"); МассивМетодов = ТаблицаПараметров.ВыгрузитьКолонку("Метод"); Сообщить(" ## Доступные методы: " + Символы.ПС, СтатусСообщения.Информация); Для каждого Метод Из МассивМетодов Цикл Сообщить(" - " + Метод, СтатусСообщения.Внимание); КонецЦикла; Сообщить(Символы.ПС); ЗавершитьРаботу(0); КонецПроцедуры Процедура ВывестиСправкуПоПараметрам(Знач ТаблицаПараметров, Знач Команда) Экспорт Если ТаблицаПараметров.Количество() = 0 Тогда ВывестиСообщениеИсключения("Метод"); КонецЕсли; ИмяМетода = ТаблицаПараметров[0].Метод; ТекстСправки = " | ## Метод " + ИмяМетода + " | ## " + ТаблицаПараметров[0].ОписаниеМетода; Сообщить(ТекстСправки, СтатусСообщения.Информация); ТекстСправки = ""; ОбработатьТабуляциюСправки(ТаблицаПараметров); Для Каждого ПараметрМетода Из ТаблицаПараметров Цикл ТекстСправки = ТекстСправки + Символы.ПС + " " + ПараметрМетода["Параметр"] + " - " + ПараметрМетода["Описание"]; КонецЦикла; Сообщить(ТекстСправки + Символы.ПС, СтатусСообщения.Внимание); ЗавершитьРаботу(0); КонецПроцедуры Процедура ВывестиСообщениеИсключения(Знач Причина) Экспорт Если Причина = "Команда" Тогда Текст = "Некорректная команда! Проверьте правильность ввода"; Код = 1; ИначеЕсли Причина = "Метод" Тогда Текст = "Некорректный метод! Проверьте правильность ввода"; Код = 2; Иначе Текст = "Непредвиденная ошибка!: " + Причина; Код = 99 КонецЕсли; Текст = Символы.ПС + Текст + Символы.ПС; Сообщить(Текст, СтатусСообщения.ОченьВажное); ЗавершитьРаботу(Код); КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции Процедура ОбработатьТабуляциюСправки(ТаблицаПараметров) МаксимальнаяДлина = 15; Для Каждого ПараметрМетода Из ТаблицаПараметров Цикл Пока Не СтрДлина(ПараметрМетода["Параметр"]) = МаксимальнаяДлина Цикл ПараметрМетода["Параметр"] = ПараметрМетода["Параметр"] + " "; КонецЦикла; ТекущееОписание = ПараметрМетода["Описание"]; МассивОписания = СтрРазделить(ТекущееОписание, Символы.ПС); НачальнаяТабуляция = 4; Если МассивОписания.Количество() = 1 Тогда Продолжить; Иначе Для Н = 1 По МассивОписания.ВГраница() Цикл ТекущийЭлемент = МассивОписания[Н]; НеобходимаяДлина = СтрДлина(ТекущийЭлемент) + СтрДлина(ПараметрМетода["Параметр"] + " - ") + НачальнаяТабуляция; Пока СтрДлина(МассивОписания[Н]) < НеобходимаяДлина Цикл МассивОписания[Н] = " " + МассивОписания[Н]; КонецЦикла; КонецЦикла; ПараметрМетода["Описание"] = СтрСоединить(МассивОписания, Символы.ПС); КонецЕсли; КонецЦикла; КонецПроцедуры #КонецОбласти