1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-27 02:43:54 +02:00

Update МетодыCLI.os

This commit is contained in:
Anton Titovets 2024-10-27 17:10:11 +03:00
parent 4bd4e67c8e
commit 152452f172

View File

@ -13,42 +13,42 @@
Процедура СформироватьCLI(Знач Корень, Знач Языки, Знач КаталогДополнений) Экспорт Процедура СформироватьCLI(Знач Корень, Знач Языки, Знач КаталогДополнений) Экспорт
Для Каждого Язык Из Языки Цикл Для Каждого Язык Из Языки Цикл
Если Не Язык = "ru" Тогда Если Не Язык = "ru" Тогда
СоздатьОснову(Язык, Корень); СоздатьОснову(Язык, Корень);
КонецЕсли; КонецЕсли;
МодульСоставаОПИ = Новый ТекстовыйДокумент(); МодульСоставаОПИ = Новый ТекстовыйДокумент();
ФайлСоставаОПИ = Корень + Язык + "/cli/data/Classes/СоставБиблиотеки.os"; ФайлСоставаОПИ = Корень + Язык + "/cli/data/Classes/СоставБиблиотеки.os";
КаталогСписковСотава = Корень + Язык + "/cli/data/Classes/internal/Classes/"; КаталогСписковСотава = Корень + Язык + "/cli/data/Classes/internal/Classes/";
КаталогДополненийОпций = КаталогДополнений; КаталогДополненийОпций = КаталогДополнений;
ЗаписатьНачалоФайла(); ЗаписатьНачалоФайла();
ЗаписатьФункциюОпределенияВерсии(); ЗаписатьФункциюОпределенияВерсии();
ЗаписатьФункциюОпределенияКоманд(Язык); ЗаписатьФункциюОпределенияКоманд(Язык);
ЗаписатьВспомогательныеФункции(); ЗаписатьВспомогательныеФункции();
МодульСоставаОПИ.Записать(ФайлСоставаОПИ); МодульСоставаОПИ.Записать(ФайлСоставаОПИ);
ЗаполнитьТаблицыСостава(); ЗаполнитьТаблицыСостава();
ВыолнитьДополнительныйПеревод(Язык); ВыолнитьДополнительныйПеревод(Язык);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура СоздатьОснову(ТекущийЯзык, Корень) Процедура СоздатьОснову(ТекущийЯзык, Корень)
ПутьCLI = Корень + ТекущийЯзык + "/cli"; ПутьCLI = Корень + ТекущийЯзык + "/cli";
ПапкаCLI = Новый Файл(ПутьCLI); ПапкаCLI = Новый Файл(ПутьCLI);
Если ПапкаCLI.Существует() Тогда Если ПапкаCLI.Существует() Тогда
УдалитьФайлы(ПапкаCLI.ПолноеИмя); УдалитьФайлы(ПапкаCLI.ПолноеИмя);
КонецЕсли; КонецЕсли;
ПутьОригинала = "./src/ru/cli"; ПутьОригинала = "./src/ru/cli";
ПапкаОригинала = Новый Файл(ПутьОригинала); ПапкаОригинала = Новый Файл(ПутьОригинала);
СкопироватьФайлы(ПапкаОригинала.ПолноеИмя, ПапкаCLI.ПолноеИмя); СкопироватьФайлы(ПапкаОригинала.ПолноеИмя, ПапкаCLI.ПолноеИмя);
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьНачалоФайла() Процедура ЗаписатьНачалоФайла()
@ -59,38 +59,38 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияВерсии() Процедура ЗаписатьФункциюОпределенияВерсии()
Версия = ПолучитьВерсиюПакета(); Версия = ПолучитьВерсиюПакета();
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьВерсию() Экспорт"); МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьВерсию() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку(" Возврат """ + Версия + """;"); МодульСоставаОПИ.ДобавитьСтроку(" Возврат """ + Версия + """;");
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции"); МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку(""); МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияКоманд(ТекущийЯзык) Процедура ЗаписатьФункциюОпределенияКоманд(ТекущийЯзык)
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт"); МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей = Новый Соответствие();"); МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей = Новый Соответствие();");
ОпределитьСоответствиеМодулейКоманд(ТекущийЯзык); ОпределитьСоответствиеМодулейКоманд(ТекущийЯзык);
Для Каждого КомандаМодуля Из СоответствиеМодулейКоманд Цикл Для Каждого КомандаМодуля Из СоответствиеМодулейКоманд Цикл
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей.Вставить(""" МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей.Вставить("""
+ КомандаМодуля.Значение + КомандаМодуля.Значение
+ """, """ + """, """
+ КомандаМодуля.Ключ + КомандаМодуля.Ключ
+ """);"); + """);");
КонецЦикла; КонецЦикла;
МодульСоставаОПИ.ДобавитьСтроку("Возврат СоответствиеКомандМодулей;"); МодульСоставаОПИ.ДобавитьСтроку("Возврат СоответствиеКомандМодулей;");
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции"); МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку(""); МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьВспомогательныеФункции() Процедура ЗаписатьВспомогательныеФункции()
МодульСоставаОПИ.ДобавитьСтроку(" МодульСоставаОПИ.ДобавитьСтроку("
| |
|Функция ПолучитьСостав(Знач Команда) Экспорт |Функция ПолучитьСостав(Знач Команда) Экспорт
@ -126,51 +126,51 @@
Процедура ЗаполнитьТаблицыСостава() Процедура ЗаполнитьТаблицыСостава()
Для Каждого Модуль Из ОбщийМассивМодулей Цикл Для Каждого Модуль Из ОбщийМассивМодулей Цикл
ТекущийМодуль = Модуль.ИмяБезРасширения; ТекущийМодуль = Модуль.ИмяБезРасширения;
Если Не СоответствиеМодулейКоманд[ТекущийМодуль] = Неопределено Тогда Если Не СоответствиеМодулейКоманд[ТекущийМодуль] = Неопределено Тогда
РазобратьМодуль(Модуль); РазобратьМодуль(Модуль);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура РазобратьМодуль(Модуль) Процедура РазобратьМодуль(Модуль)
ЗаписатьНачалоСоставаБиблиотеки(); ЗаписатьНачалоСоставаБиблиотеки();
Парсер = Новый ПарсерВстроенногоЯзыка; Парсер = Новый ПарсерВстроенногоЯзыка;
ДокументМодуля = Новый ТекстовыйДокумент; ДокументМодуля = Новый ТекстовыйДокумент;
ДокументМодуля.Прочитать(Модуль.ПолноеИмя); ДокументМодуля.Прочитать(Модуль.ПолноеИмя);
ТекстМодуля = ДокументМодуля.ПолучитьТекст(); ТекстМодуля = ДокументМодуля.ПолучитьТекст();
СтруктураМодуля = Парсер.Разобрать(ТекстМодуля); СтруктураМодуля = Парсер.Разобрать(ТекстМодуля);
ТекущаяОбласть = "Основные методы"; ТекущаяОбласть = "Основные методы";
Для Каждого Метод Из СтруктураМодуля.Объявления Цикл Для Каждого Метод Из СтруктураМодуля.Объявления Цикл
Если Метод.Тип = "ИнструкцияПрепроцессораОбласть" Тогда Если Метод.Тип = "ИнструкцияПрепроцессораОбласть" Тогда
ТекущаяОбласть = Синонимайзер(Метод.Имя); ТекущаяОбласть = Синонимайзер(Метод.Имя);
КонецЕсли; КонецЕсли;
Если Метод.Тип = "ОбъявлениеМетода" И Метод.Сигнатура.Экспорт = Истина Тогда Если Метод.Тип = "ОбъявлениеМетода" И Метод.Сигнатура.Экспорт = Истина Тогда
ТаблицаОписанийПараметров.Очистить(); ТаблицаОписанийПараметров.Очистить();
РазобратьКомментарийМетода(ДокументМодуля, Метод, Модуль, ТекущаяОбласть); РазобратьКомментарийМетода(ДокументМодуля, Метод, Модуль, ТекущаяОбласть);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Команда = СоответствиеМодулейКоманд[Модуль.ИмяБезРасширения]; Команда = СоответствиеМодулейКоманд[Модуль.ИмяБезРасширения];
ЗаписатьОкончаниеСоставаБиблиотеки(Команда); ЗаписатьОкончаниеСоставаБиблиотеки(Команда);
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьНачалоСоставаБиблиотеки() Процедура ЗаписатьНачалоСоставаБиблиотеки()
ТекущийФайлСостава = Новый ТекстовыйДокумент(); ТекущийФайлСостава = Новый ТекстовыйДокумент();
ТекущийФайлСостава.ДобавитьСтроку("Функция ПолучитьСостав() Экспорт ТекущийФайлСостава.ДобавитьСтроку("Функция ПолучитьСостав() Экспорт
| |
| ТаблицаСостава = Новый ТаблицаЗначений(); | ТаблицаСостава = Новый ТаблицаЗначений();
@ -183,174 +183,174 @@
| ТаблицаСостава.Колонки.Добавить(""ОписаниеМетода""); | ТаблицаСостава.Колонки.Добавить(""ОписаниеМетода"");
| ТаблицаСостава.Колонки.Добавить(""Область""); | ТаблицаСостава.Колонки.Добавить(""Область"");
|"); |");
ТаблицаОписанийПараметров = Новый ТаблицаЗначений; ТаблицаОписанийПараметров = Новый ТаблицаЗначений;
ТаблицаОписанийПараметров.Колонки.Добавить("Имя"); ТаблицаОписанийПараметров.Колонки.Добавить("Имя");
ТаблицаОписанийПараметров.Колонки.Добавить("Типы"); ТаблицаОписанийПараметров.Колонки.Добавить("Типы");
ТаблицаОписанийПараметров.Колонки.Добавить("Описание"); ТаблицаОписанийПараметров.Колонки.Добавить("Описание");
ТаблицаОписанийПараметров.Колонки.Добавить("ЗначениеПоУмолчанию"); ТаблицаОписанийПараметров.Колонки.Добавить("ЗначениеПоУмолчанию");
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьОкончаниеСоставаБиблиотеки(Библиотека) Процедура ЗаписатьОкончаниеСоставаБиблиотеки(Библиотека)
ТекущийФайлСостава.ДобавитьСтроку(" Возврат ТаблицаСостава;"); ТекущийФайлСостава.ДобавитьСтроку(" Возврат ТаблицаСостава;");
ТекущийФайлСостава.ДобавитьСтроку("КонецФункции"); ТекущийФайлСостава.ДобавитьСтроку("КонецФункции");
ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС); ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС);
ТекущийФайлСостава.Записать(КаталогСписковСотава + Библиотека + ".os"); ТекущийФайлСостава.Записать(КаталогСписковСотава + Библиотека + ".os");
КонецПроцедуры КонецПроцедуры
Процедура РазобратьКомментарийМетода(ТекстовыйДокумент, Метод, Модуль, Область) Процедура РазобратьКомментарийМетода(ТекстовыйДокумент, Метод, Модуль, Область)
НомерСтроки = Метод.Начало.НомерСтроки; НомерСтроки = Метод.Начало.НомерСтроки;
ИмяМетода = Метод.Сигнатура.Имя; ИмяМетода = Метод.Сигнатура.Имя;
МассивКомментария = ПарсингКомментария(ТекстовыйДокумент, НомерСтроки); МассивКомментария = ПарсингКомментария(ТекстовыйДокумент, НомерСтроки);
Если МассивКомментария.Количество() = 0 Тогда Если МассивКомментария.Количество() = 0 Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
МассивПараметров = Новый Массив; МассивПараметров = Новый Массив;
ОписаниеМетода = ""; ОписаниеМетода = "";
СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, ОписаниеМетода); СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, ОписаниеМетода);
СформироватьТаблицуОписанийПараметров(МассивПараметров, Метод, Модуль); СформироватьТаблицуОписанийПараметров(МассивПараметров, Метод, Модуль);
ДопОписание = ""; ДопОписание = "";
ОпределитьДопОписание(ДопОписание, Модуль); ОпределитьДопОписание(ДопОписание, Модуль);
ОписаниеМетода = СокрЛП(ОписаниеМетода) + ДопОписание; ОписаниеМетода = СокрЛП(ОписаниеМетода) + ДопОписание;
Для Каждого СтрокаПараметра Из ТаблицаОписанийПараметров Цикл Для Каждого СтрокаПараметра Из ТаблицаОписанийПараметров Цикл
ЗаписатьСозданиеПараметраСостава(СтрокаПараметра, ИмяМетода, Область, СокрЛП(ОписаниеМетода)); ЗаписатьСозданиеПараметраСостава(СтрокаПараметра, ИмяМетода, Область, СокрЛП(ОписаниеМетода));
ОписаниеМетода = ""; ОписаниеМетода = "";
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ПарсингКомментария(Знач ТекстовыйДокумент, Знач НомерСтроки) Функция ПарсингКомментария(Знач ТекстовыйДокумент, Знач НомерСтроки)
ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки - 1); ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки - 1);
ТекстКомментария = ТекущаяСтрока; ТекстКомментария = ТекущаяСтрока;
Счетчик = 1; Счетчик = 1;
Пока СтрНайти(ТекущаяСтрока, "//") > 0 Цикл Пока СтрНайти(ТекущаяСтрока, "//") > 0 Цикл
Счетчик = Счетчик + 1; Счетчик = Счетчик + 1;
ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки - Счетчик); ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки - Счетчик);
ТекстКомментария = ТекущаяСтрока + Символы.ПС + ТекстКомментария; ТекстКомментария = ТекущаяСтрока + Символы.ПС + ТекстКомментария;
КонецЦикла; КонецЦикла;
Если СтрНайти(ТекстКомментария, "!NOCLI") > 0 Тогда Если СтрНайти(ТекстКомментария, "!NOCLI") > 0 Тогда
Возврат Новый Массив; Возврат Новый Массив;
КонецЕсли; КонецЕсли;
МассивКомментария = СтрРазделить(ТекстКомментария, "//", Ложь); МассивКомментария = СтрРазделить(ТекстКомментария, "//", Ложь);
Если МассивКомментария.Количество() = 0 Тогда Если МассивКомментария.Количество() = 0 Тогда
Сообщить(ТекстКомментария); Сообщить(ТекстКомментария);
Возврат Новый Массив; Возврат Новый Массив;
Иначе Иначе
МассивКомментария.Удалить(0); МассивКомментария.Удалить(0);
КонецЕсли; КонецЕсли;
Возврат МассивКомментария; Возврат МассивКомментария;
КонецФункции КонецФункции
Процедура СформироватьСтруктуруМетода(Знач МассивКомментария, МассивПараметров, ОписаниеМетода) Процедура СформироватьСтруктуруМетода(Знач МассивКомментария, МассивПараметров, ОписаниеМетода)
ЗаписыватьПараметры = Ложь; ЗаписыватьПараметры = Ложь;
ЗаписыватьОписание = Истина; ЗаписыватьОписание = Истина;
Счетчик = 0; Счетчик = 0;
Для Каждого СтрокаКомментария Из МассивКомментария Цикл Для Каждого СтрокаКомментария Из МассивКомментария Цикл
Счетчик = Счетчик + 1; Счетчик = Счетчик + 1;
Если Не ЗначениеЗаполнено(СокрЛП(СтрокаКомментария)) Тогда Если Не ЗначениеЗаполнено(СокрЛП(СтрокаКомментария)) Тогда
ЗаписыватьОписание = Ложь; ЗаписыватьОписание = Ложь;
КонецЕсли; КонецЕсли;
Если ЗаписыватьОписание = Истина И Счетчик > 1 Тогда Если ЗаписыватьОписание = Истина И Счетчик > 1 Тогда
ОписаниеМетода = ?(ЗначениеЗаполнено(ОписаниеМетода), ОписаниеМетода + " | ", ОписаниеМетода) ОписаниеМетода = ?(ЗначениеЗаполнено(ОписаниеМетода), ОписаниеМетода + " | ", ОписаниеМетода)
+ СтрокаКомментария; + СтрокаКомментария;
КонецЕсли; КонецЕсли;
Если СтрНайти(СтрокаКомментария, "Параметры:") > 0 Или СтрНайти(СтрокаКомментария, "Parameters:") > 0 Тогда Если СтрНайти(СтрокаКомментария, "Параметры:") > 0 Или СтрНайти(СтрокаКомментария, "Parameters:") > 0 Тогда
ЗаписыватьПараметры = Истина; ЗаписыватьПараметры = Истина;
ЗаписыватьОписание = Ложь; ЗаписыватьОписание = Ложь;
ИначеЕсли СтрНайти(СтрокаКомментария, "Возвращаемое значение:") > 0 Или СтрНайти(СтрокаКомментария, "Returns:") > 0 Тогда ИначеЕсли СтрНайти(СтрокаКомментария, "Возвращаемое значение:") > 0 Или СтрНайти(СтрокаКомментария, "Returns:") > 0 Тогда
Прервать; Прервать;
ИначеЕсли ЗаписыватьПараметры = Истина ИначеЕсли ЗаписыватьПараметры = Истина
И ЗначениеЗаполнено(СокрЛП(СтрокаКомментария)) И ЗначениеЗаполнено(СокрЛП(СтрокаКомментария))
И Не СтрНачинаетсяС(СокрЛП(СтрокаКомментария), "*") = 0 Тогда И Не СтрНачинаетсяС(СокрЛП(СтрокаКомментария), "*") = 0 Тогда
МассивПараметров.Добавить(СтрокаКомментария); МассивПараметров.Добавить(СтрокаКомментария);
Иначе Иначе
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура СформироватьТаблицуОписанийПараметров(Знач МассивПараметров, Знач Метод, Знач Модуль = "") Процедура СформироватьТаблицуОписанийПараметров(Знач МассивПараметров, Знач Метод, Знач Модуль = "")
Разделитель = "-"; Разделитель = "-";
Для Каждого ПараметрМетода Из МассивПараметров Цикл Для Каждого ПараметрМетода Из МассивПараметров Цикл
МассивЭлементовПараметра = СтрРазделить(ПараметрМетода, Разделитель, Ложь); МассивЭлементовПараметра = СтрРазделить(ПараметрМетода, Разделитель, Ложь);
КоличествоЭлементов = МассивЭлементовПараметра.Количество(); КоличествоЭлементов = МассивЭлементовПараметра.Количество();
Для Н = 0 По МассивЭлементовПараметра.ВГраница() Цикл Для Н = 0 По МассивЭлементовПараметра.ВГраница() Цикл
МассивЭлементовПараметра[Н] = СокрЛП(МассивЭлементовПараметра[Н]); МассивЭлементовПараметра[Н] = СокрЛП(МассивЭлементовПараметра[Н]);
КонецЦикла; КонецЦикла;
Если КоличествоЭлементов < 4 Тогда Если КоличествоЭлементов < 4 Тогда
Сообщить("Недостаточный набор данных в док. комментарии: " + Модуль.ИмяБезРасширения + " - " + Метод.Сигнатура.Имя); Сообщить("Недостаточный набор данных в док. комментарии: " + Модуль.ИмяБезРасширения + " - " + Метод.Сигнатура.Имя);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Имя1С = МассивЭлементовПараметра[0]; Имя1С = МассивЭлементовПараметра[0];
Имя = "--" + МассивЭлементовПараметра[3]; Имя = "--" + МассивЭлементовПараметра[3];
Типы = МассивЭлементовПараметра[1]; Типы = МассивЭлементовПараметра[1];
Описание = ?(КоличествоЭлементов >= 5, МассивЭлементовПараметра[4], МассивЭлементовПараметра[2]); Описание = ?(КоличествоЭлементов >= 5, МассивЭлементовПараметра[4], МассивЭлементовПараметра[2]);
Если КоличествоЭлементов > 5 Или СтрНайти(Имя, " ") > 0 Тогда Если КоличествоЭлементов > 5 Или СтрНайти(Имя, " ") > 0 Тогда
ВызватьИсключение("Некоррентный документирующий комментарий в методе: " + Модуль.ИмяБезРасширения + " - " + Метод.Сигнатура.Имя); ВызватьИсключение("Некоррентный документирующий комментарий в методе: " + Модуль.ИмяБезРасширения + " - " + Метод.Сигнатура.Имя);
КонецЕсли; КонецЕсли;
НоваяСтрокаТаблицы = ТаблицаОписанийПараметров.Добавить(); НоваяСтрокаТаблицы = ТаблицаОписанийПараметров.Добавить();
НоваяСтрокаТаблицы.Имя = Имя; НоваяСтрокаТаблицы.Имя = Имя;
НоваяСтрокаТаблицы.Типы = Типы; НоваяСтрокаТаблицы.Типы = Типы;
НоваяСтрокаТаблицы.Описание = Описание; НоваяСтрокаТаблицы.Описание = Описание;
НоваяСтрокаТаблицы.ЗначениеПоУмолчанию = ПолучитьЗначениеПараметраПоУмолчанию(Имя1С, Метод); НоваяСтрокаТаблицы.ЗначениеПоУмолчанию = ПолучитьЗначениеПараметраПоУмолчанию(Имя1С, Метод);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ПолучитьЗначениеПараметраПоУмолчанию(Знач Имя, Знач Метод) Функция ПолучитьЗначениеПараметраПоУмолчанию(Знач Имя, Знач Метод)
Значение = ""; Значение = "";
Для Каждого ПараметрМетода Из Метод.Сигнатура.Параметры Цикл Для Каждого ПараметрМетода Из Метод.Сигнатура.Параметры Цикл
Если ПараметрМетода.Имя = Имя Тогда Если ПараметрМетода.Имя = Имя Тогда
ЗначениеПараметра = ПараметрМетода.Значение; ЗначениеПараметра = ПараметрМетода.Значение;
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
Попытка Попытка
@ -360,129 +360,129 @@
КонецПопытки; КонецПопытки;
Значение = ?(ЗначениеЗаполнено(Значение), Значение, "Пустое значение"); Значение = ?(ЗначениеЗаполнено(Значение), Значение, "Пустое значение");
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат Значение; Возврат Значение;
КонецФункции КонецФункции
Процедура ОпределитьДопОписание(ДопОписание, Модуль) Процедура ОпределитьДопОписание(ДопОписание, Модуль)
ЕстьМассив = Ложь; ЕстьМассив = Ложь;
ЕстьДата = Ложь; ЕстьДата = Ложь;
ТекстДополнения = ""; ТекстДополнения = "";
ИмяМодуля = Модуль.ИмяБезРасширения; ИмяМодуля = Модуль.ИмяБезРасширения;
ДЛя Каждого СтрокаПараметра Из ТаблицаОписанийПараметров Цикл ДЛя Каждого СтрокаПараметра Из ТаблицаОписанийПараметров Цикл
Типы = СтрокаПараметра["Типы"]; Типы = СтрокаПараметра["Типы"];
Имя = СтрокаПараметра["Имя"]; Имя = СтрокаПараметра["Имя"];
Если СтрНайти(Типы, "Массив") > 0 Тогда Если СтрНайти(Типы, "Массив") > 0 Тогда
ЕстьМассив = Истина; ЕстьМассив = Истина;
КонецЕсли; КонецЕсли;
Если СтрНайти(Типы, "Дата") > 0 Тогда Если СтрНайти(Типы, "Дата") > 0 Тогда
ЕстьДата = Истина; ЕстьДата = Истина;
КонецЕсли; КонецЕсли;
ОпределитьДопОписаниеПоПараметру(ТекстДополнения, ИмяМодуля, Имя) ОпределитьДопОписаниеПоПараметру(ТекстДополнения, ИмяМодуля, Имя)
КонецЦикла; КонецЦикла;
Если ЕстьМассив Тогда Если ЕстьМассив Тогда
ТекстДополнения = ТекстДополнения =
" "
| |
| Пример указания параметра типа массив: | Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']"" | --param ""['Val1','Val2','Val3']""
|" + ТекстДополнения; |" + ТекстДополнения;
КонецЕсли; КонецЕсли;
Если ЕстьДата Тогда Если ЕстьДата Тогда
ТекстДополнения = ТекстДополнения =
" "
| |
| Дата указывается в формате ISO 8601: | Дата указывается в формате ISO 8601:
| ""2024-04-07"" | ""2024-04-07""
| ""2024-04-07T13:34:42+00:00"" | ""2024-04-07T13:34:42+00:00""
| ""2024-04-07T13:34:42Z"" | ""2024-04-07T13:34:42Z""
|" + ТекстДополнения; |" + ТекстДополнения;
КонецЕсли; КонецЕсли;
ТекстДополнения = СтрЗаменить(ТекстДополнения, Символы.ПС, Символы.ПС + " |"); ТекстДополнения = СтрЗаменить(ТекстДополнения, Символы.ПС, Символы.ПС + " |");
ДопОписание = ДопОписание + СтрЗаменить(ТекстДополнения, """", """"""); ДопОписание = ДопОписание + СтрЗаменить(ТекстДополнения, """", """""");
КонецПроцедуры КонецПроцедуры
Процедура ОпределитьДопОписаниеПоПараметру(ТекстДополнения, ИмяМодуля, ИмяПараметра) Процедура ОпределитьДопОписаниеПоПараметру(ТекстДополнения, ИмяМодуля, ИмяПараметра)
ИмяФайлаДополнения = КаталогДополненийОпций ИмяФайлаДополнения = КаталогДополненийОпций
+ СтрЗаменить(ИмяМодуля, "OPI_", "") + СтрЗаменить(ИмяМодуля, "OPI_", "")
+ "/" + "/"
+ СтрЗаменить(ИмяПараметра, "--", "") + СтрЗаменить(ИмяПараметра, "--", "")
+ ".txt"; + ".txt";
ОбъектФайлаДополнения = Новый Файл(ИмяФайлаДополнения); ОбъектФайлаДополнения = Новый Файл(ИмяФайлаДополнения);
Если Не ОбъектФайлаДополнения.Существует() Тогда Если Не ОбъектФайлаДополнения.Существует() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент(); ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.Прочитать(ИмяФайлаДополнения, "UTF-8"); ТекстовыйДокумент.Прочитать(ИмяФайлаДополнения, "UTF-8");
ТекстДополненияФайла = СокрЛП(ТекстовыйДокумент.ПолучитьТекст()); ТекстДополненияФайла = СокрЛП(ТекстовыйДокумент.ПолучитьТекст());
Если Не ЗначениеЗаполнено(ТекстДополненияФайла) Тогда Если Не ЗначениеЗаполнено(ТекстДополненияФайла) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ЧислоСтрок = СтрЧислоСтрок(ТекстДополненияФайла); ЧислоСтрок = СтрЧислоСтрок(ТекстДополненияФайла);
ВставленоПримечание = Ложь; ВставленоПримечание = Ложь;
ТекстДополнения = ТекстДополнения + Символы.ПС; ТекстДополнения = ТекстДополнения + Символы.ПС;
Для Н = 1 По ЧислоСтрок Цикл Для Н = 1 По ЧислоСтрок Цикл
ТекущаяСтрока = СтрПолучитьСтроку(ТекстДополненияФайла, Н); ТекущаяСтрока = СтрПолучитьСтроку(ТекстДополненияФайла, Н);
Если СтрНачинаетсяС(СокрЛ(ТекущаяСтрока), "{") Если СтрНачинаетсяС(СокрЛ(ТекущаяСтрока), "{")
И Не ВставленоПримечание Тогда И Не ВставленоПримечание Тогда
ВставленоПримечание = Истина; ВставленоПримечание = Истина;
ТекстДополнения = ТекстДополнения ТекстДополнения = ТекстДополнения
+ " Структура заполнения опции " + " Структура заполнения опции "
+ ИмяПараметра + ИмяПараметра
+ ":" + ":"
+ Символы.ПС;
КонецЕсли;
ТекстДополнения = ТекстДополнения
+ " "
+ ТекущаяСтрока
+ Символы.ПС; + Символы.ПС;
КонецЕсли;
ТекстДополнения = ТекстДополнения
+ " "
+ ТекущаяСтрока
+ Символы.ПС;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьСозданиеПараметраСостава(СтрокаПараметра, ИмяМетода, Область, ОписаниеМетода = "") Процедура ЗаписатьСозданиеПараметраСостава(СтрокаПараметра, ИмяМетода, Область, ОписаниеМетода = "")
Имя = СтрокаПараметра["Имя"]; Имя = СтрокаПараметра["Имя"];
Описание = СтрокаПараметра["Описание"]; Описание = СтрокаПараметра["Описание"];
Значение = СтрокаПараметра["ЗначениеПоУмолчанию"]; Значение = СтрокаПараметра["ЗначениеПоУмолчанию"];
Библиотека = СоответствиеМодулейКоманд.Получить(ТекущийМодуль); Библиотека = СоответствиеМодулейКоманд.Получить(ТекущийМодуль);
Если ЗначениеЗаполнено(Значение) Тогда Если ЗначениеЗаполнено(Значение) Тогда
Описание = Описание + " (необяз. по ум. - " + Значение + ")"; Описание = Описание + " (необяз. по ум. - " + Значение + ")";
КонецЕсли; КонецЕсли;
ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС); ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС);
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока = ТаблицаСостава.Добавить();"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока = ТаблицаСостава.Добавить();");
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Библиотека = """ + Библиотека + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Библиотека = """ + Библиотека + """;");
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Модуль = """ + ТекущийМодуль + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Модуль = """ + ТекущийМодуль + """;");
@ -491,76 +491,76 @@
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Параметр = """ + Имя + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Параметр = """ + Имя + """;");
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Описание = """ + Описание + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Описание = """ + Описание + """;");
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Область = """ + Область + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.Область = """ + Область + """;");
Если ЗначениеЗаполнено(ОписаниеМетода) Тогда Если ЗначениеЗаполнено(ОписаниеМетода) Тогда
ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.ОписаниеМетода = """ + ОписаниеМетода + """;"); ТекущийФайлСостава.ДобавитьСтроку(" НоваяСтрока.ОписаниеМетода = """ + ОписаниеМетода + """;");
КонецЕсли; КонецЕсли;
ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС); ТекущийФайлСостава.ДобавитьСтроку(Символы.ПС);
КонецПроцедуры КонецПроцедуры
Процедура ОпределитьСоответствиеМодулейКоманд(ТекущийЯзык) Процедура ОпределитьСоответствиеМодулейКоманд(ТекущийЯзык)
СоответствиеМодулейКоманд = Новый Соответствие(); СоответствиеМодулейКоманд = Новый Соответствие();
ОбщийМассивМодулей = Новый Массив; ОбщийМассивМодулей = Новый Массив;
ФайлыМодулей = НайтиФайлы("./src/" + ТекущийЯзык + "/", "*.os", Истина); ФайлыМодулей = НайтиФайлы("./src/" + ТекущийЯзык + "/", "*.os", Истина);
Для Каждого Модуль Из ФайлыМодулей Цикл Для Каждого Модуль Из ФайлыМодулей Цикл
КомандаCLI = ОпределитьКомандуCLI(Модуль.ПолноеИмя); КомандаCLI = ОпределитьКомандуCLI(Модуль.ПолноеИмя);
Если Не ЗначениеЗаполнено(КомандаCLI) Тогда Если Не ЗначениеЗаполнено(КомандаCLI) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
СоответствиеМодулейКоманд.Вставить(Модуль.ИмяБезРасширения, КомандаCLI); СоответствиеМодулейКоманд.Вставить(Модуль.ИмяБезРасширения, КомандаCLI);
ОбщийМассивМодулей.Добавить(Модуль); ОбщийМассивМодулей.Добавить(Модуль);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ОпределитьКомандуCLI(Знач ПутьКМодулю) Функция ОпределитьКомандуCLI(Знач ПутьКМодулю)
КомандаCLI = ""; КомандаCLI = "";
ДокументМодуля = Новый ТекстовыйДокумент(); ДокументМодуля = Новый ТекстовыйДокумент();
Признак = "// CLI: "; Признак = "// CLI: ";
ДокументМодуля.Прочитать(ПутьКМодулю); ДокументМодуля.Прочитать(ПутьКМодулю);
Для Н = 1 По ДокументМодуля.КоличествоСтрок() Цикл Для Н = 1 По ДокументМодуля.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ДокументМодуля.ПолучитьСтроку(Н)); ТекущаяСтрока = СокрЛП(ДокументМодуля.ПолучитьСтроку(Н));
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
Прервать; Прервать;
КонецЕсли; КонецЕсли;
Если СтрНачинаетсяС(ТекущаяСтрока, Признак) Тогда Если СтрНачинаетсяС(ТекущаяСтрока, Признак) Тогда
КомандаCLI = СтрЗаменить(ТекущаяСтрока, Признак, ""); КомандаCLI = СтрЗаменить(ТекущаяСтрока, Признак, "");
КомандаCLI = СокрЛП(КомандаCLI); КомандаCLI = СокрЛП(КомандаCLI);
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат КомандаCLI; Возврат КомандаCLI;
КонецФункции КонецФункции
Функция ПолучитьВерсиюПакета() Функция ПолучитьВерсиюПакета()
Версия = ""; Версия = "";
Packagedef = "./src/ru/OInt/packagedef"; Packagedef = "./src/ru/OInt/packagedef";
Признак = ".Версия("""; Признак = ".Версия(""";
ТекстФайла = Новый ТекстовыйДокумент(); ТекстФайла = Новый ТекстовыйДокумент();
ТекстФайла.Прочитать(Packagedef); ТекстФайла.Прочитать(Packagedef);
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н)); ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
Если СтрНайти(ТекущаяСтрока, Признак) Тогда Если СтрНайти(ТекущаяСтрока, Признак) Тогда
Версия = СтрЗаменить(ТекущаяСтрока, Признак, ""); Версия = СтрЗаменить(ТекущаяСтрока, Признак, "");
@ -568,9 +568,9 @@
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат Версия; Возврат Версия;
КонецФункции КонецФункции
Функция Синонимайзер(ИмяРеквизита) Функция Синонимайзер(ИмяРеквизита)
@ -596,137 +596,137 @@
Синоним = Синоним + Символ; Синоним = Синоним + Символ;
Конецесли; Конецесли;
КонецЦикла; КонецЦикла;
Синоним = ВРег(Лев(Синоним,1)) + нРег(Сред(Синоним,2)); Синоним = ВРег(Лев(Синоним,1)) + нРег(Сред(Синоним,2));
Возврат Синоним; Возврат Синоним;
КонецФункции КонецФункции
Процедура СкопироватьФайлы(Знач КаталогИсточник, Знач КаталогПриемник) Процедура СкопироватьФайлы(Знач КаталогИсточник, Знач КаталогПриемник)
СоздатьКаталог(КаталогПриемник); СоздатьКаталог(КаталогПриемник);
МассивФайлов = НайтиФайлы(КаталогИсточник, "*.*", Истина); МассивФайлов = НайтиФайлы(КаталогИсточник, "*.*", Истина);
Для Каждого Файл Из МассивФайлов Цикл Для Каждого Файл Из МассивФайлов Цикл
ПолноеИмяИсточник = Файл.ПолноеИмя; ПолноеИмяИсточник = Файл.ПолноеИмя;
ПолноеИмяПриемник = КаталогПриемник + СтрЗаменить(Файл.ПолноеИмя, КаталогИсточник, ""); ПолноеИмяПриемник = КаталогПриемник + СтрЗаменить(Файл.ПолноеИмя, КаталогИсточник, "");
Если Файл.ЭтоКаталог() Тогда Если Файл.ЭтоКаталог() Тогда
СоздатьКаталог(ПолноеИмяПриемник); СоздатьКаталог(ПолноеИмяПриемник);
Иначе Иначе
КопироватьФайл(ПолноеИмяИсточник, ПолноеИмяПриемник); КопироватьФайл(ПолноеИмяИсточник, ПолноеИмяПриемник);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура ВыолнитьДополнительныйПеревод(ТекущийЯзык) Процедура ВыолнитьДополнительныйПеревод(ТекущийЯзык)
ПутьСловаря = "./service/dictionaries/" + ТекущийЯзык + "_cli.json"; ПутьСловаря = "./service/dictionaries/" + ТекущийЯзык + "_cli.json";
ФайлСловаря = Новый Файл(ПутьСловаря); ФайлСловаря = Новый Файл(ПутьСловаря);
Если Не ФайлСловаря.Существует() Тогда Если Не ФайлСловаря.Существует() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON(); ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.ОткрытьФайл(ПутьСловаря); ЧтениеJSON.ОткрытьФайл(ПутьСловаря);
ДанныеПревода = ПрочитатьJSON(ЧтениеJSON, Истина); ДанныеПревода = ПрочитатьJSON(ЧтениеJSON, Истина);
ЧтениеJSON.Закрыть(); ЧтениеJSON.Закрыть();
ТЗСловаря = Новый ТаблицаЗначений(); ТЗСловаря = Новый ТаблицаЗначений();
ТЗСловаря.Колонки.Добавить("Ключ"); ТЗСловаря.Колонки.Добавить("Ключ");
ТЗСловаря.Колонки.Добавить("Значение"); ТЗСловаря.Колонки.Добавить("Значение");
ТЗСловаря.Колонки.Добавить("Длина"); ТЗСловаря.Колонки.Добавить("Длина");
Для Каждого Элемент Из ДанныеПревода Цикл Для Каждого Элемент Из ДанныеПревода Цикл
НоваяСтрока = ТЗСловаря.Добавить(); НоваяСтрока = ТЗСловаря.Добавить();
НоваяСтрока.Ключ = Элемент.Ключ; НоваяСтрока.Ключ = Элемент.Ключ;
НоваяСтрока.Значение = Элемент.Значение; НоваяСтрока.Значение = Элемент.Значение;
НоваяСтрока.Длина = СтрДлина(Элемент.Ключ); НоваяСтрока.Длина = СтрДлина(Элемент.Ключ);
КонецЦикла; КонецЦикла;
ТЗСловаря.Сортировать("Длина УБЫВ"); ТЗСловаря.Сортировать("Длина УБЫВ");
МассивМодулейДляПеревода = Новый Массив; МассивМодулейДляПеревода = Новый Массив;
МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/core/Classes/app.os"); МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/core/Classes/app.os");
МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/help/Modules/Справка.os"); МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/help/Modules/Справка.os");
Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл
ФайлМодуля = Новый Файл(ПереводимыйМодуль); ФайлМодуля = Новый Файл(ПереводимыйМодуль);
Если Не ФайлМодуля.Существует() Тогда Если Не ФайлМодуля.Существует() Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент(); ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.Прочитать(ФайлМодуля.ПолноеИмя, "UTF-8"); ТекстовыйДокумент.Прочитать(ФайлМодуля.ПолноеИмя, "UTF-8");
ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст(); ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст();
Для Каждого Элемент Из ТЗСловаря Цикл Для Каждого Элемент Из ТЗСловаря Цикл
ТекстМодуля = СтрЗаменить(ТекстМодуля, Элемент.Ключ, Элемент.Значение); ТекстМодуля = СтрЗаменить(ТекстМодуля, Элемент.Ключ, Элемент.Значение);
КонецЦикла; КонецЦикла;
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля); ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
ТекстовыйДокумент.Записать(ФайлМодуля.ПолноеИмя); ТекстовыйДокумент.Записать(ФайлМодуля.ПолноеИмя);
КонецЦикла; КонецЦикла;
ВыолнитьПереводОписаний(ТекущийЯзык); ВыолнитьПереводОписаний(ТекущийЯзык);
КонецПроцедуры КонецПроцедуры
Процедура ВыолнитьПереводОписаний(ТекущийЯзык) Процедура ВыолнитьПереводОписаний(ТекущийЯзык)
ПутьСловаря = "./service/dictionaries/" + ТекущийЯзык + ".json"; ПутьСловаря = "./service/dictionaries/" + ТекущийЯзык + ".json";
ФайлСловаря = Новый Файл(ПутьСловаря); ФайлСловаря = Новый Файл(ПутьСловаря);
Если Не ФайлСловаря.Существует() Тогда Если Не ФайлСловаря.Существует() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON(); ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.ОткрытьФайл(ПутьСловаря); ЧтениеJSON.ОткрытьФайл(ПутьСловаря);
ДанныеПревода = ПрочитатьJSON(ЧтениеJSON, Истина); ДанныеПревода = ПрочитатьJSON(ЧтениеJSON, Истина);
ЧтениеJSON.Закрыть(); ЧтениеJSON.Закрыть();
ТЗСловаря = Новый ТаблицаЗначений(); ТЗСловаря = Новый ТаблицаЗначений();
ТЗСловаря.Колонки.Добавить("Ключ"); ТЗСловаря.Колонки.Добавить("Ключ");
ТЗСловаря.Колонки.Добавить("Значение"); ТЗСловаря.Колонки.Добавить("Значение");
ТЗСловаря.Колонки.Добавить("Длина"); ТЗСловаря.Колонки.Добавить("Длина");
Для Каждого Элемент Из ДанныеПревода Цикл Для Каждого Элемент Из ДанныеПревода Цикл
НоваяСтрока = ТЗСловаря.Добавить(); НоваяСтрока = ТЗСловаря.Добавить();
НоваяСтрока.Ключ = Элемент.Ключ; НоваяСтрока.Ключ = Элемент.Ключ;
НоваяСтрока.Значение = Элемент.Значение; НоваяСтрока.Значение = Элемент.Значение;
НоваяСтрока.Длина = СтрДлина(Элемент.Ключ); НоваяСтрока.Длина = СтрДлина(Элемент.Ключ);
КонецЦикла; КонецЦикла;
ТЗСловаря.Сортировать("Длина УБЫВ"); ТЗСловаря.Сортировать("Длина УБЫВ");
МассивМодулейДляПеревода = НайтиФайлы("./src/" + ТекущийЯзык + "/cli/data/Classes/internal", "*", Истина); МассивМодулейДляПеревода = НайтиФайлы("./src/" + ТекущийЯзык + "/cli/data/Classes/internal", "*", Истина);
МассивМодулейДляПеревода.Добавить(Новый Файл("./src/" + ТекущийЯзык + "/cli/tools/Modules/Утилиты.os")); МассивМодулейДляПеревода.Добавить(Новый Файл("./src/" + ТекущийЯзык + "/cli/tools/Modules/Утилиты.os"));
Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл
ФайлМодуля = Новый Файл(ПереводимыйМодуль.ПолноеИмя); ФайлМодуля = Новый Файл(ПереводимыйМодуль.ПолноеИмя);
Если Не ФайлМодуля.Существует() Или ФайлМодуля.ЭтоКаталог() Тогда Если Не ФайлМодуля.Существует() Или ФайлМодуля.ЭтоКаталог() Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент(); ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.Прочитать(ФайлМодуля.ПолноеИмя, "UTF-8"); ТекстовыйДокумент.Прочитать(ФайлМодуля.ПолноеИмя, "UTF-8");
ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст(); ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст();
Для Каждого Элемент Из ТЗСловаря Цикл Для Каждого Элемент Из ТЗСловаря Цикл
ТекстМодуля = СтрЗаменить(ТекстМодуля, Элемент.Ключ, Элемент.Значение); ТекстМодуля = СтрЗаменить(ТекстМодуля, Элемент.Ключ, Элемент.Значение);
КонецЦикла; КонецЦикла;
СоответствиеСлужебныхКлючей = Новый Структура(); СоответствиеСлужебныхКлючей = Новый Структура();
СоответствиеСлужебныхКлючей.Вставить("MethodDescription" , "ОписаниеМетода"); СоответствиеСлужебныхКлючей.Вставить("MethodDescription" , "ОписаниеМетода");
СоответствиеСлужебныхКлючей.Вставить("SearchMethod" , "МетодПоиска"); СоответствиеСлужебныхКлючей.Вставить("SearchMethod" , "МетодПоиска");
@ -736,28 +736,38 @@
СоответствиеСлужебныхКлючей.Вставить("Region" , "Область"); СоответствиеСлужебныхКлючей.Вставить("Region" , "Область");
СоответствиеСлужебныхКлючей.Вставить("Module" , "Модуль"); СоответствиеСлужебныхКлючей.Вставить("Module" , "Модуль");
СоответствиеСлужебныхКлючей.Вставить("Method" , "Метод"); СоответствиеСлужебныхКлючей.Вставить("Method" , "Метод");
СоответствиеСлужебныхКлючей.Вставить("ConcatBinaryData" , "ConcatenateBinaryData"); //СоответствиеОшибок.Вставить("ConcatBinaryData" , "ConcatenateBinaryData");
СоответствиеСлужебныхКлючей.Вставить("GetTestList" , "ПолучитьСписокТестов"); СоответствиеСлужебныхКлючей.Вставить("ConcatBinaryData" , "СоединитьДвоичныеДанные");
СоответствиеСлужебныхКлючей.Вставить("Exists" , "Exist"); СоответствиеСлужебныхКлючей.Вставить("GetTestList" , "ПолучитьСписокТестов");
СоответствиеСлужебныхКлючей.Вставить("SetBodyFromBinaryData", "SetBodyFromBinary"); СоответствиеСлужебныхКлючей.Вставить("Exists" , "Exist");
СоответствиеСлужебныхКлючей.Вставить("GetBodyAsBinaryData" , "ПолучитьТелоКакДвоичныеДанные"); СоответствиеСлужебныхКлючей.Вставить("SetBodyFromBinaryData" , "SetBodyFromBinary");
СоответствиеСлужебныхКлючей.Вставить("FileCopy" , "CopyFile"); СоответствиеСлужебныхКлючей.Вставить("GetBodyAsBinaryData" , "ПолучитьТелоКакДвоичныеДанные");
СоответствиеСлужебныхКлючей.Вставить("FileCopy" , "CopyFile");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataFromString" , "ПолучитьДвоичныеДанныеИзСтроки");
СоответствиеСлужебныхКлючей.Вставить("GetHexStringFromBinaryData" , "ПолучитьHexСтрокуИзДвоичныхДанных");
СоответствиеСлужебныхКлючей.Вставить("SplitBinaryData" , "РазделитьДвоичныеДанные");
СоответствиеСлужебныхКлючей.Вставить("GetStringFromBinaryData" , "ПолучитьСтрокуИзДвоичныхДанных");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataBufferFromString" , "ПолучитьБуферДвоичныхДанныхИзСтроки");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataFromHexString" , "ПолучитьДвоичныеДанныеИзHexСтроки");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataBufferFromBinaryData", "ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataBufferFromHexString" , "ПолучитьБуферДвоичныхДанныхИзHexСтроки");
СоответствиеСлужебныхКлючей.Вставить("GetBinaryDataFromBinaryDataBuffer", "ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных");
Для Каждого СлужебныйКлюч Из СоответствиеСлужебныхКлючей Цикл Для Каждого СлужебныйКлюч Из СоответствиеСлужебныхКлючей Цикл
ТекстМодуля = СтрЗаменить(ТекстМодуля, "." + СлужебныйКлюч.Ключ, "." + СлужебныйКлюч.Значение); ТекстМодуля = СтрЗаменить(ТекстМодуля, "." + СлужебныйКлюч.Ключ, "." + СлужебныйКлюч.Значение);
ТекстМодуля = СтрЗаменить(ТекстМодуля, "(""" + СлужебныйКлюч.Ключ + """)", "(""" + СлужебныйКлюч.Значение + """)"); ТекстМодуля = СтрЗаменить(ТекстМодуля, "(""" + СлужебныйКлюч.Ключ + """)", "(""" + СлужебныйКлюч.Значение + """)");
ТекстМодуля = СтрЗаменить(ТекстМодуля, СлужебныйКлюч.Ключ + "(", СлужебныйКлюч.Значение + "("); ТекстМодуля = СтрЗаменить(ТекстМодуля, СлужебныйКлюч.Ключ + "(", СлужебныйКлюч.Значение + "(");
КонецЦикла; КонецЦикла;
ТекстМодуля = СтрЗаменить(ТекстМодуля, "GetComposition", "ПолучитьСостав"); ТекстМодуля = СтрЗаменить(ТекстМодуля, "GetComposition", "ПолучитьСостав");
Пока СтрНайти(ТекстМодуля, " :") <> 0 Цикл Пока СтрНайти(ТекстМодуля, " :") <> 0 Цикл
ТекстМодуля = СтрЗаменить(ТекстМодуля, " :", ":"); ТекстМодуля = СтрЗаменить(ТекстМодуля, " :", ":");
КонецЦикла; КонецЦикла;
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля); ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
ТекстовыйДокумент.Записать(ФайлМодуля.ПолноеИмя); ТекстовыйДокумент.Записать(ФайлМодуля.ПолноеИмя);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры