You've already forked OpenIntegrations
							
							
				mirror of
				https://github.com/Bayselonarrend/OpenIntegrations.git
				synced 2025-10-30 23:47:46 +02:00 
			
		
		
		
	Переработка автоматических процессов
This commit is contained in:
		
							
								
								
									
										294
									
								
								.github/workflows/os/convert.os
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										294
									
								
								.github/workflows/os/convert.os
									
									
									
									
										vendored
									
									
								
							| @@ -1,220 +1,134 @@ | ||||
| Функция ПолучитьСопоставлениеФайлов() | ||||
| #Использовать "./internal" | ||||
|  | ||||
| 	Сопоставление = Новый Соответствие(); | ||||
| 	ФайлыМодулей  = НайтиФайлы("./src/ru/", "*.bsl", Истина); | ||||
| 	Признак       = "// OneScript: "; | ||||
| Перем ПутьPackagedef; | ||||
| Перем ОсновнойПутьИсходников; | ||||
| Перем СоответствиеЗамен; | ||||
| Перем ПутьПакета; | ||||
| Перем Версия; | ||||
| Перем Языки; | ||||
| Перем КаталогСловарей; | ||||
| Перем ФайлыПеревода; | ||||
| Перем ФайлыРазбораСловаря; | ||||
| Перем ФайлыФорматирования; | ||||
| Перем Корень; | ||||
| Перем ОсновнойЯзык; | ||||
|  | ||||
| 	Для Каждого Файл Из ФайлыМодулей Цикл | ||||
| Процедура ПриСозданииОбъекта() | ||||
|  | ||||
| 		ТекущийФайл = Файл.ПолноеИмя; | ||||
| 		ТекстФайла  = Новый ТекстовыйДокумент(); | ||||
| 		ТекстФайла.Прочитать(ТекущийФайл, "UTF-8"); | ||||
| 	ДанныеПроекта = ОбщиеМетоды.ПолучитьДанныеПроекта(); | ||||
|  | ||||
| 		Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл | ||||
| 	// Основные | ||||
| 	Корень                 = ДанныеПроекта["root"]; | ||||
| 	КаталогПакета          = ДанныеПроекта["packageSrc"]; | ||||
| 	ОсновнойЯзык           = ДанныеПроекта["mainLang"]; | ||||
| 	Версия                 = ДанныеПроекта["version"]; | ||||
| 	Языки                  = ДанныеПроекта["additionalLangs"]; | ||||
| 	КаталогСловарей        = ДанныеПроекта["dictionariesSrc"]; | ||||
|  | ||||
| 			ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н)); | ||||
|  | ||||
| 			Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда | ||||
| 				Прервать; | ||||
| 			КонецЕсли; | ||||
|  | ||||
| 			Если СтрНайти(ТекущаяСтрока, Признак) > 0 Тогда | ||||
|  | ||||
| 				ПутьOS = СтрЗаменить(ТекущаяСтрока, Признак, ""); | ||||
| 				ПутьOS = СокрЛП(ПутьOS); | ||||
| 				ПутьOS = СтрЗаменить(ПутьOS, "./", "./src/ru/"); | ||||
| 				Сопоставление.Вставить(ТекущийФайл, ПутьOS); | ||||
|  | ||||
| 			КонецЕсли; | ||||
|  | ||||
| 		КонецЦикла; | ||||
|  | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	ОбновитьLibConfig(Сопоставление); | ||||
|  | ||||
|  	Возврат Сопоставление; | ||||
|  | ||||
| КонецФункции  | ||||
|  | ||||
| Функция ПолучитьСоответствиеЗамен() | ||||
| 	ОсновнойПутьИсходников = Корень + ОсновнойЯзык + "/"; | ||||
| 	ПутьПакета             = ОсновнойПутьИсходников + КаталогПакета; | ||||
| 	ПутьPackagedef         = ПутьПакета + "packagedef"; | ||||
|  | ||||
| 	// Замены для OneScript | ||||
| 	СоответствиеЗамен = Новый Соответствие(); | ||||
| 	СоответствиеЗамен.Вставить("// #Использовать"					, "#Использовать"); | ||||
| 	СоответствиеЗамен.Вставить("//#Использовать" 					, "#Использовать"); | ||||
| 	СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Истина);"	, ""); | ||||
| 	СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Ложь);"	, ""); | ||||
| 	СоответствиеЗамен.Вставить("// !OInt "						    , ""); | ||||
| 	 | ||||
| 	// Файлы перевода | ||||
| 	ФайлыРазбораСловаря = ОпределитьНаборФайловДляСловаря(); | ||||
| 	ФайлыПеревода       = ОпределитьНаборФайловПеревода(); | ||||
|  | ||||
| 	Возврат СоответствиеЗамен; | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ОсновнаяОбработка() Экспорт | ||||
|  | ||||
| 	СоответствиеМодулей = МетодыКонвертации.ПолучитьСопоставлениеФайлов(ОсновнойПутьИсходников); | ||||
|  | ||||
| 	МетодыВерсионирования.ОбновитьНомераВерсий(ПутьPackagedef, Версия); | ||||
| 	МетодыВерсионирования.ОбновитьLibConfig(СоответствиеМодулей, ПутьПакета); | ||||
| 	МетодыКонвертации.ПортироватьНабор(СоответствиеМодулей, СоответствиеЗамен); | ||||
| 	МетодыСловарей.СоздатьНаборСловарей(ФайлыРазбораСловаря, Языки, КаталогСловарей); | ||||
| 	МетодыПеревода.ПеревестиПроект(КаталогСловарей, Корень, ОсновнойЯзык, Языки, ФайлыПеревода); | ||||
|  | ||||
| 	ФайлыФорматирования = ОпределитьНаборФайловФорматирования(); | ||||
|  | ||||
| 	МетодыФорматирования.ОтформатироватьНабор(ФайлыФорматирования); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Функция ОпределитьНаборФайловДляСловаря() | ||||
|  | ||||
| 	ВсеФайлы       = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина); | ||||
| 	МассивФайлов   = Новый Массив; | ||||
| 	 | ||||
| 	Для Каждого ФайлПроекта Из ВсеФайлы Цикл | ||||
|  | ||||
| 		Признак =  | ||||
| 			СтрНайти(ФайлПроекта.ПолноеИмя, "cli\data") = 0 | ||||
| 			И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/data") = 0 | ||||
| 			И Не ФайлПроекта.ЭтоКаталог(); | ||||
|  | ||||
|  | ||||
| 		Если Признак Тогда | ||||
| 			МассивФайлов.Добавить(ФайлПроекта); | ||||
| 		КонецЕсли; | ||||
|  | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	Возврат МассивФайлов; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Процедура ВыполнитьОбработку() | ||||
|  | ||||
| 	ОбновитьНомерВерсии(); | ||||
|  | ||||
| 	Сообщить("Начало конвертации OPI -> OInt"); | ||||
| 	Сообщить("------------------------------"); | ||||
| Функция ОпределитьНаборФайловФорматирования() | ||||
| 	 | ||||
| 	Начало = ТекущаяДата(); | ||||
| 	// Наборы файлов | ||||
| 	ВсеФайлы     = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина); | ||||
| 	МассивФайлов = Новый Массив; | ||||
| 	 | ||||
| 	Для Каждого ФайлПроекта Из ВсеФайлы Цикл | ||||
|  | ||||
| 	СоответствиеМодулей = ПолучитьСопоставлениеФайлов(); | ||||
| 		Признак = | ||||
| 			(ФайлПроекта.Расширение = "os" | ||||
| 			Или ФайлПроекта.Расширение = "bsl") | ||||
| 			И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/") = 0 | ||||
| 			И СтрНайти(ФайлПроекта.ПолноеИмя, "cli\") = 0; | ||||
|  | ||||
| 	Для Каждого ПараМодулей Из СоответствиеМодулей Цикл | ||||
|  | ||||
| 		Сообщить(Символы.ПС); | ||||
| 		ПортироватьФайл(ПараМодулей.Ключ, ПараМодулей.Значение); | ||||
| 		Если Признак Тогда | ||||
| 			МассивФайлов.Добавить(ФайлПроекта); | ||||
| 		КонецЕсли; | ||||
|  | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	Сообщить("------------------------------"); | ||||
| 	Сообщить("Обработка завершена! Длительность - " + Строка(ТекущаяДата() - Начало)); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| #Область СлужебныеПроцедурыИФункции | ||||
|  | ||||
| Процедура ПортироватьФайл(Знач Файл1С, Знач ФайлОС) | ||||
| 	 | ||||
| 	ФайлМодуля = Новый Файл(Файл1С); | ||||
|  | ||||
| 	МодульОС   = Новый Файл(ФайлОС); | ||||
| 	ИмяМодуля  = МодульОС.Имя; | ||||
|  | ||||
| 	Если ФайлМодуля.Существует() Тогда | ||||
| 		ВыводСообщенияПроцесса(ИмяМодуля, "Начало обработки файла"); | ||||
| 	Иначе | ||||
| 		ВыводСообщенияПроцесса(ИмяМодуля, "Файл не существует. Пропускаем"); | ||||
| 		Возврат; | ||||
| 	КонецЕсли; | ||||
|  | ||||
| 	Модуль = ПрочитатьМодуль(Файл1С, ИмяМодуля); | ||||
|  | ||||
| 	Если СтрДлина(Модуль) = 0 Тогда | ||||
| 		ВыводСообщенияПроцесса(ИмяМодуля, "Модуль пустой. Пропускаем"); | ||||
| 		Возврат; | ||||
| 	КонецЕсли; | ||||
|  | ||||
| 	ОбработатьЗаменыМодуля(ИмяМодуля, Модуль); | ||||
| 	ЗаписатьМодуль(ФайлОС, Модуль, ИмяМодуля); | ||||
| 	 | ||||
| КонецПроцедуры | ||||
|  | ||||
| Функция ПрочитатьМодуль(Знач ФайлМодуля, Знач ИмяМодуля) | ||||
|  | ||||
| 	ВыводСообщенияПроцесса(ИмяМодуля, "Начало чтения текста модуля"); | ||||
|  | ||||
| 	ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля, "UTF-8"); | ||||
| 	Модуль       = ЧтениеТекста.Прочитать(); | ||||
| 	ЧтениеТекста.Закрыть(); | ||||
| 	 | ||||
| 	ВыводСообщенияПроцесса(ИмяМодуля, "Модуль прочитан. Длина - " + Строка(СтрДлина(Модуль))); | ||||
| 	 | ||||
| 	Возврат Модуль; | ||||
| 	Возврат МассивФайлов; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Процедура ЗаписатьМодуль(Знач ФайлМодуля, Знач Модуль, Знач ИмяМодуля) | ||||
|  | ||||
| 	ВыводСообщенияПроцесса(ИмяМодуля, "Начало записи модуля"); | ||||
|  | ||||
| 	ТекстовыйДокумент = Новый ТекстовыйДокумент(); | ||||
| 	ТекстовыйДокумент.УстановитьТекст(Модуль); | ||||
| 	ТекстовыйДокумент.Записать(ФайлМодуля); | ||||
|  | ||||
| 	ВыводСообщенияПроцесса(ИмяМодуля, "Модуль записан"); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ВыводСообщенияПроцесса(Знач ИмяФайла, Знач Действие) | ||||
|  | ||||
| 	Длина = 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"); | ||||
| 	// Наборы файлов | ||||
| 	ВсеФайлы     = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина); | ||||
| 	МассивФайлов = Новый Массив; | ||||
| 	 | ||||
| 	Для Каждого ФайлПроекта Из ВсеФайлы Цикл | ||||
|  | ||||
| КонецПроцедуры | ||||
| 		Признак = | ||||
| 		    СтрНайти(ФайлПроекта.ПолноеИмя, "cli") = 0 | ||||
| 			И СтрНайти(ФайлПроекта.ПолноеИмя, "packagedef") = 0 | ||||
| 			И Не ФайлПроекта.ЭтоКаталог(); | ||||
|  | ||||
| 		Если Признак Тогда | ||||
| 			МассивФайлов.Добавить(ФайлПроекта); | ||||
| 		КонецЕсли; | ||||
|  | ||||
| #КонецОбласти | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	Возврат МассивФайлов; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| ПриСозданииОбъекта(); | ||||
| ОсновнаяОбработка(); | ||||
|  | ||||
| ВыполнитьОбработку(); | ||||
|   | ||||
							
								
								
									
										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" | ||||
| ] | ||||
| } | ||||
		Reference in New Issue
	
	Block a user