Code Monkey home page Code Monkey logo

bsl-parser's People

Contributors

alkoleft avatar bia-tech avatar nivanchenko avatar theshadowco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bsl-parser's Issues

Ошибка при чтении конфигурации, если имеется сервис интеграции

Ошибка при чтении конфигурации, если имеется сервис интеграции
при выполнении кода

	Для Каждого Подчиненный Из ДанныеКонфигурации.Подчиненные Цикл
		
		ЧастиИмени = СтрРазделить(Подчиненный, ".");

		РедакторКонфигурации.ЗарегистрироватьОбъектКонфигурации(ОписаниеКонфигурации, ЧастиИмени[0], ЧастиИмени[1]);
		
	КонецЦикла;

происходит ошибка, если Подчиненный = IntegrationService.****
{Модуль C:\Program Files\OneScript\lib\bsl-parser\src\Классы\СтруктураКаталоговКонфигурации.os / Ошибка в строке: 340 / Значение не является значением объектного типа}

Ошибка анализа модуля для "Асинх" методов

Если перед Процедура/Функция стоит "Асинх", то при анализе модуля начало блока процедуры/функции определяется как блок "Операторы".
Пример: ОбщиеМодули - НастраиваемаяБухгалтерскаяОтчетностьКлиент - ЗагрузитьНастройкиФормыОтчетности

Как указать режим совместимости расширения?

Так и не смог понять, пришлось добавить в макет строку:

Реквизиты Extension

Наименование Реквизит МетодПреобразования
ПрефиксИмен NamePrefix
Назначение ConfigurationExtensionPurpose
РежимСовместимостиРасширенияКонфигурации ConfigurationExtensionCompatibilityMode

Но это не радует :)

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

Сначала, создается файл 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?

Пример использования создания новой конфигурации

Можно попросить описать пример использования библиотеки в readme создания новой конфигурации, куда перенесли бы объекты из основной конфигурации по какой то подсистеме. Вроде бы по функционалу библиотека должна справиться с таким, но как - не совсем понятно какие методы использовать.

Ошибка при табуляции между "Функция" и именем функции

Если вместо пробела сразу после Процедура/Функция идет знак табуляции, то при анализе модуля начало блока процедуры/функции определяется как блок "Операторы".
Пример для УТ: Общий модуль - НоменклатураКлиент - "Функция ПроверитьЗаполнениеПолейПередУказаниемСерий"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.