mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-02 22:05:37 +02:00
Переработка автоматических процессов
This commit is contained in:
parent
6799a4f7a7
commit
7662733f2a
280
.github/workflows/os/convert.os
vendored
280
.github/workflows/os/convert.os
vendored
@ -1,44 +1,35 @@
|
|||||||
Функция ПолучитьСопоставлениеФайлов()
|
#Использовать "./internal"
|
||||||
|
|
||||||
Сопоставление = Новый Соответствие();
|
Перем ПутьPackagedef;
|
||||||
ФайлыМодулей = НайтиФайлы("./src/ru/", "*.bsl", Истина);
|
Перем ОсновнойПутьИсходников;
|
||||||
Признак = "// OneScript: ";
|
Перем СоответствиеЗамен;
|
||||||
|
Перем ПутьПакета;
|
||||||
|
Перем Версия;
|
||||||
|
Перем Языки;
|
||||||
|
Перем КаталогСловарей;
|
||||||
|
Перем ФайлыПеревода;
|
||||||
|
Перем ФайлыРазбораСловаря;
|
||||||
|
Перем ФайлыФорматирования;
|
||||||
|
Перем Корень;
|
||||||
|
Перем ОсновнойЯзык;
|
||||||
|
|
||||||
Для Каждого Файл Из ФайлыМодулей Цикл
|
Процедура ПриСозданииОбъекта()
|
||||||
|
|
||||||
ТекущийФайл = Файл.ПолноеИмя;
|
ДанныеПроекта = ОбщиеМетоды.ПолучитьДанныеПроекта();
|
||||||
ТекстФайла = Новый ТекстовыйДокумент();
|
|
||||||
ТекстФайла.Прочитать(ТекущийФайл, "UTF-8");
|
|
||||||
|
|
||||||
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
|
// Основные
|
||||||
|
Корень = ДанныеПроекта["root"];
|
||||||
|
КаталогПакета = ДанныеПроекта["packageSrc"];
|
||||||
|
ОсновнойЯзык = ДанныеПроекта["mainLang"];
|
||||||
|
Версия = ДанныеПроекта["version"];
|
||||||
|
Языки = ДанныеПроекта["additionalLangs"];
|
||||||
|
КаталогСловарей = ДанныеПроекта["dictionariesSrc"];
|
||||||
|
|
||||||
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
|
ОсновнойПутьИсходников = Корень + ОсновнойЯзык + "/";
|
||||||
|
ПутьПакета = ОсновнойПутьИсходников + КаталогПакета;
|
||||||
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
|
ПутьPackagedef = ПутьПакета + "packagedef";
|
||||||
Прервать;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если СтрНайти(ТекущаяСтрока, Признак) > 0 Тогда
|
|
||||||
|
|
||||||
ПутьOS = СтрЗаменить(ТекущаяСтрока, Признак, "");
|
|
||||||
ПутьOS = СокрЛП(ПутьOS);
|
|
||||||
ПутьOS = СтрЗаменить(ПутьOS, "./", "./src/ru/");
|
|
||||||
Сопоставление.Вставить(ТекущийФайл, ПутьOS);
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ОбновитьLibConfig(Сопоставление);
|
|
||||||
|
|
||||||
Возврат Сопоставление;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ПолучитьСоответствиеЗамен()
|
|
||||||
|
|
||||||
|
// Замены для OneScript
|
||||||
СоответствиеЗамен = Новый Соответствие();
|
СоответствиеЗамен = Новый Соответствие();
|
||||||
СоответствиеЗамен.Вставить("// #Использовать" , "#Использовать");
|
СоответствиеЗамен.Вставить("// #Использовать" , "#Использовать");
|
||||||
СоответствиеЗамен.Вставить("//#Использовать" , "#Использовать");
|
СоответствиеЗамен.Вставить("//#Использовать" , "#Использовать");
|
||||||
@ -46,175 +37,98 @@
|
|||||||
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Ложь);" , "");
|
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Ложь);" , "");
|
||||||
СоответствиеЗамен.Вставить("// !OInt " , "");
|
СоответствиеЗамен.Вставить("// !OInt " , "");
|
||||||
|
|
||||||
Возврат СоответствиеЗамен;
|
// Файлы перевода
|
||||||
|
ФайлыРазбораСловаря = ОпределитьНаборФайловДляСловаря();
|
||||||
|
ФайлыПеревода = ОпределитьНаборФайловПеревода();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОсновнаяОбработка() Экспорт
|
||||||
|
|
||||||
|
СоответствиеМодулей = МетодыКонвертации.ПолучитьСопоставлениеФайлов(ОсновнойПутьИсходников);
|
||||||
|
|
||||||
|
МетодыВерсионирования.ОбновитьНомераВерсий(ПутьPackagedef, Версия);
|
||||||
|
МетодыВерсионирования.ОбновитьLibConfig(СоответствиеМодулей, ПутьПакета);
|
||||||
|
МетодыКонвертации.ПортироватьНабор(СоответствиеМодулей, СоответствиеЗамен);
|
||||||
|
МетодыСловарей.СоздатьНаборСловарей(ФайлыРазбораСловаря, Языки, КаталогСловарей);
|
||||||
|
МетодыПеревода.ПеревестиПроект(КаталогСловарей, Корень, ОсновнойЯзык, Языки, ФайлыПеревода);
|
||||||
|
|
||||||
|
ФайлыФорматирования = ОпределитьНаборФайловФорматирования();
|
||||||
|
|
||||||
|
МетодыФорматирования.ОтформатироватьНабор(ФайлыФорматирования);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ОпределитьНаборФайловДляСловаря()
|
||||||
|
|
||||||
|
ВсеФайлы = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина);
|
||||||
|
МассивФайлов = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
|
||||||
|
|
||||||
|
Признак =
|
||||||
|
СтрНайти(ФайлПроекта.ПолноеИмя, "cli\data") = 0
|
||||||
|
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/data") = 0
|
||||||
|
И Не ФайлПроекта.ЭтоКаталог();
|
||||||
|
|
||||||
|
|
||||||
|
Если Признак Тогда
|
||||||
|
МассивФайлов.Добавить(ФайлПроекта);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат МассивФайлов;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ВыполнитьОбработку()
|
Функция ОпределитьНаборФайловФорматирования()
|
||||||
|
|
||||||
ОбновитьНомерВерсии();
|
// Наборы файлов
|
||||||
|
ВсеФайлы = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина);
|
||||||
|
МассивФайлов = Новый Массив;
|
||||||
|
|
||||||
Сообщить("Начало конвертации OPI -> OInt");
|
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
|
||||||
Сообщить("------------------------------");
|
|
||||||
|
|
||||||
Начало = ТекущаяДата();
|
Признак =
|
||||||
|
(ФайлПроекта.Расширение = "os"
|
||||||
|
Или ФайлПроекта.Расширение = "bsl")
|
||||||
|
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/") = 0
|
||||||
|
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli\") = 0;
|
||||||
|
|
||||||
СоответствиеМодулей = ПолучитьСопоставлениеФайлов();
|
Если Признак Тогда
|
||||||
|
МассивФайлов.Добавить(ФайлПроекта);
|
||||||
Для Каждого ПараМодулей Из СоответствиеМодулей Цикл
|
КонецЕсли;
|
||||||
|
|
||||||
Сообщить(Символы.ПС);
|
|
||||||
ПортироватьФайл(ПараМодулей.Ключ, ПараМодулей.Значение);
|
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Сообщить("------------------------------");
|
Возврат МассивФайлов;
|
||||||
Сообщить("Обработка завершена! Длительность - " + Строка(ТекущаяДата() - Начало));
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
|
||||||
|
|
||||||
Процедура ПортироватьФайл(Знач Файл1С, Знач ФайлОС)
|
|
||||||
|
|
||||||
ФайлМодуля = Новый Файл(Файл1С);
|
|
||||||
|
|
||||||
МодульОС = Новый Файл(ФайлОС);
|
|
||||||
ИмяМодуля = МодульОС.Имя;
|
|
||||||
|
|
||||||
Если ФайлМодуля.Существует() Тогда
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Начало обработки файла");
|
|
||||||
Иначе
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Файл не существует. Пропускаем");
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Модуль = ПрочитатьМодуль(Файл1С, ИмяМодуля);
|
|
||||||
|
|
||||||
Если СтрДлина(Модуль) = 0 Тогда
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Модуль пустой. Пропускаем");
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ОбработатьЗаменыМодуля(ИмяМодуля, Модуль);
|
|
||||||
ЗаписатьМодуль(ФайлОС, Модуль, ИмяМодуля);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Функция ПрочитатьМодуль(Знач ФайлМодуля, Знач ИмяМодуля)
|
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Начало чтения текста модуля");
|
|
||||||
|
|
||||||
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля, "UTF-8");
|
|
||||||
Модуль = ЧтениеТекста.Прочитать();
|
|
||||||
ЧтениеТекста.Закрыть();
|
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Модуль прочитан. Длина - " + Строка(СтрДлина(Модуль)));
|
|
||||||
|
|
||||||
Возврат Модуль;
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗаписатьМодуль(Знач ФайлМодуля, Знач Модуль, Знач ИмяМодуля)
|
Функция ОпределитьНаборФайловПеревода()
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Начало записи модуля");
|
// Наборы файлов
|
||||||
|
ВсеФайлы = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина);
|
||||||
|
МассивФайлов = Новый Массив;
|
||||||
|
|
||||||
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
|
||||||
ТекстовыйДокумент.УстановитьТекст(Модуль);
|
|
||||||
ТекстовыйДокумент.Записать(ФайлМодуля);
|
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Модуль записан");
|
Признак =
|
||||||
|
СтрНайти(ФайлПроекта.ПолноеИмя, "cli") = 0
|
||||||
|
И СтрНайти(ФайлПроекта.ПолноеИмя, "packagedef") = 0
|
||||||
|
И Не ФайлПроекта.ЭтоКаталог();
|
||||||
|
|
||||||
КонецПроцедуры
|
Если Признак Тогда
|
||||||
|
МассивФайлов.Добавить(ФайлПроекта);
|
||||||
Процедура ВыводСообщенияПроцесса(Знач ИмяФайла, Знач Действие)
|
|
||||||
|
|
||||||
Длина = 30;
|
|
||||||
|
|
||||||
Пока СтрДлина(ИмяФайла) < Длина Цикл
|
|
||||||
ИмяФайла = ИмяФайла + " ";
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Сообщить("Конвертация | " + ИмяФайла + " | " + Действие);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ОбработатьЗаменыМодуля(Знач ИмяМодуля, Модуль)
|
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Начало произведения замен");
|
|
||||||
|
|
||||||
СоответствиеЗамен = ПолучитьСоответствиеЗамен();
|
|
||||||
|
|
||||||
Для Каждого Замена Из СоответствиеЗамен Цикл
|
|
||||||
Модуль = СтрЗаменить(Модуль, Замена.Ключ, Замена.Значение);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ВыводСообщенияПроцесса(ИмяМодуля, "Окончание произведения замен");
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ОбновитьНомерВерсии()
|
|
||||||
|
|
||||||
ПутьПД = "./src/ru/OInt/packagedef";
|
|
||||||
ПутьКФ = "./src/ru/OPI/src/Configuration/Configuration.mdo";
|
|
||||||
Версия = "";
|
|
||||||
|
|
||||||
ЧтениеДанныхКонфигурации = Новый ЧтениеXML();
|
|
||||||
ЧтениеДанныхКонфигурации.ОткрытьФайл(ПутьКФ);
|
|
||||||
|
|
||||||
Пока ЧтениеДанныхКонфигурации.Прочитать() Цикл
|
|
||||||
Если Строка(ЧтениеДанныхКонфигурации.Имя) = "version" Тогда
|
|
||||||
ЧтениеДанныхКонфигурации.Прочитать();
|
|
||||||
Версия = Строка(ЧтениеДанныхКонфигурации.Значение);
|
|
||||||
Прервать;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Признак = ".Версия(""";
|
|
||||||
Packagedef = Новый ТекстовыйДокумент();
|
|
||||||
Packagedef.Прочитать(ПутьПД);
|
|
||||||
|
|
||||||
Для Н = 1 По Packagedef.КоличествоСтрок() Цикл
|
|
||||||
|
|
||||||
ТекущаяСтрока = СокрЛП(Packagedef.ПолучитьСтроку(Н));
|
|
||||||
Если СтрНайти(ТекущаяСтрока, Признак) Тогда
|
|
||||||
Packagedef.ЗаменитьСтроку(Н, " .Версия(""" + Версия + """)");
|
|
||||||
Packagedef.Записать(ПутьПД);
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ОбновитьLibConfig(Знач СоответствиеКовертации)
|
|
||||||
|
|
||||||
Документ = Новый ТекстовыйДокумент();
|
|
||||||
Документ.ДобавитьСтроку("<package-def>");
|
|
||||||
|
|
||||||
Макет = " <module name=""%1"" file=""%2""/>";
|
|
||||||
|
|
||||||
Для Каждого Модуль Из СоответствиеКовертации Цикл
|
|
||||||
|
|
||||||
ТекущийМодуль = Модуль.Значение;
|
|
||||||
ФайлМодуля = Новый Файл(ТекущийМодуль);
|
|
||||||
ПутьМодуля = СтрЗаменить(ТекущийМодуль, "./src/ru/OInt/", "");
|
|
||||||
Бибилотека = ФайлМодуля.ИмяБезРасширения;
|
|
||||||
|
|
||||||
Если Бибилотека = "OPI_Тесты" Тогда
|
|
||||||
Продолжить;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущаяСтрока = СтрШаблон(Макет, Бибилотека, СокрЛП(ПутьМодуля));
|
|
||||||
Документ.ДобавитьСтроку(ТекущаяСтрока);
|
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Документ.ДобавитьСтроку("</package-def>");
|
Возврат МассивФайлов;
|
||||||
Документ.Записать("./src/ru/OInt/lib.config");
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецФункции
|
||||||
|
|
||||||
|
ПриСозданииОбъекта();
|
||||||
|
ОсновнаяОбработка();
|
||||||
|
|
||||||
#КонецОбласти
|
|
||||||
|
|
||||||
ВыполнитьОбработку();
|
|
||||||
|
87
.github/workflows/os/internal/Modules/internal/Modules/Инструменты.os
vendored
Normal file
87
.github/workflows/os/internal/Modules/internal/Modules/Инструменты.os
vendored
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
Функция ПрочитатьФайлJSON(Знач Путь) Экспорт
|
||||||
|
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON();
|
||||||
|
ЧтениеJSON.ОткрытьФайл(Путь);
|
||||||
|
Данные = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
Возврат Данные;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗаписатьФайлJSON(Знач Путь, Знач Данные) Экспорт
|
||||||
|
|
||||||
|
Запись = Новый ЗаписьJSON;
|
||||||
|
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто);
|
||||||
|
Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON);
|
||||||
|
ЗаписатьJSON(Запись, Данные);
|
||||||
|
Запись.Закрыть();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьАлфавит() Экспорт
|
||||||
|
|
||||||
|
Алфавит = Новый Массив;
|
||||||
|
|
||||||
|
Алфавит.Добавить("а");
|
||||||
|
Алфавит.Добавить("б");
|
||||||
|
Алфавит.Добавить("в");
|
||||||
|
Алфавит.Добавить("г");
|
||||||
|
Алфавит.Добавить("д");
|
||||||
|
Алфавит.Добавить("е");
|
||||||
|
Алфавит.Добавить("ё");
|
||||||
|
Алфавит.Добавить("ж");
|
||||||
|
Алфавит.Добавить("з");
|
||||||
|
Алфавит.Добавить("и");
|
||||||
|
Алфавит.Добавить("й");
|
||||||
|
Алфавит.Добавить("к");
|
||||||
|
Алфавит.Добавить("л");
|
||||||
|
Алфавит.Добавить("м");
|
||||||
|
Алфавит.Добавить("н");
|
||||||
|
Алфавит.Добавить("о");
|
||||||
|
Алфавит.Добавить("п");
|
||||||
|
Алфавит.Добавить("р");
|
||||||
|
Алфавит.Добавить("с");
|
||||||
|
Алфавит.Добавить("т");
|
||||||
|
Алфавит.Добавить("у");
|
||||||
|
Алфавит.Добавить("ф");
|
||||||
|
Алфавит.Добавить("х");
|
||||||
|
Алфавит.Добавить("ц");
|
||||||
|
Алфавит.Добавить("ч");
|
||||||
|
Алфавит.Добавить("ш");
|
||||||
|
Алфавит.Добавить("щ");
|
||||||
|
Алфавит.Добавить("ъ");
|
||||||
|
Алфавит.Добавить("ы");
|
||||||
|
Алфавит.Добавить("ь");
|
||||||
|
Алфавит.Добавить("э");
|
||||||
|
Алфавит.Добавить("ю");
|
||||||
|
Алфавит.Добавить("я");
|
||||||
|
|
||||||
|
Возврат Алфавит;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьМассивСимволов() Экспорт
|
||||||
|
|
||||||
|
МассивСимволов = Новый Массив();
|
||||||
|
МассивСимволов.Добавить(";");
|
||||||
|
МассивСимволов.Добавить(".");
|
||||||
|
МассивСимволов.Добавить(",");
|
||||||
|
МассивСимволов.Добавить(")");
|
||||||
|
МассивСимволов.Добавить("(");
|
||||||
|
МассивСимволов.Добавить("/");
|
||||||
|
МассивСимволов.Добавить("\");
|
||||||
|
МассивСимволов.Добавить("[");
|
||||||
|
МассивСимволов.Добавить("]");
|
||||||
|
МассивСимволов.Добавить("=");
|
||||||
|
МассивСимволов.Добавить("+");
|
||||||
|
МассивСимволов.Добавить("-");
|
||||||
|
МассивСимволов.Добавить("*");
|
||||||
|
МассивСимволов.Добавить("#");
|
||||||
|
МассивСимволов.Добавить(" ");
|
||||||
|
МассивСимволов.Добавить("_");
|
||||||
|
МассивСимволов.Добавить("""");
|
||||||
|
|
||||||
|
Возврат МассивСимволов;
|
||||||
|
|
||||||
|
КонецФункции
|
49
.github/workflows/os/internal/Modules/МетодыВерсионирования.os
vendored
Normal file
49
.github/workflows/os/internal/Modules/МетодыВерсионирования.os
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Процедура ОбновитьНомераВерсий(Знач ПутьPackagedef, Знач Версия) Экспорт
|
||||||
|
|
||||||
|
Признак = ".Версия(""";
|
||||||
|
Packagedef = Новый ТекстовыйДокумент();
|
||||||
|
Packagedef.Прочитать(ПутьPackagedef);
|
||||||
|
|
||||||
|
Для Н = 1 По Packagedef.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = СокрЛП(Packagedef.ПолучитьСтроку(Н));
|
||||||
|
Если СтрНайти(ТекущаяСтрока, Признак) Тогда
|
||||||
|
Packagedef.ЗаменитьСтроку(Н, " .Версия(""" + Версия + """)");
|
||||||
|
Packagedef.Записать(ПутьPackagedef);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОбновитьLibConfig(Знач СоответствиеКовертации, Знач ПутьПакета) Экспорт
|
||||||
|
|
||||||
|
Документ = Новый ТекстовыйДокумент();
|
||||||
|
Документ.ДобавитьСтроку("<package-def>");
|
||||||
|
|
||||||
|
Макет = " <module name=""%1"" file=""%2""/>";
|
||||||
|
|
||||||
|
Для Каждого Модуль Из СоответствиеКовертации Цикл
|
||||||
|
|
||||||
|
ТекущийМодуль = Модуль.Значение;
|
||||||
|
ФайлМодуля = Новый Файл(ТекущийМодуль);
|
||||||
|
ПутьМодуля = СтрЗаменить(ТекущийМодуль, ПутьПакета, "");
|
||||||
|
Бибилотека = ФайлМодуля.ИмяБезРасширения;
|
||||||
|
|
||||||
|
Если Бибилотека = "OPI_Тесты" Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущаяСтрока = СтрШаблон(Макет, Бибилотека, СокрЛП(ПутьМодуля));
|
||||||
|
Документ.ДобавитьСтроку(ТекущаяСтрока);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Документ.ДобавитьСтроку("</package-def>");
|
||||||
|
Документ.Записать(ПутьПакета + "lib.config");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
99
.github/workflows/os/internal/Modules/МетодыКонвертации.os
vendored
Normal file
99
.github/workflows/os/internal/Modules/МетодыКонвертации.os
vendored
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Процедура ПортироватьНабор(Знач Набор, Знач СоответствиеЗамен) Экспорт
|
||||||
|
|
||||||
|
Для Каждого Элемент Из Набор Цикл
|
||||||
|
ПортироватьФайл(Элемент.Ключ, Элемент.Значение, СоответствиеЗамен);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПортироватьФайл(Знач Файл1С, Знач ФайлОС, Знач СоответствиеЗамен) Экспорт
|
||||||
|
|
||||||
|
ФайлМодуля = Новый Файл(Файл1С);
|
||||||
|
|
||||||
|
Если Не ФайлМодуля.Существует() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Модуль = ПрочитатьМодуль(Файл1С);
|
||||||
|
|
||||||
|
Если СтрДлина(Модуль) = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбработатьЗаменыМодуля(Модуль, СоответствиеЗамен);
|
||||||
|
ЗаписатьМодуль(ФайлОС, Модуль);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьСопоставлениеФайлов(Знач ОсновнойПутьИсходников) Экспорт
|
||||||
|
|
||||||
|
Сопоставление = Новый Соответствие();
|
||||||
|
ФайлыМодулей = НайтиФайлы(ОсновнойПутьИсходников, "*.bsl", Истина);
|
||||||
|
Признак = "// OneScript: ";
|
||||||
|
|
||||||
|
Для Каждого Файл Из ФайлыМодулей Цикл
|
||||||
|
|
||||||
|
ТекущийФайл = Файл.ПолноеИмя;
|
||||||
|
ТекстФайла = Новый ТекстовыйДокумент();
|
||||||
|
ТекстФайла.Прочитать(ТекущийФайл, "UTF-8");
|
||||||
|
|
||||||
|
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрНайти(ТекущаяСтрока, Признак) > 0 Тогда
|
||||||
|
|
||||||
|
ПутьOS = СтрЗаменить(ТекущаяСтрока, Признак, "");
|
||||||
|
ПутьOS = СокрЛП(ПутьOS);
|
||||||
|
ПутьOS = СтрЗаменить(ПутьOS, "./", ОсновнойПутьИсходников);
|
||||||
|
Сопоставление.Вставить(ТекущийФайл, ПутьOS);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Сопоставление;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Функция ПрочитатьМодуль(Знач ФайлМодуля)
|
||||||
|
|
||||||
|
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля, "UTF-8");
|
||||||
|
Модуль = ЧтениеТекста.Прочитать();
|
||||||
|
ЧтениеТекста.Закрыть();
|
||||||
|
|
||||||
|
Возврат Модуль;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗаписатьМодуль(Знач ФайлМодуля, Знач Модуль)
|
||||||
|
|
||||||
|
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||||
|
ТекстовыйДокумент.УстановитьТекст(Модуль);
|
||||||
|
ТекстовыйДокумент.Записать(ФайлМодуля);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОбработатьЗаменыМодуля(Модуль, СоответствиеЗамен)
|
||||||
|
|
||||||
|
Для Каждого Замена Из СоответствиеЗамен Цикл
|
||||||
|
Модуль = СтрЗаменить(Модуль, Замена.Ключ, Замена.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
247
.github/workflows/os/internal/Modules/МетодыПеревода.os
vendored
Normal file
247
.github/workflows/os/internal/Modules/МетодыПеревода.os
vendored
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
Перем ТаблицаСловаря;
|
||||||
|
Перем КаталогОригинала;
|
||||||
|
|
||||||
|
Процедура ПеревестиПроект(Знач КаталогСловарей, Знач Корень, Знач ОсновнойЯзык, Знач Языки, Знач ФайлыПеревода) Экспорт
|
||||||
|
|
||||||
|
ТаблицаСловаря = Новый ТаблицаЗначений();
|
||||||
|
ТаблицаСловаря.Колонки.Добавить("Ключ");
|
||||||
|
ТаблицаСловаря.Колонки.Добавить("Значение");
|
||||||
|
ТаблицаСловаря.Колонки.Добавить("Длина");
|
||||||
|
ТаблицаСловаря.Колонки.Добавить("ИмяМодуля");
|
||||||
|
|
||||||
|
ПутьОригинала = Корень + ОсновнойЯзык;
|
||||||
|
КаталогОригинала = Новый Файл(ПутьОригинала);
|
||||||
|
КаталогОригинала = КаталогОригинала.ПолноеИмя;
|
||||||
|
|
||||||
|
Для Каждого Язык Из Языки Цикл
|
||||||
|
|
||||||
|
ПеревестиПоСловарю(КаталогСловарей, Язык, ФайлыПеревода, Корень);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПеревестиПоСловарю(Знач КаталогСловарей, Знач Язык, Знач Файлы, Знач Корень);
|
||||||
|
|
||||||
|
ПутьПеревода = Корень + Язык;
|
||||||
|
ПутьСловаря = КаталогСловарей + Язык + ".json";
|
||||||
|
Словарь = Новый Файл(ПутьСловаря);
|
||||||
|
|
||||||
|
Если Не Словарь.Существует() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КаталогПриемник = Новый Файл(ПутьПеревода);
|
||||||
|
ПутьКСловарю = Словарь.ПолноеИмя;
|
||||||
|
Язык = Словарь.ИмяБезРасширения;
|
||||||
|
|
||||||
|
ПолучитьТаблицуСловаря(ПутьКСловарю);
|
||||||
|
|
||||||
|
СкопироватьФайлы(Файлы, КаталогПриемник);
|
||||||
|
|
||||||
|
ФайлыМодулей = НайтиФайлы(ПутьПеревода, "*", Истина);
|
||||||
|
|
||||||
|
Для Каждого ФайлМодуля Из ФайлыМодулей Цикл
|
||||||
|
|
||||||
|
Если ФайлМодуля.ЭтоКаталог() Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПеревестиМодуль(ФайлМодуля.ПолноеИмя);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПеревестиИменаФайлов(ФайлыМодулей);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПеревестиИменаФайлов(ВсеФайлыЛокализации)
|
||||||
|
|
||||||
|
ОтборИменМодулей = Новый Структура("ИмяМодуля", Истина);
|
||||||
|
СтрокиИмен = ТаблицаСловаря.НайтиСтроки(ОтборИменМодулей);
|
||||||
|
УдаляемыеКаталоги = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого ФайлЛокализации Из ВсеФайлыЛокализации Цикл
|
||||||
|
|
||||||
|
Если Не ФайлЛокализации.ЭтоКаталог() Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущийПуть = ФайлЛокализации.ПолноеИмя;
|
||||||
|
НовыйПуть = ТекущийПуть;
|
||||||
|
|
||||||
|
Для Каждого Имя Из СтрокиИмен Цикл
|
||||||
|
НовыйПуть = СтрЗаменить(НовыйПуть, Имя.Ключ, Имя.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ФайлНовогоПути = Новый Файл(НовыйПуть);
|
||||||
|
|
||||||
|
Если Не ФайлНовогоПути.Существует() Тогда
|
||||||
|
УдаляемыеКаталоги.Добавить(ТекущийПуть);
|
||||||
|
СоздатьКаталог(НовыйПуть);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого ФайлЛокализации Из ВсеФайлыЛокализации Цикл
|
||||||
|
|
||||||
|
Если ФайлЛокализации.ЭтоКаталог() Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущийПуть = ФайлЛокализации.ПолноеИмя;
|
||||||
|
НовыйПуть = ТекущийПуть;
|
||||||
|
|
||||||
|
Для Каждого Имя Из СтрокиИмен Цикл
|
||||||
|
НовыйПуть = СтрЗаменить(НовыйПуть, Имя.Ключ, Имя.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ФайлНовогоПути = Новый Файл(НовыйПуть);
|
||||||
|
|
||||||
|
Если Не ФайлНовогоПути.Существует() Тогда
|
||||||
|
ПереместитьФайл(ТекущийПуть, НовыйПуть);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого Каталог Из УдаляемыеКаталоги Цикл
|
||||||
|
УдалитьФайлы(Каталог);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПеревестиМодуль(ПутьКМодулю)
|
||||||
|
|
||||||
|
ДокументМодуля = Новый ТекстовыйДокумент();
|
||||||
|
ДокументМодуля.Прочитать(ПутьКМодулю, "UTF-8");
|
||||||
|
|
||||||
|
Для Н = 1 По ДокументМодуля.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = СокрЛП(ДокументМодуля.ПолучитьСтроку(Н));
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Пока СтрНайти(ТекущаяСтрока, " ") <> 0 Цикл
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, " ", " ");
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ВыводимаяСтрока = СтрЗаменить(ДокументМодуля.ПолучитьСтроку(Н), СокрЛП(ДокументМодуля.ПолучитьСтроку(Н)), ТекущаяСтрока);
|
||||||
|
ДокументМодуля.ЗаменитьСтроку(Н, ВыводимаяСтрока);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстМодуля = ДокументМодуля.ПолучитьТекст();
|
||||||
|
|
||||||
|
Для Каждого Элемент Из ТаблицаСловаря Цикл
|
||||||
|
|
||||||
|
ТекущееЗначение = Элемент.Значение;
|
||||||
|
|
||||||
|
Пока СтрДлина(ТекущееЗначение) < Элемент.Длина Цикл
|
||||||
|
ТекущееЗначение = ТекущееЗначение + " ";
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстМодуля = СтрЗаменить(ТекстМодуля, Элемент.Ключ, Элемент.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ОбработатьНесовпаденияOneScript(ТекстМодуля, ПутьКМодулю);
|
||||||
|
|
||||||
|
ДокументМодуля.УстановитьТекст(ТекстМодуля);
|
||||||
|
ДокументМодуля.Записать(ПутьКМодулю);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПолучитьТаблицуСловаря(ПутьКСловарю)
|
||||||
|
|
||||||
|
Сообщить("Чтение словаря " + ПутьКСловарю);
|
||||||
|
ТаблицаСловаря.Очистить();
|
||||||
|
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON();
|
||||||
|
ЧтениеJSON.ОткрытьФайл(ПутьКСловарю);
|
||||||
|
ДанныеСловаря = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
Для Каждого Элемент Из ДанныеСловаря Цикл
|
||||||
|
|
||||||
|
НоваяСтрокаСловаря = ТаблицаСловаря.Добавить();
|
||||||
|
НоваяСтрокаСловаря.Ключ = Элемент.Ключ;
|
||||||
|
НоваяСтрокаСловаря.Значение = Элемент.Значение;
|
||||||
|
НоваяСтрокаСловаря.Длина = СтрДлина(Элемент.Ключ);
|
||||||
|
НоваяСтрокаСловаря.ИмяМодуля = СтрНайти(Элемент.Ключ, "OPI_") <> 0;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТаблицаСловаря.Сортировать("Длина УБЫВ");
|
||||||
|
|
||||||
|
ПутьКСловарюКлючевыхСлов = "./service/dictionaries/en_post.json";
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON();
|
||||||
|
ЧтениеJSON.ОткрытьФайл(ПутьКСловарюКлючевыхСлов);
|
||||||
|
СоответствиеКС = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
Для Каждого КлючевоеСлово Из СоответствиеКС Цикл
|
||||||
|
НоваяСтрокаСловаря = ТаблицаСловаря.Добавить();
|
||||||
|
НоваяСтрокаСловаря.Ключ = КлючевоеСлово.Ключ;
|
||||||
|
НоваяСтрокаСловаря.Значение = КлючевоеСлово.Значение;
|
||||||
|
НоваяСтрокаСловаря.Длина = СтрДлина(КлючевоеСлово.Ключ);
|
||||||
|
НоваяСтрокаСловаря.ИмяМодуля = Ложь;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СкопироватьФайлы(Знач МассивФайлов, Знач КаталогПриемник)
|
||||||
|
|
||||||
|
ПутьПриемник = КаталогПриемник.ПолноеИмя;
|
||||||
|
|
||||||
|
Если КаталогПриемник.Существует() Тогда
|
||||||
|
УдалитьФайлы(ПутьПриемник);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СоздатьКаталог(ПутьПриемник);
|
||||||
|
|
||||||
|
Для Каждого Файл Из МассивФайлов Цикл
|
||||||
|
Если Файл.ЭтоКаталог() Тогда
|
||||||
|
|
||||||
|
ПолноеИмяИсточник = Файл.ПолноеИмя;
|
||||||
|
ПолноеИмяПриемник = ПутьПриемник + СтрЗаменить(Файл.ПолноеИмя, КаталогОригинала, "");
|
||||||
|
|
||||||
|
СоздатьКаталог(ПолноеИмяПриемник);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого Файл Из МассивФайлов Цикл
|
||||||
|
Если Не Файл.ЭтоКаталог() Тогда
|
||||||
|
|
||||||
|
ПолноеИмяИсточник = Файл.ПолноеИмя;
|
||||||
|
ПолноеИмяПриемник = ПутьПриемник + СтрЗаменить(Файл.ПолноеИмя, КаталогОригинала, "");
|
||||||
|
|
||||||
|
КопироватьФайл(ПолноеИмяИсточник, ПолноеИмяПриемник);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОбработатьНесовпаденияOneScript(ТекстМодуля, ПутьКМодулю)
|
||||||
|
|
||||||
|
СоответствиеОшибок = Новый Соответствие();
|
||||||
|
СоответствиеОшибок.Вставить("ConcatBinaryData" , "ConcatenateBinaryData");
|
||||||
|
СоответствиеОшибок.Вставить("GetTestList" , "ПолучитьСписокТестов");
|
||||||
|
СоответствиеОшибок.Вставить("Exists" , "Exist");
|
||||||
|
СоответствиеОшибок.Вставить("SetBodyFromBinaryData", "SetBodyFromBinary");
|
||||||
|
СоответствиеОшибок.Вставить("GetBodyAsBinaryData" , "ПолучитьТелоКакДвоичныеДанные");
|
||||||
|
СоответствиеОшибок.Вставить("FileCopy" , "CopyFile");
|
||||||
|
|
||||||
|
ФайлМодуля = Новый Файл(ПутьКМодулю);
|
||||||
|
|
||||||
|
Если СтрНайти(ФайлМодуля.Имя, ".os") <> 0 Тогда
|
||||||
|
Для Каждого Ошибка Из СоответствиеОшибок Цикл
|
||||||
|
ТекстМодуля = СтрЗаменить(ТекстМодуля, Ошибка.Ключ, Ошибка.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
//ПриСозданииОбъекта();
|
267
.github/workflows/os/internal/Modules/МетодыСловарей.os
vendored
Normal file
267
.github/workflows/os/internal/Modules/МетодыСловарей.os
vendored
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
#Использовать "./internal"
|
||||||
|
|
||||||
|
Перем МассивСимволов;
|
||||||
|
|
||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Процедура СоздатьНаборСловарей(Знач ФайлыМодулей, Знач Языки, Знач КаталогСловарей) Экспорт
|
||||||
|
|
||||||
|
Для Каждого Язык Из Языки Цикл
|
||||||
|
|
||||||
|
ПутьСловаря = КаталогСловарей + Язык + ".json";
|
||||||
|
ФайлСловаря = Новый Файл(ПутьСловаря);
|
||||||
|
|
||||||
|
Если ФайлСловаря.Существует() Тогда
|
||||||
|
СоздатьСловарь(ФайлыМодулей, ПутьСловаря);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьСловарь(Знач ФайлыМодулей, Знач ПутьСловаря) Экспорт
|
||||||
|
|
||||||
|
МассивСимволов = Инструменты.ПолучитьМассивСимволов();
|
||||||
|
|
||||||
|
СоответствиеСловаря = Инструменты.ПрочитатьФайлJSON(ПутьСловаря);
|
||||||
|
СписокСлов = Новый СписокЗначений();
|
||||||
|
|
||||||
|
Для Каждого Модуль Из ФайлыМодулей Цикл
|
||||||
|
|
||||||
|
ПолучитьМассивСловОригинала(Модуль.ПолноеИмя, СписокСлов);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого Слово Из СписокСлов Цикл
|
||||||
|
|
||||||
|
СловоОригинал = Слово.Значение;
|
||||||
|
СуществующийПеревод = СоответствиеСловаря[СловоОригинал];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СуществующийПеревод) Тогда
|
||||||
|
СоответствиеСловаря.Вставить(СловоОригинал, "");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ЗаписатьJSONСловаря(СоответствиеСловаря, ПутьСловаря);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Процедура ЗаписатьJSONСловаря(СоответствиеСловаря, ПутьСловаря)
|
||||||
|
|
||||||
|
ТЗ = Новый ТаблицаЗначений();
|
||||||
|
ТЗ.Колонки.Добавить("Ключ");
|
||||||
|
ТЗ.Колонки.Добавить("Значение");
|
||||||
|
ТЗ.Колонки.Добавить("ДлинаКлюча");
|
||||||
|
ТЗ.Колонки.Добавить("Заполнено");
|
||||||
|
|
||||||
|
Для Каждого Элемент Из СоответствиеСловаря Цикл
|
||||||
|
|
||||||
|
НоваяСтрока = ТЗ.Добавить();
|
||||||
|
НоваяСтрока.Ключ = Элемент.Ключ;
|
||||||
|
НоваяСтрока.Значение = Элемент.Значение;
|
||||||
|
НоваяСтрока.ДлинаКлюча = СтрДлина(Элемент.Ключ);
|
||||||
|
НоваяСтрока.Заполнено = ЗначениеЗаполнено(Элемент.Значение);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТЗ.Сортировать("Заполнено УБЫВ, ДлинаКлюча");
|
||||||
|
|
||||||
|
JSON = Новый ЗаписьJSON;
|
||||||
|
|
||||||
|
JSON.ОткрытьФайл(ПутьСловаря);
|
||||||
|
JSON.ЗаписатьНачалоОбъекта();
|
||||||
|
|
||||||
|
Для Каждого СтрокаТЗ Из ТЗ Цикл
|
||||||
|
|
||||||
|
JSON.ЗаписатьИмяСвойства(СтрокаТЗ["Ключ"]);
|
||||||
|
JSON.ЗаписатьЗначение(СтрокаТЗ["Значение"]);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
JSON.ЗаписатьКонецОбъекта();
|
||||||
|
JSON.Закрыть();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПолучитьМассивСловОригинала(Знач ПутьКФайлу, СписокСлов)
|
||||||
|
|
||||||
|
Документ = Новый ТекстовыйДокумент();
|
||||||
|
Документ.Прочитать(ПутьКФайлу, "UTF-8");
|
||||||
|
|
||||||
|
Для Н = 1 По Документ.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = СокрЛП(Документ.ПолучитьСтроку(Н));
|
||||||
|
|
||||||
|
РазобратьСтрокуНаСлова(ТекущаяСтрока, СписокСлов);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РазобратьСтрокуНаСлова(Знач ТекущаяСтрока, СписокСлов)
|
||||||
|
|
||||||
|
Если СтрНачинаетсяС(ТекущаяСтрока, "// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрНачинаетсяС(ТекущаяСтрока, "//") Тогда
|
||||||
|
|
||||||
|
РазобратьСтрокуКомментария(ТекущаяСтрока, СписокСлов);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ЭтоВыражение = СтрНайти(ТекущаяСтрока, """") <> 0
|
||||||
|
Или СтрНайти(ТекущаяСтрока, "|") <> 0
|
||||||
|
Или СтрНайти(ТекущаяСтрока, "<") <> 0
|
||||||
|
Или СтрНайти(ТекущаяСтрока, ">") <> 0;
|
||||||
|
|
||||||
|
Если ЭтоВыражение Тогда
|
||||||
|
РазобратьВыражение(ТекущаяСтрока, СписокСлов);
|
||||||
|
Иначе
|
||||||
|
РазобратьОбычнуюСтроку(ТекущаяСтрока, СписокСлов);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РазобратьСтрокуКомментария(ТекущаяСтрока, СписокСлов)
|
||||||
|
|
||||||
|
ТекущаяСтрока = СокрЛП(СтрЗаменить(ТекущаяСтрока, "//", ""));
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, " - ", "$");
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, ": [", "$");
|
||||||
|
МассивСтроки = СтрРазделить(ТекущаяСтрока, "$", Ложь);
|
||||||
|
|
||||||
|
Для Г = 0 По МассивСтроки.ВГраница() Цикл
|
||||||
|
ДобавитьСлово(СписокСлов, МассивСтроки[Г]);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РазобратьВыражение(ТекущаяСтрока, СписокСлов)
|
||||||
|
|
||||||
|
ТекущаяСтрока = " " + ТекущаяСтрока;
|
||||||
|
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, """", "$");
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "|", "$");
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "<", "$");
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, ">", "$");
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "$$", """""");
|
||||||
|
|
||||||
|
МассивСтроки = СтрРазделить(ТекущаяСтрока, "$", Истина);
|
||||||
|
|
||||||
|
Цельный = Ложь;
|
||||||
|
Для Каждого Элемент Из МассивСтроки Цикл
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СокрЛП(Элемент)) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Цельный Тогда
|
||||||
|
ДобавитьСлово(СписокСлов, Элемент);
|
||||||
|
Иначе
|
||||||
|
РазобратьОбычнуюСтроку(Элемент, СписокСлов);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Цельный = Не Цельный;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РазобратьОбычнуюСтроку(ТекущаяСтрока, СписокСлов)
|
||||||
|
|
||||||
|
Для Каждого Символ Из МассивСимволов Цикл
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, Символ, "$");
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Пока СтрНайти(ТекущаяСтрока, "$$") <> 0 Цикл
|
||||||
|
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "$$", "$");
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
МассивЭлемента = СтрРазделить(ТекущаяСтрока, "$", Ложь);
|
||||||
|
Для Каждого Дробный Из МассивЭлемента Цикл
|
||||||
|
ДобавитьСлово(СписокСлов, Дробный);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ДобавитьСлово(Список, Слово)
|
||||||
|
|
||||||
|
НормализоватьСлово(Слово);
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(Слово) Или Не НайтиКириллицу(Слово) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СуществующееЗначение = Список.НайтиПоЗначению(Слово);
|
||||||
|
|
||||||
|
Если СуществующееЗначение = Неопределено Тогда
|
||||||
|
Список.Добавить(Слово, СтрДлина(Слово));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура НормализоватьСлово(Слово)
|
||||||
|
|
||||||
|
Слово = СокрЛП(Слово);
|
||||||
|
|
||||||
|
Нормализовано = Ложь;
|
||||||
|
|
||||||
|
Пока Не Нормализовано Цикл
|
||||||
|
|
||||||
|
ПервыйСимвол = Ложь;
|
||||||
|
ПоследнийСимвол = Ложь;
|
||||||
|
|
||||||
|
Для Каждого Символ Из МассивСимволов Цикл
|
||||||
|
|
||||||
|
ПервыйСимвол = СтрНачинаетсяС(Слово, Символ);
|
||||||
|
ПоследнийСимвол = СтрЗаканчиваетсяНа(Слово, Символ);
|
||||||
|
|
||||||
|
Если ПервыйСимвол Или ПоследнийСимвол Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ПервыйСимвол Тогда
|
||||||
|
Слово = Прав(Слово, СтрДлина(Слово) - 1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПоследнийСимвол Тогда
|
||||||
|
Слово = Лев(Слово, СтрДлина(Слово) - 1);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПервыйСимвол И Не ПоследнийСимвол Тогда
|
||||||
|
Нормализовано = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Слово = СокрЛП(Слово);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция НайтиКириллицу(Знач Слово)
|
||||||
|
|
||||||
|
Алфавит = Инструменты.ПолучитьАлфавит();
|
||||||
|
СловоНРег = НРег(Слово);
|
||||||
|
|
||||||
|
Для Каждого Буква Из Алфавит Цикл
|
||||||
|
Если СтрНайти(СловоНРег, Буква) <> 0 Тогда
|
||||||
|
Возврат Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
|
||||||
|
|
239
.github/workflows/os/internal/Modules/МетодыФорматирования.os
vendored
Normal file
239
.github/workflows/os/internal/Modules/МетодыФорматирования.os
vendored
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Процедура ОтформатироватьНабор(Знач МассивФайлов) Экспорт
|
||||||
|
|
||||||
|
Для Каждого Файл Из МассивФайлов Цикл
|
||||||
|
ОтформатироватьМодуль(Файл.ПолноеИмя);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
Процедура ОтформатироватьМодуль(Знач ПутьКМодулю) Экспорт
|
||||||
|
|
||||||
|
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||||
|
ТекстовыйДокумент.Прочитать(ПутьКМодулю, "UTF-8");
|
||||||
|
|
||||||
|
БлокиКода = РазобратьМодульНаБлоки(ТекстовыйДокумент);
|
||||||
|
ТекстФайла = ОтформатироватьБлоки(БлокиКода);
|
||||||
|
|
||||||
|
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||||||
|
ТекстовыйДокумент.Записать(ПутьКМодулю);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Функция РазобратьМодульНаБлоки(Знач ТекстовыйДокумент)
|
||||||
|
|
||||||
|
Для Н = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(Н);
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СокрЛП(ТекущаяСтрока)) Тогда
|
||||||
|
ТекстовыйДокумент.ЗаменитьСтроку(Н, "⣿");
|
||||||
|
Иначе
|
||||||
|
ТекстовыйДокумент.ЗаменитьСтроку(Н, СокрП(ТекущаяСтрока));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||||||
|
БлокиФайла = СтрРазделить(ТекстФайла, "⣿");
|
||||||
|
|
||||||
|
Возврат БлокиФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОтформатироватьБлоки(Знач БлокиКода)
|
||||||
|
|
||||||
|
Для Н = 0 По БлокиКода.ВГраница() Цикл
|
||||||
|
|
||||||
|
МассивСтрокБлока = СтрРазделить(БлокиКода[Н], Символы.ПС);
|
||||||
|
|
||||||
|
Если МассивСтрокБлока.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
ИначеЕсли СтрНачинаетсяС(СокрЛП(МассивСтрокБлока[1]), "//") Тогда
|
||||||
|
Продолжить;
|
||||||
|
Иначе
|
||||||
|
ВыровнятьЗнакиРавно(МассивСтрокБлока);
|
||||||
|
ВыровнятьЗапятые(МассивСтрокБлока);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
БлокиКода[Н] = СтрСоединить(МассивСтрокБлока, Символы.ПС);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстФайла = СтрСоединить(БлокиКода, "");
|
||||||
|
ТекстФайла = СтрЗаменить(ТекстФайла, Символы.Таб, " ");
|
||||||
|
|
||||||
|
Возврат ТекстФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ВыровнятьЗнакиРавно(МассивСтрокБлока)
|
||||||
|
|
||||||
|
СоответствиеРасположений = Новый Соответствие();
|
||||||
|
МаксимальноеРасположение = 0;
|
||||||
|
ЧислоЗнаковРавно = 0;
|
||||||
|
|
||||||
|
Для Н = 0 По МассивСтрокБлока.ВГраница() Цикл
|
||||||
|
|
||||||
|
РасположениеРавно = СтрНайти(МассивСтрокБлока[Н], "=");
|
||||||
|
|
||||||
|
Если Не РасположениеРавно = 0 Тогда
|
||||||
|
|
||||||
|
МассивЧастей = СтрРазделить(МассивСтрокБлока[Н], "=");
|
||||||
|
НеПроверять = Ложь;
|
||||||
|
|
||||||
|
Для А = 0 По МассивЧастей.ВГраница() - 1 Цикл
|
||||||
|
|
||||||
|
ЧислоКавычек = СтрЧислоВхождений(МассивЧастей[А], """");
|
||||||
|
|
||||||
|
Если ЧислоКавычек <> 0 И ЧислоКавычек % 2 <> 0 Тогда
|
||||||
|
СоответствиеРасположений.Вставить(Н, 0);
|
||||||
|
НеПроверять = Истина;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если НеПроверять Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СоответствиеРасположений.Вставить(Н, РасположениеРавно);
|
||||||
|
МаксимальноеРасположение = ?(РасположениеРавно > МаксимальноеРасположение, РасположениеРавно, МаксимальноеРасположение);
|
||||||
|
|
||||||
|
Если Не РасположениеРавно = 0 Тогда
|
||||||
|
ЧислоЗнаковРавно = ЧислоЗнаковРавно + 1;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если МаксимальноеРасположение = 0 Или ЧислоЗнаковРавно < 2 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого СтрокаБлока Из СоответствиеРасположений Цикл
|
||||||
|
|
||||||
|
РасположениеРавно = СтрокаБлока.Значение;
|
||||||
|
Индекс = СтрокаБлока.Ключ;
|
||||||
|
|
||||||
|
Если РасположениеРавно = 0 Или МаксимальноеРасположение - РасположениеРавно > 12 Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Н = РасположениеРавно По МаксимальноеРасположение - 1 Цикл
|
||||||
|
МассивСтрокБлока[Индекс] = СтрЗаменить(МассивСтрокБлока[Индекс], "=", " =");
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВыровнятьЗапятые(МассивСтрокБлока, СоответствиеМаксимумов = "")
|
||||||
|
|
||||||
|
ПолноеСоответствиеРасположений = Новый Соответствие();
|
||||||
|
СтрокаСЗапятыми = 0;
|
||||||
|
НачалоСтроки = "";
|
||||||
|
|
||||||
|
Для Н = 0 По МассивСтрокБлока.ВГраница() Цикл
|
||||||
|
|
||||||
|
МассивУчастков = СтрРазделить(МассивСтрокБлока[Н], ",");
|
||||||
|
МассивУчастков_ = Новый Массив;
|
||||||
|
Соединение = Ложь;
|
||||||
|
СтрокаСоединения = "";
|
||||||
|
|
||||||
|
Для Каждого Участок Из МассивУчастков Цикл
|
||||||
|
|
||||||
|
ЧислоКавычек = СтрЧислоВхождений(Участок, """");
|
||||||
|
|
||||||
|
Если (ЧислоКавычек = 0 Или ЧислоКавычек % 2 = 0 ) И Не Соединение Тогда
|
||||||
|
|
||||||
|
МассивУчастков_.Добавить(Участок);
|
||||||
|
|
||||||
|
ИначеЕсли Соединение И ЧислоКавычек % 2 <> 0 Тогда
|
||||||
|
МассивУчастков_.Добавить(СтрокаСоединения + "," + Участок);
|
||||||
|
СтрокаСоединения = "";
|
||||||
|
Соединение = Ложь;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
СтрокаСоединения = ?(ЗначениеЗаполнено(СтрокаСоединения), СтрокаСоединения + "," + Участок, Участок);
|
||||||
|
Соединение = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
МассивУчастков = МассивУчастков_;
|
||||||
|
|
||||||
|
Если МассивУчастков.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
Иначе
|
||||||
|
СтрокаСЗапятыми = СтрокаСЗапятыми + 1;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивНачалаСтроки = СтрРазделить(МассивУчастков[0], "(");
|
||||||
|
|
||||||
|
Если МассивНачалаСтроки.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НачалоСтроки = МассивНачалаСтроки[0];
|
||||||
|
СоответствиеРасположений = ПолноеСоответствиеРасположений[НачалоСтроки];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеРасположений) Тогда
|
||||||
|
СоответствиеРасположений = Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Р = 0 По МассивУчастков.ВГраница() - 1 Цикл
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеМаксимумов) Тогда
|
||||||
|
|
||||||
|
ДлинаУчастка = СтрДлина(МассивУчастков[Р]);
|
||||||
|
|
||||||
|
ТекущийМаксимум = СоответствиеРасположений.Получить(Р);
|
||||||
|
ТекущийМаксимум = ?(ЗначениеЗаполнено(ТекущийМаксимум), ТекущийМаксимум, 0);
|
||||||
|
ТекущийМаксимум = ?(ДлинаУчастка > ТекущийМаксимум , ДлинаУчастка , ТекущийМаксимум);
|
||||||
|
|
||||||
|
СоответствиеРасположений.Вставить(Р, ТекущийМаксимум);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ТекущееСоответствиеМаксимумов = СоответствиеМаксимумов[НачалоСтроки];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущееСоответствиеМаксимумов) Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НеобходимаяДлина = ТекущееСоответствиеМаксимумов[Р];
|
||||||
|
|
||||||
|
Если НеобходимаяДлина = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Пока СтрДлина(МассивУчастков[Р]) < НеобходимаяДлина Цикл
|
||||||
|
МассивУчастков[Р] = МассивУчастков[Р] + " ";
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПолноеСоответствиеРасположений.Вставить(НачалоСтроки, СоответствиеРасположений);
|
||||||
|
|
||||||
|
МассивСтрокБлока[Н] = СтрСоединить(МассивУчастков, ",");
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеМаксимумов)
|
||||||
|
И ЗначениеЗаполнено(ПолноеСоответствиеРасположений)
|
||||||
|
И СтрокаСЗапятыми > 1 Тогда
|
||||||
|
ВыровнятьЗапятые(МассивСтрокБлока, ПолноеСоответствиеРасположений);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
41
.github/workflows/os/internal/Modules/ОбщиеМетоды.os
vendored
Normal file
41
.github/workflows/os/internal/Modules/ОбщиеМетоды.os
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#Использовать "./internal"
|
||||||
|
|
||||||
|
Функция ПолучитьДанныеПроекта() Экспорт
|
||||||
|
|
||||||
|
ФайлДанныхПроекта = "./service/project.json";
|
||||||
|
|
||||||
|
ДанныеПроекта = Инструменты.ПрочитатьФайлJSON(ФайлДанныхПроекта);
|
||||||
|
ОбновитьНомерВерсии(ДанныеПроекта);
|
||||||
|
|
||||||
|
Инструменты.ЗаписатьФайлJSON(ФайлДанныхПроекта, ДанныеПроекта);
|
||||||
|
|
||||||
|
Возврат ДанныеПроекта;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ОбновитьНомерВерсии(ДанныеПроекта)
|
||||||
|
|
||||||
|
Корень = ДанныеПроекта["root"];
|
||||||
|
ОсновнойЯзык = ДанныеПроекта["mainLang"];
|
||||||
|
КаталогКонфигурации = ДанныеПроекта["configurationSrc"];
|
||||||
|
|
||||||
|
ОсновнойПутьИсходников = Корень + ОсновнойЯзык + "/";
|
||||||
|
ПутьКонфигурации = ОсновнойПутьИсходников + КаталогКонфигурации;
|
||||||
|
ПутьMDO = ПутьКонфигурации + "Configuration/Configuration.mdo";
|
||||||
|
|
||||||
|
Версия = "";
|
||||||
|
|
||||||
|
ЧтениеДанныхКонфигурации = Новый ЧтениеXML();
|
||||||
|
ЧтениеДанныхКонфигурации.ОткрытьФайл(ПутьMDO);
|
||||||
|
|
||||||
|
Пока ЧтениеДанныхКонфигурации.Прочитать() Цикл
|
||||||
|
Если Строка(ЧтениеДанныхКонфигурации.Имя) = "version" Тогда
|
||||||
|
ЧтениеДанныхКонфигурации.Прочитать();
|
||||||
|
Версия = Строка(ЧтениеДанныхКонфигурации.Значение);
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ДанныеПроекта.Вставить("version", Версия);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
File diff suppressed because it is too large
Load Diff
11
service/project.json
Normal file
11
service/project.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"root": "./src/",
|
||||||
|
"mainLang": "ru",
|
||||||
|
"packageSrc": "OInt/",
|
||||||
|
"configurationSrc": "OPI/src/",
|
||||||
|
"dictionariesSrc": "./service/dictionaries/",
|
||||||
|
"version": "1.11.1",
|
||||||
|
"additionalLangs": [
|
||||||
|
"en"
|
||||||
|
]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user