mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-12-23 02:06:12 +02:00
100 lines
3.8 KiB
Plaintext
100 lines
3.8 KiB
Plaintext
|
|
#Область СлужебныйПрограммныйИнтерфейс
|
|
|
|
Процедура ПортироватьНабор(Знач Набор, Знач СоответствиеЗамен) Экспорт
|
|
|
|
Для Каждого Элемент Из Набор Цикл
|
|
ПортироватьФайл(Элемент.Ключ, Элемент.Значение, СоответствиеЗамен);
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ПортироватьФайл(Знач Файл1С, Знач ФайлОС, Знач СоответствиеЗамен) Экспорт
|
|
|
|
ФайлМодуля = Новый Файл(Файл1С);
|
|
|
|
Если Не ФайлМодуля.Существует() Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
Модуль = ПрочитатьМодуль(Файл1С);
|
|
|
|
Если СтрДлина(Модуль) = 0 Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
ОбработатьЗаменыМодуля(Модуль, СоответствиеЗамен);
|
|
ЗаписатьМодуль(ФайлОС, Модуль);
|
|
|
|
КонецПроцедуры
|
|
|
|
Функция ПолучитьСопоставлениеФайлов(Знач ОсновнойПутьИсходников) Экспорт
|
|
|
|
Сопоставление = Новый Соответствие();
|
|
ФайлыМодулей = НайтиФайлы(ОсновнойПутьИсходников, "*.bsl", Истина);
|
|
Признак = "// OneScript: ";
|
|
|
|
Для Каждого Файл Из ФайлыМодулей Цикл
|
|
|
|
ТекущийФайл = Файл.ПолноеИмя;
|
|
ТекстФайла = Новый ТекстовыйДокумент();
|
|
ТекстФайла.Прочитать(ТекущийФайл, "UTF-8");
|
|
|
|
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
|
|
|
|
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
|
|
|
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
|
|
Прервать;
|
|
КонецЕсли;
|
|
|
|
Если СтрНайти(ТекущаяСтрока, Признак) > 0 Тогда
|
|
|
|
ПутьOS = СтрЗаменить(ТекущаяСтрока, Признак, "");
|
|
ПутьOS = СокрЛП(ПутьOS);
|
|
ПутьOS = СтрЗаменить(ПутьOS, "./", ОсновнойПутьИсходников);
|
|
Сопоставление.Вставить(ТекущийФайл, ПутьOS);
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
КонецЦикла;
|
|
|
|
Возврат Сопоставление;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область СлужебныеПроцедурыИФункции
|
|
|
|
Функция ПрочитатьМодуль(Знач ФайлМодуля)
|
|
|
|
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля, "UTF-8");
|
|
Модуль = ЧтениеТекста.Прочитать();
|
|
ЧтениеТекста.Закрыть();
|
|
|
|
Возврат Модуль;
|
|
|
|
КонецФункции
|
|
|
|
Процедура ЗаписатьМодуль(Знач ФайлМодуля, Знач Модуль)
|
|
|
|
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
|
ТекстовыйДокумент.УстановитьТекст(Модуль);
|
|
ТекстовыйДокумент.Записать(ФайлМодуля);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ОбработатьЗаменыМодуля(Модуль, СоответствиеЗамен)
|
|
|
|
Для Каждого Замена Из СоответствиеЗамен Цикл
|
|
Модуль = СтрЗаменить(Модуль, Замена.Ключ, Замена.Значение);
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|