Как использовать интерактивную консоль кода в 1С для отладки и вычислений?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Ограничения стандартного Конфигуратора и функции Выполнить()

Прежде всего, разберем техническую причину, почему в 1С нет встроенной «классической» консоли с точками останова. Когда мы используем встроенные функции Выполнить() или Вычислить(), платформа компилирует переданную строку текста в бинарный код непосредственно в оперативной памяти. Поскольку у этого фрагмента кода нет физического файла-источника на диске, отладчик 1С не может «привязаться» к строкам внутри этого текста.

Проанализируем ситуацию: если вы напишете в окне «Вычислить выражение» (Shift+F9) сложный алгоритм, вы не сможете «зайти» внутрь него по клавише F11. Единственный способ заставить отладчик работать внутри динамического кода — это сохранить его во внешний файл (внешнюю обработку) и подключить его к сеансу.

Использование консоли кода в составе «Инструментов разработчика» (ИР)

Одним из самых эффективных решений является использование подсистемы «Инструменты разработчика». Рассмотрим, как она решает проблему отладки:

  1. Прозрачная генерация внешней обработки: Когда вы вводите код в «Консоль кода» ИР и нажимаете кнопку отладки, инструмент автоматически создает временную внешнюю обработку на диске.
  2. Инъекция кода: Ваш текст помещается в модуль этой обработки.
  3. Запуск в контексте: Инструмент открывает эту обработку в режиме Предприятия. Поскольку у обработки теперь есть файл, Конфигуратор позволяет расставлять в ней точки останова и полноценно использовать F10/F11.

Рассмотрим пример кода, который можно быстро протестировать в такой консоли:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10 Ссылка ИЗ Справочник.Номенклатура";
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого Строка Из Результат Цикл
    Сообщить(Строка.Ссылка);
КонецЦикла;

Подобный подход позволяет избежать «замусоривания» конфигурации временными объектами и ручного создания файлов через «Файл — Новый».

Интерактивная отладка через Enterprise Development Tools (EDT)

Если вы используете современную среду разработки EDT (на базе Eclipse), возможности интерактивной работы значительно расширяются. Рассмотрим инструменты, доступные в EDT:

Использование VS Code и OneScript для тестирования алгоритмов

Для разработчиков, предпочитающих легкие редакторы, существует связка VS Code с расширениями для 1С. Выясним, как это помогает в интерактивной разработке:

Если ваш код не требует обязательного наличия базы данных (например, это сложная обработка строк, работа с массивами или расчет математических моделей), можно использовать OneScript. В нем есть встроенный интерактивный режим, который запускается командой oscript -i. Это полноценная консоль, где вы вводите строку кода и сразу видите результат.

Для интеграции с реальной базой данных в VS Code применяются инструменты типа HotReload. Разберем принцип их работы: вы редактируете код во внешнем файле, и при сохранении инструмент автоматически обновляет исполняемый код в запущенном сеансе 1С через механизмы расширений или временных обработок, позволяя мгновенно видеть изменения без перезагрузки.

Модификация данных «на лету» через окно «Вычислить выражение»

Многие программисты забывают о мощном скрытом функционале стандартного окна Shift+F9. Его можно использовать не только для чтения, но и для интерактивного изменения состояния программы. Рассмотрим пример: вы остановились на точке останова и поняли, что переменная СтатусДокумента имеет неверное значение, из-за чего алгоритм пойдет по ложному пути.

Вместо перезапуска отладки, введите в окне «Вычислить выражение» команду присваивания:

Объект.Статус = Справочники.Статусы.Согласовано

Нажмите «Вычислить». Платформа исполнит это выражение и изменит значение свойства объекта в памяти. Проанализируем результат: теперь при дальнейшем выполнении по шагам программа пойдет по нужной ветке условия Если. Это простейшая форма интерактивной консоли, доступная «из коробки» в любом Конфигураторе.

Специализированные инструменты (Vanessa-ADD и ScriptRunner)

Для более продвинутых сценариев, таких как автоматизированное тестирование или массовая обработка данных скриптами, используйте специализированные консоли:

Подведем итог: хотя в классическом Конфигураторе 1С нет одной кнопки «Открыть консоль», мы можем достичь того же результата несколькими путями. Для быстрой правки данных используем Shift+F9, для полноценной разработки и отладки алгоритмов — «Консоль кода» из состава ИР или возможности EDT. Использование этих инструментов значительно повышает скорость разработки и позволяет глубже анализировать поведение системы в динамике.

← На главную