1
0
mirror of https://github.com/bia-technologies/bsl-parser.git synced 2024-11-24 08:12:17 +02:00
Парсер конфигурации 1С
Go to file
Корякин Алексей Викторович (000106721) af9a04e89b Переработано чтение описаний конфигурации
* Поддержка чтения формата EDT
* Изменен доступ к API - использование фабрики для создания парсера, парсер - объект
* Переименованы, некоторые модули
* Дробление монолитных модулей
2019-05-24 10:01:50 +03:00
.vscode Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
src Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
tasks Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
tests Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
.gitignore Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
installlocalhost.bat Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
LICENSE Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
packagedef Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00
readme.md Переработано чтение описаний конфигурации 2019-05-24 10:01:50 +03:00

Парсер конфигурации 1С

Информация

Скрипты данной библиотеки используются для разбора конфигурации 1С выгруженной в исходные файлы.

Установка

  1. Склонировать репозиторий
  2. Выполнить скрипт installlocalhost.bat

Использование

  1. Подключаем библиотеку #Использовать bsl-parser
  2. Создаем парсер Парсер = ПарсерBSL.ПарсерКонфигурации(КаталогИсходников);
  3. Читаем данные Парсер.ПрочитатьСтруктуруКонфигурации();
  4. Обрабатываем результат ОписаниеКонфигурации = Парсер.ОписаниеКонфигурации();

Пример, выводит имена всех объектов конфигурации и имена всех методов

    Парсер = ПарсерBSL.ПарсерКонфигурации(КаталогИсходников); // Создаем парсер
    Парсер.ПрочитатьСтруктуруКонфигурации(); // Читаем структуру
    ОписаниеКонфигурации = Парсер.ОписаниеКонфигурации();

    Для Каждого Объект Из ОписаниеКонфигурации.ОбъектыКонфигурации Цикл // Обрабатываем объекты

        // Обработаем объекты
        Сообщить(Объект.Тип + "." + Объект.Наименование);

    КонецЕсли;

    Парсер.НайтиМодулиКонфигурации(); // Находим все модули объектов

    Для Каждого Модуль Из ОписаниеКонфигурации.ОбъектыКонфигурации Цикл

        Для Каждого Блок Из Модуль.БлокиМодуля Цикл

            Если Блок.ТипБлока = ТипБлоковМодуля.ЗаголовокПроцедуры ИЛИ Блок.ТипБлока = ТипБлоковМодуля.ЗаголовокФункции Тогда

                Сообщить(ОписаниеБлока.ИмяМетода);

            КонецЕсли;

        КонецЦикла;

    КонецЦикла;