Оформлятор модулей 1С — инструмент для автоматизации работы с исходным кодом 1С как с данными. Он позволяет:
- Форматировать код, расставлять области (можно расширять форматтер под ваши регламенты, стандарты 1С и т.д.).
- Документировать методы при помощи LLM (вам остается проверить, поправить при необходимости).
- Анализировать код (в том числе строить граф вызовов, находить используемые поля и пр.).
- Перетаскивать функционал из других конфигураций, переводить язык синтаксиса и решать иные «точечные» задачи автоматизации. Но для этого нужно разрабатывать свои дополнительные компоненты (под ваши конерктные задачи).
Проект реализован целиком на языке 1С, поэтому любой разработчик 1С может изучить и доработать его под свои нужды без необходимости в освоении дополнительных стеков.
Что есть уже сейчас:
- Парсинг кода в структуры нескольких уровней абстракции:
- Токенизация.
- Построение абстрактного синтаксического дерева (АСД).
- Формирование структуры модуля (области, переменные, сигнатуры методов с информацией из документации в комментарии над методом). Это основное представление для дальнейших операций.
- Анализ связей в коде (например, вызовы методов, используемые поля и т.д.).
- Расстановка стандартных областей в модуле и автоматическое распределение по ним методов.
- Документирование методов с использованием LLM (есть режим где не нужен ключ API, но ограниченный - не более 15 тыс. символов в одном запросе и ограничения по количеству запросов в минуту).
- Формирование текста модуля на основании структуры данных (дерева) модуля.
Наиболее распространённый процесс «оформления» модуля выглядит так:
- Копирование модуля из Конфигуратора 1С: открыть нужный модуль, Ctrl + A, затем Ctrl + C.
- Разбор модуля в «Оформляторе»:
- В инструменте выбрать «Добавить модуль» → «Из текста».
- Вставить скопированный текст (Ctrl + V).
- Нажать «Разобрать».
- Расстановка областей: меню «Действия» → «Расстановка областей».
- Генерация документации для методов (если требуется):
- Клик правой кнопкой на области «ПрограммныйИнтерфейс» → «Документирование (с настройкой)...» → «Генерировать описание».
- Проверить описание, при необходимости внести правки и сохранить.
- Формирование итогового текста модуля: «Действия» → «Сформировать тексты модулей...».
- Копирование результата обратно в Конфигуратор.
- build/ — содержит готовый файл расширения (.cfe).
Скачайте этот файл и подключите его в свою конфигурацию 1С (начиная с платформы 8.3.14 и выше). - src/ — содержит исходники в формате XML (выгрузка 1С).
Если вам достаточно пользоваться готовым функционалом, просто используйте .cfe из папки build
.
Основные модули и компоненты «Оформлятора»:
-
ОМ_Парсер_* — обработки для токенизации и разбора модуля в АСД.
Основаны на проекте bsparser (автор, если не ошибаюсь: tsukanov-as).
В моём форке добавлена поддержка современных конструкций встроенного языка 1С, таких как Асинх, Ждать и др. -
ОМ_ОформляторМодулей — основная интерфейсная форма, к которой подключаются остальные обработки. В модуле менеджера находится программный интерфейс для разбора, анализа и формирования структур данных модуля.
-
ОМ_Компонент_* — вспомогательные компоненты, вызываемые из основной формы. Реализуют логику расстановки областей, формирования итогового текста, документирования методов и другие функции.
- Минимальная версия платформы 1С: 8.3.14.
Проект открыт для вкладов сообщества. Будем рады вашим идеям и исправлениям:
- Ознакомьтесь с CONTRIBUTING.md.
- Создайте Issue в GitHub с предложением или проблемой.
- Оформляйте Pull Request с доработками — мы обязательно посмотрим и обсудим.
Если у вас возникли вопросы или предложения, смело пишите в GitHub Issues.
- Email: vladimir.v.harin@gmail.com
- Telegram: @vladimir_kharin
- Канал автора: https://t.me/prosto_pro1c
Проект распространяется по лицензии MIT. Подробности см. в файле LICENSE.