{"id":26786939,"url":"https://github.com/bia-technologies/bsl-parser","last_synced_at":"2026-01-08T01:07:34.704Z","repository":{"id":98988833,"uuid":"265151435","full_name":"bia-technologies/bsl-parser","owner":"bia-technologies","description":"Парсер конфигурации 1С","archived":false,"fork":false,"pushed_at":"2024-10-22T02:34:09.000Z","size":314,"stargazers_count":40,"open_issues_count":8,"forks_count":17,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-23T03:48:16.887Z","etag":null,"topics":["1script","bsl","onescript","oscript-lib","oscript-package"],"latest_commit_sha":null,"homepage":null,"language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bia-technologies.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-19T05:12:21.000Z","updated_at":"2024-10-22T02:34:13.000Z","dependencies_parsed_at":"2024-10-23T00:22:53.305Z","dependency_job_id":null,"html_url":"https://github.com/bia-technologies/bsl-parser","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bia-technologies%2Fbsl-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bia-technologies%2Fbsl-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bia-technologies%2Fbsl-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bia-technologies%2Fbsl-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bia-technologies","download_url":"https://codeload.github.com/bia-technologies/bsl-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246180890,"owners_count":20736460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1script","bsl","onescript","oscript-lib","oscript-package"],"created_at":"2025-03-29T12:17:21.092Z","updated_at":"2026-01-08T01:07:34.650Z","avatar_url":"https://github.com/bia-technologies.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Парсер конфигурации 1С\n\n## Информация\n\nСкрипты данной библиотеки используются для разбора конфигурации 1С выгруженной в исходные файлы.\n\n*Под словом **конфигурация** понимается как конфигурация 1С, так и расширение.*\n\n## Установка\n\n1. Склонировать репозиторий\n2. Выполнить скрипт `installlocalhost.bat`\n\n## Использование\n\nБиблиотека содержит в себе большое количество модулей и классов, часть из них может дорабатываться в процессе развития продукта.\nПоэтому рекомендуется использовать только методы модулей входящие в API (модули лежащие в корневом каталоге) для них будет сохранятся обратная совместимость.\n\n### API\n\nДля работы с файлами выгрузки используются модуль-фабрика:\n\n* [РазборКонфигураций](src/Модули/РазборКонфигураций.os) - модуль содержит методы-конструкторы для инициализации объектов.\n  Это базовый модуль, основная точка входа API. Он создает объекты позволяющие читать, писать и изменять исходники.\n  Модуль содержит следующие методы:\n  * ЗагрузитьКонфигурацию() - создает объект для чтения конфигурации\n  * ЗагрузитьРасширение() - создает объект для чтения расширения\n  * СоздатьНовуюКонфигурацию() - Создает объект для генерации описания конфигурации с нуля.\n  * СоздатьНовоеРасширение() - Создает объект для генерации описания расширения с нуля.\n  * СоздатьОбъектКонфигурации() - Создает описание объекта конфигурации\n* [Конфигурация](src/Классы/Конфигурация.os) - класс, реализует API для работы с конфигураций\n* [Расширение](src/Классы/Расширение.os) - класс, реализует API для работы с расширением\n* [ДанныеКонфигурации](src/Классы/ДанныеКонфигурации.os) - класс, хранит данные описания конфигурации, список объектов, модулей и тд\n* [СтруктураКаталоговКонфигурации](src/Классы/СтруктураКаталоговКонфигурации.os) - класс, для навигации по каталогам выгрузки исходников. Учитывает различия хранения для различных версий.\n* Перечисления.* - предопределенные константы.\n  * ТипыОбъектовКонфигурации - содержит методы для работы с типами\n  * ФорматыВыгрузки - значения поддерживаемых форматов выгрузки\n  * ТипыМодуля - значения типов модулей (общий, модуль формы, модуль объекта...)\n  * ТипыБлоковМодуля - значения типов блоков модуля (Заголовок функции, комментарий, текст...)\n  * ТипыОбласти - значения обязательных областей модуля\n* [РедакторОписания](src/Классы/РедакторОписания.os) - класс-помощник, содержит дополнительные методы редактирования описаний\n\nПример, выводит имена всех объектов конфигурации и имена всех методов\n\n```bsl\n    #Использовать bsl-parser\n\n    Парсер = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогИсходников); // Создаем парсер\n    Конфигурация = Парсер.ОписаниеКонфигурации();\n\n    Для Каждого Объект Из Конфигурация.ОбъектыКонфигурации Цикл // Обрабатываем объекты\n\n        // Обработаем объекты\n        Сообщить(Объект.Тип + \".\" + Объект.Наименование);\n\n    КонецЦикла;\n\n    Парсер.НайтиМодулиКонфигурации(); // Находим все модули объектов\n\n    Для Каждого Модуль Из Конфигурация.ОбъектыКонфигурации Цикл\n\n        Для Каждого Блок Из Модуль.БлокиМодуля Цикл\n\n            Если Блок.ТипБлока = ТипыБлоковМодуля.ЗаголовокПроцедуры ИЛИ Блок.ТипБлока = ТипыБлоковМодуля.ЗаголовокФункции Тогда\n\n                Сообщить(ОписаниеБлока.ИмяМетода);\n\n            КонецЕсли;\n\n        КонецЦикла;\n\n    КонецЦикла;\n```\n\nПример включения всех объектов в расширение:\n\n```bsl\n    #Использовать bsl-parser\n\n    Расширение = РазборКонфигураций.СоздатьНовоеРасширение(КаталогРасширения, ФорматыВыгрузки.Конфигуратор_8_3_10);\n    Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогКонфигурации);\n\n    СвойстваРасширения = Расширение.ОписаниеКонфигурации().СвойстваКонфигурации;\n\n    СвойстваРасширения.Наименование = \"Simple\";\n    СвойстваРасширения.Синоним = \"Простое расширение\";\n    СвойстваРасширения.ПрефиксИмен = \"smpl_\";\n\n    Для Каждого Объект Из Конфигурация.ОписаниеКонфигурации().ОбъектыКонфигурации Цикл\n\n        Расширение.ДобавитьОбъектВРасширение(Объект);\n\n    КонецЦикла;\n\n    Расширение.Зафиксировать();\n\n```\n\nПример добавления нового объекта в конфигурацию:\n\n```bsl\n    #Использовать bsl-parser\n\n    Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогКонфигурации);\n\n    НовыйОбъект = РазборКонфигураций.СоздатьОбъектКонфигурации(\"Справочник\", \"ТестовыйСправочник\");\n    Конфигурация.ДобавитьОбъект(\"Справочник\", НовыйОбъект);\n\n    Конфигурация.Зафиксировать();\n\n```\n\nПример поиск регистров сведений подчиненных регистратору:\n\n```bsl\n    #Использовать bsl-parser\n\n    Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогКонфигурации);\n    КонфигурацияОбъекты = Конфигурация.ОписаниеКонфигурации();\n\n    Для Каждого Регистр Из КонфигурацияОбъекты.НайтиОбъектыПоТипу(\"РегистрСведений\") Цикл\n\n        ЧтениеКонфигурации.ПрочитатьОписание(Регистр);\n\n        Если Регистр.Описание.РежимЗаписи = \"RecorderSubordinate\" Тогда\n\n            Сообщить(Регистр.ПолноеНаименование);\n\n        КонецЕсли;\n\n    КонецЦикла;\n\n```\n\n## Лицензии и права\n\n* основная лицензия исходного кода продукта - [MIT](LICENSE)\n* лицензии стороннего кода - BSDv3, Apache License, Freeware, etc - подробные разъяснения лицензий на исходный код продукта и его документации в том числе содержатся внутри файлов исходного кода\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbia-technologies%2Fbsl-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbia-technologies%2Fbsl-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbia-technologies%2Fbsl-parser/lists"}