Skill для ИИ, который научил его отлаживать 1С: смотреть переменные, идти по шагам и глубже разбирать код
Переносимый runtime-пакет и skill для ИИ, с которыми агент может не только читать исходники 1С, но и запускать live-отладку, видеть реальные значения переменных, вычислять выражения и разбирать поведение кода на исполнении.
Что это за продукт
Это готовый переносимый комплект из runtime-пакета и skill для ИИ. Его можно перенести на другой компьютер без установки среды разработки самого инструмента. Главная практическая ценность в том, что отладка становится доступна не только человеку, но и ИИ: агент через skill получает понятный способ запускать сессию, ставить точки останова, читать стек, смотреть переменные, вычислять выражения и собирать технические артефакты через shell-команды.
Обычно ИИ при работе с 1С видит только текст исходников. Этого хватает для поверхностного анализа, но не хватает для уверенной диагностики поведения: почему ветка пошла не туда, что реально лежит в переменной, как изменяется значение в цикле, какой объект пришел в параметр, где именно расходится ожидание и факт. Когда у ИИ появляется доступ к live-отладке, он перестает гадать по коду и начинает опираться на фактическое выполнение.
Важно, что источник кода для ИИ здесь вполне конкретный: это проект с исходниками или актуальный dump конфигурации 1С, лежащий на машине. Runtime не "берет отладку из воздуха". Launch-конфиг связывает пакет с конкретной базой и с конкретными исходниками, а breakpoints ставятся по реальным файлам и строкам этого проекта или дампа. Поэтому ИИ анализирует тот же код, к которому потом привязывается живая остановка в отладке.
Процедура ПередНачаломРаботыСистемы(Отказ)
Товар = Неопределено;
Количество = 100;
Число = "Число";
ПроизвольнаяПеременная = "ПроизвольнаяПеременная";
Цена = 1500.50;
Если Товар <> Неопределено Тогда
Сумма = Количество * Цена;
Сообщить("Итого: " + Сумма);
КонецЕсли;
ГСВ = Новый ГенераторСлучайныхЧисел();
Для Индекс = 1 По 10 Цикл
оп = ГСВ.СлучайноеЧисло(1, 100);
ПроизвольнаяПеременная = "ПроизвольнаяПеременная" + оп;
Сообщить(Индекс);
КонецЦикла;
Сообщить("1");
Сообщить("2");
КонецПроцедуры
Ключевой момент здесь именно в связке двух частей. Runtime-пакет дает техническую возможность отладить 1С, а skill объясняет ИИ, как этим пользоваться: какую команду запустить, где лежит конфиг, как снять стек, как прочитать переменные, как сделать watch по выражению и как корректно завершить сессию.
Live-отладка
ИИ может запустить сессию, остановиться на breakpoint и работать уже не с догадками, а с живым состоянием программы.
Переменные и выражения
Доступны стек, локальные переменные, дочерние значения, вычисление выражений и точечное наблюдение за отдельной переменной.
Переносимый пакет
Решение можно перенести на другой ПК и использовать как готовый универсальный runtime для разработчика и для AI-агента.
Главный результат
ИИ теперь умеет не просто читать код 1С, а отлаживать его через подключенный skill: останавливаться на нужной строке, смотреть реальные значения, проходить код по шагам и использовать полученные данные, чтобы разбираться в прикладной логике глубже и точнее.
Что именно умеет ИИ с этим пакетом
После подключения пакета ИИ получает не абстрактный доступ к "отладке вообще", а набор конкретных технических возможностей.
- запуск отлаживаемой сессии 1С в режиме
launch; - установка breakpoints по файлу и строке;
- получение списка thread'ов и стека вызовов;
- чтение локальных переменных и вложенных значений;
- вычисление выражений в текущем контексте;
- пошаговое выполнение через
continue,next,step-in,step-out; - съем отчетов по шагам и наблюдение за отдельной переменной или выражением;
- повторная работа с уже поднятой debug-сессией без нового cold launch.
То есть ИИ может не только сказать "здесь, вероятно, проблема", но и подтвердить это отладкой: показать, что именно пришло в переменную, как оно изменилось, где пошло расхождение и на каком шаге поведение стало отличаться от ожидаемого.
ПроизвольнаяПеременнаяНиже пример того, что ИИ получает не в виде догадки по коду, а в виде фактического результата отладочного прогона. В этом сценарии агент следил за выражением ПроизвольнаяПеременная и собрал все изменения значения по остановкам.
| Шаг | Строка | Код | Новое значение |
|---|---|---|---|
| 1 | 7 | Цена = 1500.50; |
"ПроизвольнаяПеременнаяИсходное" |
| 2 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная27" |
| 3 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная40" |
| 4 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная96" |
| 5 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная76" |
| 6 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная47" |
| 7 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная84" |
| 8 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная59" |
| 9 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная46" |
| 10 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная19" |
| 11 | 18 | Сообщить(Индекс); |
"ПроизвольнаяПеременная20" |
То есть ИИ видит не просто сам факт цикла, а конкретную последовательность значений, которые реально возникли во время исполнения. Именно за счет этого он может объяснять поведение кода уже на уровне факта, а не гипотезы.
Почему это особенно полезно при разработке с ИИ
Когда ИИ работает только по статическому коду, он ограничен предположениями. Он видит структуру модуля, имена процедур и возможные ветки, но не видит фактическое состояние программы. В 1С это особенно заметно, потому что поведение часто определяется данными, контекстом вызова, составом объектов, состоянием коллекций и значениями, которые появляются только во время исполнения.
Из-за этого без live-отладки ИИ часто вынужден строить гипотезы: возможно, здесь Неопределено, возможно, параметр пришел пустой, возможно, цикл отрабатывает иначе, возможно, ветка не выполняется из-за состава данных. С отладкой эти гипотезы можно тут же проверить.
Меньше догадок
ИИ опирается на реальные значения переменных и фактический маршрут выполнения, а не только на предположения по тексту кода.
Глубже анализ прикладной логики
Можно разбирать не только синтаксис, но и реальное поведение бизнес-логики: как формируются значения, где меняется состояние, почему срабатывает именно эта ветка.
Лучше помощь в расследовании
ИИ может собрать технический отчет по остановкам, значениям и переходам, а затем уже на его основе предлагать исправление.
Удобнее повторяемая работа
Пакет годится не только для одного разбора, но и для серийных прогонов, smoke-проверок и повторного анализа того же участка кода.
Что меняется в практике
ИИ перестает быть только помощником по чтению исходников и становится помощником по реальной диагностике. Он может пройти по исполнению, увидеть значения и использовать их, чтобы точнее объяснить проблему, предложить исправление или подтвердить, что подозреваемый участок действительно ведет себя неправильно.
Как подключить это как skill к своему ИИ
С практической точки зрения схема подключения очень простая. На целевой машине нужны две части: runtime и skill.
- Распаковать runtime-пакет рядом с рабочим проектом или в отдельную служебную папку.
- Заполнить launch-конфиг: пути к платформе 1С, параметры базы, рабочую директорию, логин и пароль, breakpoints при необходимости.
- Скопировать папку skill в каталог skills того ИИ или агентной среды, через которую планируется работа.
- Убедиться, что ИИ через skill видит доступные команды и может вызывать shell-команды на этой машине.
- После этого ИИ можно давать уже прикладные задачи: запусти отладку, покажи стек, прочитай переменные, отследи выражение, собери отчет по остановкам.
То есть сам skill не содержит внутри отладчик. Skill - это пользовательский слой, который учит ИИ правильно пользоваться уже поставленным runtime-пакетом.
Если говорить совсем коротко, то подключение выглядит так: сначала кладем runtime на машину, потом подключаем skill к ИИ, после этого ИИ начинает пользоваться отладчиком как рабочим инструментом.
onec_debug_adapter.exe, onec_debug_cli.exe и launch-конфиг.smoke, stack, variables, watch, session-start.Минимальная схема подключения
Чтобы человек сразу понял, как этим пользоваться, схему можно свести к трем сущностям:
runtime/- папка сonec_debug_adapter.exe,onec_debug_cli.exeи launch-конфигом;skill/- папка skill, которую нужно подключить к своей AI-среде;launch.template.json- файл, где прописываются пути к 1С, параметры базы, путь к исходникам и breakpoints.
Практически это выглядит так: runtime кладется на машину, рядом лежит проект или dump исходников 1С, skill подключается в среду ИИ, launch-конфиг настраивается под конкретную базу и путь к исходникам, после чего ИИ уже может вызывать готовые команды и работать с отладкой.
Для пользователя это означает, что он подключает не "абстрактную интеграцию", а вполне понятный набор: папка с инструментом, папка со skill, проект или dump исходников и файл конфигурации запуска.
onec_debug_ai_ready_package/
runtime/
bin/
onec_debug_adapter.exe
onec_debug_cli.exe
configs/
launch.template.json
dart_sources/
bin/
lib/
test/
pubspec.yaml
skill/
onec-dap-debugging/
SKILL.md
references/
agents/
03_PACKAGE_CONTENTS.md
Что должен уметь ИИ, чтобы это заработало
Со стороны ИИ здесь не требуется специальная магия. Нужны три базовые возможности:
- уметь подключать локальный skill;
- уметь запускать shell-команды на машине, где лежит runtime;
- уметь читать файлы-артефакты: JSON, markdown-отчеты и конфигурацию запуска.
Если агентная среда это поддерживает, то дальше она может использовать наш skill как обычный рабочий инструмент. Отдельный DAP-клиент ИИ писать не нужно, потому что большая часть прикладной работы уже закрыта готовыми CLI-командами.
Какой запрос потом можно дать ИИ
После подключения skill пользователь может ставить ИИ уже прикладные задачи в естественной форме. Например:
"Запусти отладку 1С по текущему launch-конфигу, остановись на breakpoint, покажи стек вызовов, выведи значения локальных переменных и отдельно отследи, как меняется переменная Сумма по шагам."
Или другой пример:
"Подними warm session, вычисли выражение по текущему контексту, проверь значение параметра в точке остановки и собери markdown-отчет по всем изменениям переменной."
Как устроен пользовательский контур
Пакет построен как универсальный runtime. На целевой машине лежат готовые исполняемые файлы, launch-конфиг и документация. Внешняя автоматизация работает через CLI-команды, а при необходимости можно использовать и DAP-слой как техническую основу для отдельного IDE-клиента.
С точки зрения эксплуатации это удобно по нескольким причинам:
- не требуется отдельная разработческая среда для самого инструмента;
- можно запускать пакет на другом ПК как готовое решение;
- одни и те же команды подходят для человека, shell-сценария и AI-агента;
- конфигурация хранится в одном launch JSON, а не размазана по разным ручным настройкам.
За счет этого решение позиционируется не как внутренняя заготовка, а как самостоятельный универсальный продукт: переносимый runtime плюс skill, через который ИИ получает доступ к live-отладке 1С.
onec_debug_ai_ready_package/
runtime/
bin/
onec_debug_adapter.exe
onec_debug_cli.exe
configs/
launch.template.json
dart_sources/
bin/
lib/
test/
pubspec.yaml
skill/
onec-dap-debugging/
SKILL.md
references/
agents/
01_INSTALLATION.md
02_HOW_IT_WORKS_AND_CONFIG.md
03_PACKAGE_CONTENTS.md
README_FIRST.md
Что входит в поставку
runtime/bin/onec_debug_adapter.exe- отладочный адаптер;runtime/bin/onec_debug_cli.exe- CLI для shell и AI-сценариев;runtime/configs/launch.template.json- шаблон launch-конфига;dart_sources/- исходники проекта на Dart:bin,lib,test,pubspec.yamlи сопутствующие файлы;- папка skill для подключения к ИИ или агентной среде;
- документация по запуску и диагностике;
03_PACKAGE_CONTENTS.md- отдельный файл состава поставки с кратким назначением каждого элемента;- готовый zip-пакет для переноса на другой компьютер.
Целевая машина не требует установки Dart SDK. Достаточно платформы 1С, доступа к базе, самого runtime-набора и подключенного skill в той AI-среде, через которую планируется работа.
Поддерживаемые возможности
Launch-режим
Текущая версия ориентирована на стабильный launch-сценарий для запуска live-отладки.
Breakpoints и step-команды
Доступны breakpoints, continue, next, step-in, step-out и корректное завершение сессии.
Stack, variables, evaluate
Можно получать стек, локальные значения, дочерние элементы и результаты вычисления выражений.
Watch и warm session
Можно следить за конкретным выражением и повторно выполнять команды по уже живой debug-сессии.
На чем тестировалось и для каких конфигураций подходит
Пакет тестировался на платформе 1С:Предприятие 8.3.27.1936.
При этом решение не привязано к какой-то одной прикладной конфигурации. Оно рассчитано не на конкретную базу, а на универсальный launch-сценарий отладки 1С. Поэтому при корректно заполненном launch-конфиге, доступной платформе, рабочей базе и актуальных исходниках пакет может использоваться с любой конфигурацией 1С.
Иными словами, ограничение здесь идет не по прикладной конфигурации, а по техническим условиям запуска: версия платформы, доступность dbgs.exe, корректные параметры базы и наличие проекта или dump исходников для привязки breakpoint'ов.
Технический стек и ориентир по реализации
Технически пакет построен на собственном DAP-адаптере и CLI-клиенте. Внутри используется стек, ориентированный на RDBG HTTP/XML и automation-friendly работу через shell-команды.
- основная реализация выполнена на Dart;
- снаружи пакет отдает DAP-интерфейс и CLI-команды;
- взаимодействие с 1С идет через
dbgs.exeи отладочный HTTP/XML слой платформы; - для проектирования и сверки поведения в качестве "настольной книги" использовался open-source проект akpaevj/onec-debug-adapter.
Это важно именно как честное позиционирование: речь не о перепаковке чужого решения, а о собственной реализации, которую мы строили, постоянно сверяясь с уже существующим рабочим open-source ориентиром.
Ограничения текущей версии
- целевая платформа текущей версии - Windows;
- основной рабочий сценарий текущей версии -
launch; - для надежной привязки breakpoint'ов нужен актуальный dump исходников;
- cold start ограничен реальным запуском 1С и attach debug target;
- локальные защитные средства, включая агрессивный антивирус, могут мешать EXE и session-daemon.
То есть это уже рабочий инструмент для практического использования, но с четко обозначенными рамками текущей фазы.
Итог
Главная ценность этого решения в том, что ИИ получает доступ к реальной отладке 1С через понятный ему skill. Он может не только читать модуль, но и видеть, что в нем происходит на исполнении: где остановилась программа, какие значения лежат в переменных, как они меняются и почему код ведет себя именно так.
Для разработки с использованием искусственного интеллекта это качественный шаг вперед. Чем меньше ИИ вынужден гадать по исходнику и чем больше он видит фактическое состояние программы, тем полезнее его помощь в расследовании проблем, объяснении поведения кода и подготовке следующих изменений.
- если нужен переносимый пакет для live-отладки 1С на другом ПК, это уже готовый рабочий вариант;
- если нужно, чтобы ИИ реально пользовался этой отладкой, пакет уже дополнен skill-слоем для подключения к агенту;
- если ИИ должен не просто читать код, а реально помогать разбираться в нем глубже, ключевая часть уже закрыта;
- если дальше понадобится отдельный IDE-слой, текущий runtime можно использовать как техническую основу для будущего плагина.
Вступайте в нашу телеграмм-группу Инфостарт