Автодокументирование кода

12.05.26

Разработка - Инструментарий разработчика

Обработка для автодокументирования кода. На входе получает размеченный по разделам и областям код 1С. На выходе выдаёт html-страничку документации с функциональными возможностями кода, последовательностью вызова (UML) и описанием процедур и функций программного интерфейса.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка автодокументирования кода
.zip 202,37Kb
2 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Разметка кода

Свой код я размечаю по разделам:

  • Функциональные возможности
  • Обработчики событий
  • Служебные операции

Внутри раздела могут быть как области кода, объединённые директивами #Область / #КонецОбласти, так и отдельные процедуры / функции.

Пример 1:

 

 

Пример 2:

 

 

Пример 3:

 

 

Выглядит наглядно: можно бегло оценить код.

 

Автогенерация веб-страницы документации кода

Но я решил пойти дальше и написал обработку, генерирующую веб-страницу документации для кода.

Состав страницы:

  • Функциональные возможности: диаграмма прецедентов UML, собранная из раздела кода "ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ"
  • Программный интерфейс: диаграмма классов UML, автоматически собираемая из всех операций кода. Операции группируются по разделам ("ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ" / "ОБРАБОТЧИКИ СОБЫТИЙ" / "СЛУЖЕБНЫЕ ОПЕРАЦИИ") и областям кода (обрамление метками #Область / #КонецОбласти);
  • Далее следуют разделы описания функциональных возможностей. Для каждой функциональной возможности заполняются:
    • Последовательность вызова кода: автоматически генерируемая диаграмма последовательности UML для операций, относящихся к данной функциональной возможности. Если в операциях есть комментарии, они также попадут на диаграмму.
    • Описание операций кода: таблица с колонками "операция" и "назначение". Назначение операции автоматически описывается нейросетью. При отсутствии подключения к нейросети назначение остаётся пустым.
  • После описания функциональных возможностей идёт описание операций кода разделов "ОБРАБОТЧИКИ СОБЫТИЙ" и "СЛУЖЕБНЫЕ ОПЕРАЦИИ". Структура таблицы такая же, как в описании операций кода функциональной возможности.

 

Пример страницы автодокументации

Функциональные возможности

 

 

Программный интерфейс

 

 

Функциональная возможность "Формирование документации"

Последовательность вызова кода

 

 

Описание операций кода

 

Операция Назначение
СформироватьДокументацию() Назначение данного кода на языке 1С:

* Вызов функции СформироватьДокументациюНаСервере для получения исходных данных или структуры документации в формате Markdown.
* Вызов функции MarkdownКлиент.СформироватьHTML, которая преобразует полученные данные в формат HTML, пригодный для отображения в интерфейсе.
* Переключение активной страницы формы на страницу предварительного просмотра (СтраницаПросмотр) для демонстрации пользователю сгенерированного HTML-содержимого.
СформироватьДокументациюНаСервере() * Анализ исходного кода на 1С для поиска специальных разделов, помеченных комментариями.
* Автоматическая генерация документации на основе найденных областей кода.
* Создание PlantUML-диаграмм прецедентов (use case) для отображения функциональных возможностей.
* Формирование диаграмм классов для визуализации программного интерфейса.
* Генерация диаграмм последовательности для отдельных операций.
* Автоматическое создание таблиц с описанием операций и соответствующих им алгоритмов.
* Организация и структурирование собранной информации в текстовый документ для дальнейшего использования (например, в качестве веб-страницы или документации).
СформироватьДиаграммуПоследовательности() * Формирование исходного кода для PlantUML-диаграммы последовательности.
* Инициализация структуры данных для представления функциональных операций и связей между ними.
* Анализ вызовов методов в коде для определения последовательности взаимодействий.
* Выявление точек входа, с которых начинается выполнение бизнес-логики.
* Построение связей между пользователем и программным кодом на диаграмме.
* Рекурсивное описание вложенных вызовов операций для визуализации детального процесса.
* Форматирование выходных данных в соответствии с синтаксисом @startuml и @enduml.
ДобавитьПереносыСтрокВСлишкомДлинныеНаименования() Назначение представленного кода на языке 1С:

* Функция принимает строку (наименование) и разбивает её на несколько строк, если длина общего текста превышает заданное количество символов.
* Основная цель — обеспечить автоматический перенос длинных наименований на новую строку для удобства отображения, например, в печатных формах или интерфейсе.
* Алгоритм разбивает исходную строку на отдельные слова, используя пробел как разделитель.
* В процессе обработки происходит подсчет длины накопленной строки.
* Если добавление следующего слова превышает установленный лимит символов (по умолчанию 30), функция вставляет символ переноса строки.
* Если лимит не превышен, слова объединяются в одну строку через пробел.
* На выходе функция возвращает преобразованную строку, содержащую символы переноса в тех местах, где длина сегмента текста превысила заданный порог.
ОписатьОперациюДиаграммыПоследовательности() * Генерация кода диаграммы последовательности (вероятно, в формате PlantUML) на основе программного кода 1С.
* Поиск и анализ взаимосвязей между методами (вызываемые операции) внутри исходного кода.
* Рекурсивное построение иерархии вызовов для отображения на диаграмме.
* Обработка комментариев в коде (строки, начинающиеся с //) для их отображения в виде примечаний (note) на диаграмме.
* Форматирование длинных строк с именами методов или примечаний для корректного отображения внутри блоков диаграммы.
* Использование регулярных выражений для поиска вызовов методов внутри текста программы.
* Управление отображением активации объектов на диаграмме с помощью команд активации и деактивации (activate/deactivate).
ПолучитьОписаниеОперации() * Функция объявляется с именем ПолучитьОписаниеОперации и принимает на вход параметр Операция.
* В коде предусмотрен закомментированный блок отладки, который позволяет принудительно вернуть пустую строку.
* Основная логика заключается в обращении к внешней интеграции ИнтеграцияAITunnel для отправки запроса в нейросеть.
* В нейросеть передается промпт с инструкцией описать алгоритм работы кода маркированным списком простого текста, а также поле Код из входящего объекта Операция.
* Полученный от нейросети ответ подвергается обработке: символы переноса строки (Символы.ПС) заменяются на тег HTML-разметки 
, чтобы сохранить форматирование при выводе.
* Обработанная строка с описанием возвращается в качестве результата выполнения функции.
ПолучитьОбласти() * Функция предназначена для парсинга входного текста и поиска в нем выделенных блоков, ограниченных метками #Область и #КонецОбласти.
* С помощью регулярного выражения функция извлекает наименование области и ее внутреннее содержимое.
* Найденные области преобразуются в структуры, содержащие имя области и список операций, полученных через вызов сторонней функции ПолучитьОперации.
* Обработанные блоки удаляются из исходного текста, чтобы продолжить поиск следующих вхождений в цикле.
* После завершения цикла функция проверяет наличие оставшихся операций за пределами блоков и добавляет их в итоговый массив в виде отдельной структуры с пустым наименованием.
* На выходе функция возвращает массив, состоящий из всех найденных структур областей с их операциями.
ПолучитьОперации() * Функция предназначена для поиска и извлечения объявлений процедур и функций из переданного текста.
* Инициализируется пустой массив для хранения результатов поиска.
* Используется регулярное выражение для идентификации ключевых слов "Процедура" или "Функция", поиска их имен и содержимого параметров вплоть до ключевого слова "КонецПроцедуры".

 

ОБРАБОТЧИКИ СОБЫТИЙ

 

Операция Назначение
ПриСозданииНаСервере() Данный фрагмент кода на языке 1С выполняет следующие действия при открытии формы:

* Устанавливает активной вкладку «СтраницаКод» в элементе управления «Страницы», чтобы при открытии формы пользователь сразу видел эту страницу.
* Вызывает процедуру «ИнициализироватьРендерHTMLИзMarkdown()», которая, вероятно, подготавливает инструменты для преобразования или отображения Markdown-разметки в формате HTML.

 

СЛУЖЕБНЫЕ ОПЕРАЦИИ

 

Операция Назначение
ИнициализироватьРендерHTMLИзMarkdown() * Данная процедура под названием "ИнициализироватьРендерHTMLИзMarkdown" служит для подготовки среды отображения контента.
* Код выполняет инициализацию переменной "ДокументHTML", вызывая для этого специальный метод "ПодготовитьПолеПромежуточногоHTML" из общего модуля "MarkdownСервер".
* Основное назначение этого фрагмента — настроить поле, которое в дальнейшем будет использоваться для конвертации или отображения Markdown-разметки в формате HTML.

 

Используемая модель нейросети и цена вопроса

В качестве модели нейросети я использую "gemini-3.1-flash-lite-preview". Она недорогая. Генерация веб-страницы выше обошлась менее, чем в рубль. Но в то же время "gemini-3.1-flash-lite-preview" выдаёт качественные ответы.

Для обращения к нейросети я использую агрегатора aitunnel.ru. Нейросети от Google (gemini), как и многие другие, официально не предоставляются в России. Обратиться к ним можно только через посредников-агрегаторов нейросетей.

 

Версия платформы

Тестировалось на версии платформы 1С 8.3.27.1936.

Вступайте в нашу телеграмм-группу Инфостарт

база знаний markdown памятка справка PlantUML UML чеширский кот нейросеть GigaChat wiki говорящая вики DeepWiki документация зазеркалье ИИ AI вики блокнот заметки ТЗ

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    67460    356    163    

310

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    257887    1426    421    

1163

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    54000    111    29    

122

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    38024    100    46    

121

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    25100    92    44    

102

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3490    12    1    

15

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки. 1.3.11 Доработан механизм контекстной подсказки по метаданным

9500 руб.

17.05.2024    52711    182    63    

215
Комментарии
Подписаться на ответы Инфостарт бот МАКС МАКС бот Сортировка: Древо развёрнутое
Свернуть все
1. sapervodichka 7550 12.05.26 22:55 Сейчас в теме
Привет, пошли годные ИИ продукты. Красота +1. (Так и надо!)
chuprina_as; +1 Ответить
2. chuprina_as 273 13.05.26 00:23 Сейчас в теме
(1) Спасибо большое! =)
Для отправки сообщения требуется регистрация/авторизация