Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Непонятное поведение при изменении свойства корня конфигурации #5

Open
vsuh opened this issue May 15, 2022 · 3 comments

Comments

@vsuh
Copy link

vsuh commented May 15, 2022

Сначала, создается файл listFile.lst с одной строкой "Configuration" в нем.
Затем делается выгрузка конфигурации в файлы с помощью v8runner:

Процедура ВыгрузитьКонфигурациюВФайлы()
    УправлениеКонфигуратором = Новый УправлениеКонфигуратором();
    УправлениеКонфигуратором.УстановитьКонтекст("/IBConnectionString""Srvr=App-1; Ref='ib_uat'""", "admin", "$$$rd");
    ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска();
    ПараметрыЗапуска.Добавить("/DumpConfigToFiles " + КаталогИсходников);
    ПараметрыЗапуска.Добавить("-listFile " + СоздатьФайлСпискаВыгружаемыхОбъектов());
    ПараметрыЗапуска.Добавить("/out log\unload-to-files." + ЛатИмяКонфигурации + ".log");
    
    Попытка
        Лог.Информация("Выгрузка конфигурации """ + ЛатИмяКонфигурации + """ в каталог " + КаталогИсходников);
        УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска);

В результате выгрузки из ИБ УАТ в каталоге выгрузки видим:
image

Далее, пытаемся изменить свойство конфигурации "Синоним":

Процедура ЗаписатьНовыйНомерРелиза()
    Парсер = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогИсходников);
    Конфигурация = Парсер.ОписаниеКонфигурации();
    Для Каждого ОписаниеКорняКонфигурации Из Конфигурация.ОбъектыКонфигурации Цикл
        Если ОписаниеКорняКонфигурации.Тип = "Configuration" Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    ЧтениеКонфигурации.ПрочитатьОписание(ОписаниеКорняКонфигурации);
    Если ОписаниеКорняКонфигурации.Описание.Свойство("Синоним") Тогда
        СтрокаОписанияСинонима = ОписаниеКорняКонфигурации.Описание["Синоним"];
        ОписаниеКорняКонфигурации.Описание["Синоним"] = ВычислитьСтрокуНовогоСинонима(СтрокаОписанияСинонима);
    КонецЕсли;
    ЗаписьКонфигурации.СохранитьОписание(ОписаниеКорняКонфигурации);
КонецПроцедуры

После выполнения первой строки процедуры - РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогИсходников), в каталоге выгрузки создаются дерево пустых каталогов, соответствующее всем метаданным конфигурации (?).
После вызова метода ЗаписьКонфигурации.СохранитьОписание(ОписаниеКорняКонфигурации) в каталоге выгрузки создается файл УправлениеАвтотранспортомСтандарт.xml в котором и сохраняется измененный синоним. Причем, UUID конфигурации в новом файле отличается от файла Configuration.xml:
image

Если попытаться загрузить полученный файл УправлениеАвтотранспортомСтандарт.xml с опцией -files то получаем ошибку:
.../LoadConfigFromFiles ib.src.uat -files "УправлениеАвтотранспортомСтандарт.xml"

image

Если переименовать файл УправлениеАвтотранспортомСтандарт.xml в Configuration.xml и попытаться его загрузить, то получаем ошибку:

image

Как нужно поступать, чтобы измененное свойство корня конфигурации сохранились в файле Configuration.xml?

@akademik1986
Copy link

Добрый день, @vsuh !
Столкнулся с той же самой ошибкой. Вы нашли обходное решение?

@vsuh
Copy link
Author

vsuh commented May 27, 2022

Пока использую костыль:

    Парсер = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогИсходников);
    Конфигурация = Парсер.ОписаниеКонфигурации();
    ОригТекстСинонима = Конфигурация.СвойстваКонфигурации.Синоним.ru;
    НовыйТекстСинонима = ВычислитьСтрокуНовогоСинонима(ОригТекстСинонима);
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяФайла, "UTF-8");
    СтрокаXML = Текст.ПолучитьТекст();
    СтрокаXML = СтрЗаменить(СтрокаXML, ОригТекстСинонима, НовыйТекстСинонима);
    Текст.УстановитьТекст(СтрокаXML);
    Текст.Записать(ИмяФайла, "UTF-8");

@theshadowco
Copy link
Contributor

@alkoleft FYI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants