Отладка в 1С Предприятие

Отладка — процесс обнаружения, локализации и устранения ошибок в программе. В конфигураторе 1С Предприятия присутствует собственный инструмент для отладки, который помогает разработчику одновременно увеличить скорость разработки, качество программного кода и его эффективность.
О том, как включить отладку по протоколу TCP-IP/HTTP описано в статье
Начало отладки
Открываем 1С Предприятие в режиме конфигуратора, в строке меню выбираем пункт «Отладка».
![]()

Далее необходимо выбрать режим работы отладчика.
По умолчанию кнопка «Начать отладку» запускает отладку под тонким клиентом, но также существуют и другие режимы:

После запуска отладки иконка
изменится на
. Также изменится и список с доступными инструментами отладки.

Чтобы убедиться в подключении предметов отладки необходимо в списке с инструментами выбрать пункт «Подключение…» Откроется форма с подключенными предметам отладки.

Опишем доступные инструменты на данном этапе:

Точки останова
Точка останова – это точка, прерывающая выполнение программы и производящая вызов отладчика в том месте, в котором она стоит. После вызова отладчика разработчик может исследовать состояние программы, анализировать программный код, значения переменных, просматривать стек вызовов и многое другое. Разработчик может в любое время работы отладки и в любом месте модуля выбрать где поставить точку.
Всего в конфигураторе возможно установить 3 разных точки останова, они отличаются по внешнему виду и предназначению. Также есть точка исполнения текущего предмета отладки, которая показывает исполняемый на данный момент участок кода. Выглядят они следующим образом:
включенная точка – произойдет остановка в указанном месте (если для этого соблюдены условия в программном коде)
точка с условием – остановка произойдет по заданному условию (условие задается в конфигураторе)
отключенная точка – остановка в указанном месте не произойдет
точка исполнения текущего предмета отладки – стрелка указывает на исполняемый на данный момент участок кода

В конфигураторе также есть возможность отключить все точки останова или же вывести их список, в котором возможно групповое редактирование.

Примеры работы:
В каркасной конфигурации для примера был создан документ «Начисление зарплаты». Для отладки используем обработку проведения. Документ состоит из табличной части на основании которой будут делаться движения в регистре расчета. Обработка проведения и документ выглядят следующим образом:


Для синей точки необходимо указать условие, по которому отладчик должен остановиться, иначе эта точка будет проигнорирована как серая (неактивная) точка. Нажимаем правой кнопкой мыши по синей точке и в контекстном меню выбираем пункт «Точка останова с условием…»
В открывшемся окне задаем нужное условие для вызова отладки.

В нашем примере остановка будет происходить на той итерации цикла, когда наименование реквизита табличной части «Сотрудник» будет равно «Лоханкина».

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

Подсветка значений переменных при наведении курсора – по умолчанию встроенная в конфигуратор возможность просмотреть значение переменной с помощью наведения курсора мыши.

Вычислить выражение – используется для вычисления значений выражений в момент отладки, выполнение выражений происходит в реальной системе, например, возможно изменить номер документа во время отладки.
Открываем окно «Выражение», поскольку наш документ в системе существует, значит у него есть ссылка. В поле «Выражение» пишем «Ссылка» и нажимаем кнопку «Рассчитать».

Попробуем во время отладки отменить проведение документа. Для этого в поле «Выражение» пишем «Отказ» и рассчитываем выражение с помощью одноименной кнопки.

В таблице «Результат» выбираем строку в которой хотим изменить значение, нажимаем кнопку
.Откроется окно ввода выражения, прописываем «Истина» (тем самым изменяем текущее значение «Ложь») и нажимаем кнопку «Установить».

Система оповещает нас об успешном выполнении операции. После работы в отладчике документ проведен не будет, об этом нам сообщит система сама.

Табло – окно, используемое для просмотра значений переменных и вычислений значений.
Нужное значение добавить в табло можно используя окно выражения. Достаточно нажать кнопку «Включить в табло» выбрав нужную строку в таблице.

Внешний вид окна «Табло»

Можно открыть до 4 таких окон одновременно. Для этого в окне табло вызываем контекстное меню и выбираем пункт «Закладки». Появляются вкладки для выбора нужного окна. В каждом из них возможно хранить разные значения.

Локальные переменные – окно, показывающее переменные внутри исполняемой на данный момент процедуры или функции в режиме отладки.

Стек вызовов – окно, позволяющее отслеживать вызовы процедур и функций, которые привели к вызову отладки, а также осуществлять переход по истории вызова с просмотром значений переменных, существующих в тот или иной момент времени.Для примера изменим модуль объекта нашего документа добавив в обработку проведения вызов новой процедуры, в которой поставим точку останова и запустим отладку.

После этого открываем стек вызовов.

Знакомая уже нам стрелка показывает текущее место выполнения отладки. Двойным кликом по другой строке мы вернемся в ту процедуру из которой произошел вызов

После этих действий курсор мыши автоматически переместится на то место откуда в модуле произошел вызов.
Замер производительности – функционал, позволяющий измерять скорость выполнения программного кода что помогает анализировать оптимальность и быстродействие системы.
Во время включения замера производительности системой будет выдано предупреждение о том, что замер начнет действовать с момента начала отладки, соглашаемся с системой и запускаем отладку.
Иконка замера производительности станет выделенной
. Выполняем необходимые нам для замера действия и отключаем замер. Сразу после этих действий откроются результаты замера.

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

Для удобства в конфигураторе реализована возможность пошагово перемещаться в модуле, осуществляется это с помощью кнопок:
Шагнуть в – если в строке присутствует процедура или функция, то вы окажетесь внутри нее.
Шагнуть через – чтобы не оказаться внутри процедуры, которая присутствует в строке через нее можно «перешагнуть»
Шагнуть из – оказавшись внутри процедуры или функции отладка, которой вам больше не требуется используйте эту кнопку для выхода из нее
Идти до курсора – отладка остановится там, где установлен курсор мыши
Текущая строка – переход к отлаживаемой строке.
Как включить отладку на сервере 1С
Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
- Как включить отладку на сервере 1С
Включаем отладку на сервере 1С в Windows
Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).

Запускаем Regedit
Затем, в редакторе реестра открываем:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.3 Server Agent (x86-64)
Для версий 8.1 и 8.2 делаем тоже самое, только последняя часть пути будет отличаться в зависимости от версии сервера.

Редактор реестра
После этого в параметре ImagePath (подчеркнут на картинке сверху) добавляем -debug, например было:
«C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»
«C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug

Изменяем ImagePath
И наконец, перезапускаем службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» (названием может отличаться в зависимости от версии сервера).

Перезапускаем агент сервера 1С
Готово — теперь отладка на сервере 1С должна заработать.
Включаем отладку по протоколу HTTP на сервере
Описанные выше операции позволяют включить отладку на сервере по протоколу TCP/IP (это вариант по умолчанию) и в подавляющем большинстве случаев это как раз то, что нужно.
Если же требуется отладка по протоколу HTTP, то нужно сделать все тоже самое, только параметр ImagePath в реестре будет выглядеть по другому.
Если сервер отладки будет запускаться кластером серверов, то к ImagePath нужно добавить -http, например:
«C:\Program Files\1cv8\8.3.13.1513\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug -http
Если используется удаленный сервер отладки, то нужно дополнительно указать адрес этого сервера, порт и пароль (если требуется) добавляя соответствующие параметры — -debugServerAddr, -debugServerPort и -debugServerPwd, например:
«C:\Program Files\1cv8\8.3.13.1513\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug -http -debugServerAddr 192.168.0.170 -debugServerPort 4000
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7.
Подробнее об отладке по протоколу HTTP и о сервере отладки можно прочитать в следующей статье серии.
Включаем отладку на сервере 1С в Ubuntu
В начале становим сервер:
sudo service srv1cv83 stop
После этого открываем от имени суперпользователя файл /etc/init.d/srv1cv83 и находим в нем строку:
И приводим ее к такому виду:
Затем запускаем сервер вновь:
sudo service srv1cv83 start
В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:
- «Устанавливать режим разрешения отладки»
- «Начинать отладку при запуске»
О том, как установить сервер 1С на Ubuntu 16.04/18.04 можно прочитать в этой статье.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



(оценок: 4, средняя оценка: 5,00 из 5)
Режим отладки 1С сервера или как включить Debug
Тема включения режима отладки на сервере 1С весьма актуальна, по ней в сети Интернет написано много интересных статей, но большинство из них не полностью решают проблему. Если перед тобой стоит задача включения режима отладки на сервере 1С, то эта статья несомненно поможет в этом!
Дата публикации: 12.03.2019
Тема включения режима отладки на сервере 1С весьма актуальна, по ней в сети Интернет написано много интересных статей, но большинство из них не полностью решают проблему. Если перед тобой стоит задача включения режима отладки на сервере 1С, то эта статья несомненно поможет в этом!

Из официальных источников мы имеем следующую информацию:
- -tcp ‑ протокол TCP/IP;
- -http ‑ протокол HTTP.
ВАЖНО! Выдержка взята с сайта its.1c.ru.
Думаю, мало кому из нас этого будет достаточно, чтобы без дополнительных источников информации и знаний запустить 1С в режиме отладки.
Допустим, ты отвечаешь за ИТ инфраструктуру и к тебе подходит программист 1С, чтобы попросить запустить 1С в режиме отладки.
Поздравляю! Программист 1С не является доменным администратором и не смог произвести настройку самостоятельно. Вопросы безопасности и чувства самосохранения не на последнем месте.
1С в серверном варианте требует комплексного подхода, который достигается наличием достаточных компетенций у специалистов из разных направлений – программист 1С, системный администратор, администратор баз данных.
И когда речь уже заходит об отладке приложения, универсальные солдаты «тыжсисадмин» и «тыжпрограммист» уже не актуальны. На данном уровне навыки для системного администратора и программиста 1С сильно разнятся и совмещать их, оставаясь профессионалом с большой буквы «П», уже невозможно.
Действующие акции
Как запустить сервер 1С в режиме отладки правильно?
По умолчанию служба агента сервера 1С запускается без режима отладки, так как он уменьшает скорость работы в программе.
Есть несколько вариантов, но рассмотрим самый ходовой – изменение значения параметра реестра Windows.
Открываем реестр на сервере, где установлен сервер 1С.
Переходи по следующему пути:
Имя раздела может отличаться в зависимости от версии сервера 1С – 8.2 / 8.1 или его архитектуры – 32 / 64 битный.
Здесь нас интересует параметр ImagePath, а точнее его значение, которое и надо дополнить ключом «debug».

ПРИМЕЧАНИЕ! В разных статьях указаны различные варианты запуска режима отладки и это может ввести в заблуждение. Ключ «debug» можно добавлять в любое место после «C:\Program Files\1cv8\8.3.13.1644\bin\ragent.exe» и использовать как знак «-», так и «/».
Например, будут одинаково работать:
Первый вариант смотрится предпочтительней.
На выходе должно получиться следующее:
Перезапускаем службу «Агент сервера 1С:Предприятия 8.3 (x86-64)».
Поздравляю – режим отладки включен!
Осталось проверить его работу.
Самый простой способ проверки работы режима отладки 1С на сервере
Если платформа 1С для проведения отладки будет запускаться не на сервере 1С, на стороне клиента должны быть открыты TCP и UDP порты для диапазона 1560-1591.
На стороне сервера должны быть открыты TCP порты 1540, 1541, 1560-1591.
ПРИМЕЧАНИЕ! Эти порты устанавливаются по умолчанию, если вы их меняли, то в фаерволе надо будет открыть новые.
Проверяем работу отладчика:
- Запускаем конфигуратор.
- Заходим в меню «Отладка» — «Начать отладку» или нажимаем клавишу «F5». Запустится платформа 1С в режиме предприятия.
- Не закрывая 1С предприятие, переходим в меню «Отладка» — «Подключение…».
Если столбец «Тип» заполнен значением «Сервер», то всё работает. Идём писать письмо программисту 1С.
ПРИМЕЧАНИЕ! Если сервер и клиент – не один сервер, ставим галочку «Искать предметы отладки на удаленном компьютере»: и указываем сервер 1С.

В блоке «Доступные предметы отладки:» столбец «Тип» должен быть заполнен значением «Сервер». Если у вас так, то всё работает.
Арендуя сервер для 1С в компании МАРС Телеком, вы всегда сможете получить помощь наших технических специалистов по этому и другим вопросам.
Отладка в платформе «1С:Предприятие 8» (бесплатная статья по Программированию в 1С)
из цикла статей «Первые шаги в разработке на 1С»
Это очередная статья из цикла «Первые шаги в разработке на 1С». Она продолжает тему предыдущей статьи, посвященной особенностям работы в конфигураторе.
В этом материале мы рассмотрим специальный инструмент, облегчающий разработку и отладку программного кода на платформе «1С:Предприятие», который получил название Отладчик. Изучив статью, вы узнаете:
- Для чего нужен отладчик и как им пользоваться?
- Что такое точки останова, как и зачем их ставить?
- Как пошагово выполнять программный код и зачем это нужно?
- Где смотреть значения своих переменных, а также вычислять значения выражений?
- Для чего нужен стек вызова и как его посмотреть?
- Как остановить выполнение программного кода по ошибке?
Применимость
В статье рассматривается платформа 1C версии 8.3.4.365. Текущая актуальная версия платформы содержит более богатые механизмы отладки, однако это не делает представленную информацию устаревшей, т.к. все описанные в статье механизмы и приемы отладки остались прежними.
Использование отладчика в системе «1С:Предприятие 8»
Система “1С:Предприятие 8” содержит встроенный отладчик программного кода.
Отладчик – это специальный инструмент Конфигуратора, который позволяет анализировать работу программного кода. В приведенной статье рассматриваются некоторые возможности отладчика, которые чаще всего используются разработчиками.
Для анализа программного кода с помощью отладчика используется специальный инструмент, который называется точка останова.
Точка останова – место остановки работы системы в программном коде, отмеченное специальным маркером (Рис. 1).

Рис. 1. Точка останова
При срабатывании точки останова становится возможным пошаговое выполнение программного кода и анализ значений переменных.
Установка точек останова
Установка точки останова на определенной строке программного кода осуществляется двойным щелчком левой кнопки мыши в левой области программного модуля, которая выделена серым цветом.
Также возможна установка точки останова командой Точка останова на панели инструментов конфигуратора или кнопкой F9. Снятие существующей точки останова производится аналогичным образом.
Для установки точки останова на конец процедуры или функции необходимо устанавливать точку останова на ключевом слове КонецПроцедуры или КонецФункции.
Точку останова можно временно отключить, не удаляя ее из программного кода. Для выключения точки останова выполнить команду Отключить точку останова на панели инструментов или нажать сочетание клавиш Ctrl+Shift+F9.
Для просмотра всех точек останова нужно выполнить команду главного меню Отладка – Список точек останова или нажать сочетание клавиш Alt+F9. В открывшей форме Точки останова можно временно отключать или удалять точки останова (Рис. 2).

Рис. 2. Список точек останова
Для удаления всех точек останова нужно выполнить команду главного меню конфигуратора Отладка – Убрать все точки останова.
Точка останова с условием
Точка останова с условием необходима для остановки выполнения программного кода при срабатывании определенного условия.
Для установки точки останова с условием нужно выполнить команду главного меню конфигуратора Отладка – Точка остановка с условием. Откроется форма Условие останова. В поле ввода нужно ввести необходимое условие (например, значение какой-либо переменной в программном коде) и нажать кнопку ОК (Рис. 3).
После запуска системы в режиме отладки точка останова сработает, когда будет выполнено условие останова. Убедиться в этом можно с помощью формы Табло (Рис. 3). Работа с формой Табло будет рассмотрена ниже.

Рис. 3. Установка точки останова с условием и результат ее обработки
Для того чтобы начать отлаживать программный код необходимо установить точки останова и запустить приложение в режиме отладки. Для запуска отладки нужно выполнить команду главного меню конфигуратора Отладка – Начать отладку (F5).
После запуска приложения в отладочном режиме необходимо обеспечить срабатывание точки останова. Здесь возможны разные сценарии. Например, точка останова установлена в модуле формы документа в стандартном обработчике события ПриОткрытии (). В этом случае точка останова сработает в момент открытия формы любого документа в пользовательском режиме.
Точка останова может быть установлена в произвольной процедуре или функции, которую создал разработчик. В этом случае точка останова сработает после вызова этой процедуры или функции из определенной строки программного кода.
После того как сработала точка останова система останавливает выполнение программного кода и становится возможным использование различных функций отладчика, таких как: пошаговое выполнение программного кода, использование формы Табло и т.д.
Пошаговое выполнение программного кода
Для пошагового выполнения программного кода используются команды, которые доступны в главном меню конфигуратора в меню Отладка. Для этих команд удобно использовать горячие клавиши.
Шагнуть в (F11). Если следующий оператор программного кода выполняет вызов проце-дуры или функции, то осуществляется ее пошаговое выполнение, иначе – выполняется следующий оператор.
Шагнуть через (F10). Если следующий оператор программного кода выполняет вызов процедуры или функции, то осуществляется ее выполнение полностью без входа внутрь. Затем выполняется следующий оператор.
Идти до курсора (Shift+F10). Осуществляется выполнение операторов от текущей выпол-няемой строки до строки программного кода, где расположен курсор.
Использование форм Табло и Выражение
Для просмотра значений переменных и вычисления значений выражений во время оста-новки программного кода предназначены формы Табло и Выражение.
Форма Табло вызывается командой главного меню конфигуратора Отладка – Табло или сочетанием клавиш Ctrl+Alt+W. В табло можно записать значения каких-либо переменных и анализировать, как они изменяются в процессе выполнения программного кода.
У табло доступны четыре закладки. По умолчанию закладки выключены. Для включения закладок в форме Табло нужно вызвать контекстное меню и установить флаг Закладки (Рис. 4).

Рис. 4. Форма “Табло” с включенными закладками
Для вычисления значений выражений в момент остановки программного кода используется форма Выражение. Для открытия этой формы используется команда главного меню конфигуратора Отладка – Вычислить выражение или сочетание клавиш Shift+F9 (Рис. 5).

Рис. 5. Форма “Выражение”
В поле Выражение вводится выражение на встроенном языке. Значение выражения можно получить нажав кнопку Рассчитать. В поле Результат выводится значение выражения. Выражение можно отобразить в табло нажав кнопку Включить в табло.
Для просмотра значений коллекции (например, таблицы значений, списка значений, массива) можно использовать команду Показать значение в отдельном окне или клавишу F2.
Просмотр стека вызовов
Стек вызовов – форма, которая позволяет отслеживать взаимные вызовы процедур и функций в процессе исполнения программного кода. Стек вызовов отображается командой главного меню конфигуратора Отладка – Стек вызовов или сочетанием клавиш Ctrl+Alt+C. Из формы Стек вызовов можно перейти к соответствующей процедуре или функции (Рис. 6).

Рис. 6. Стек вызовов
Остановка программного кода по ошибке
В процессе выполнения программного кода могут возникать ошибки, приводящие к аварийной остановке приложения. Для настройки возможности остановки программного кода на строке, в которой возникла ошибка, используется форма Остановка по ошибке.
Для открытия формы нужно выполнить команду главного меню конфигуратора Отладка – Остановка по ошибке.
В форме нужно установить флаг Остановка по ошибке и запустить приложение в режиме отладки. Выполнение программного кода будет остановлено на строке, в которой возникла ошибка (Рис. 7).
Используя возможности отладчика, описанные в этой статье, разработчик может анализировать как собственный программный код, так и программный код типовых решений фирмы “1С”.
Как показывает практика без отладчика поиск ошибок в программном кода занимает длительное время. Поэтому освоению отладчика нужно уделить особое внимание.
Как было упомянуто выше, механизм отладки был существенным образом расширен в последующих редакциях платформы. Для тех, кто хочет ознакомиться с подробным описанием этих нововведений, рекомендуем прочитать соответствующий материал в блоге самих разработчиков платформы.
В заключение отметим, что конфигуратор – это полноценная и до недавнего времени единственная среда разработки приложений на платформе «1С:Предприятие 8». Он обладает очень богатым функционалом, призванным помочь разработчику в решении его ежедневных задач.
В редакции 8.3 в конфигураторе добавилось много мелких полезностей для разработчика. И в следующей статье мы с ними обязательно познакомимся.