Установить новое значение в виде выражения 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).

В форме нужно установить флаг Остановка по ошибке и запустить приложение в режиме отладки. Выполнение программного кода будет остановлено на строке, в которой возникла ошибка (Рис. 7).

Используя возможности отладчика, описанные в этой статье, разработчик может анализировать как собственный программный код, так и программный код типовых решений фирмы “1С”.

Как показывает практика без отладчика поиск ошибок в программном кода занимает длительное время. Поэтому освоению отладчика нужно уделить особое внимание.

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

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

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

В этой статье я разберу основы работы с отладкой в . Что такое отладка и для чего она нужна? Очень часто необходимо понять, как работает тот или другой кусок кода, и какие значения содержат различные переменные. для этих целей имеет механизм отладки. В этой статье мы разберем основные моменты работы с отладкой.

Для того чтобы программа остановилось на определенном месте нужно установить точку останова. Для этого необходимо поставить курсор на нужную строку и кликнуть мышкой по левому полю. Слева появился красный кружок. Точку останова можно поставить используя главное меню

Или используя контекстное меню

В этом месте программа сделает остановку, чтобы дать возможность разработчику ознакомится с ее поведением

Обращаю Ваше внимание, что точку останова необходимо устанавливать на том месте кода, где написан какой-нибудь оператор. Либо объявлены неявно переменные.

Есть несколько вариантов, рассмотрим их все по отдельности.

Первый вариант, можно просто идти по коду, не заходя ни в какие процедуры и функции. Для этого используем кнопку «Шагнуть через» или клавишу F10.

Имейте в виду, что если отладка передает управление какой-нибудь интерактивной функции, где требуется вмешательство пользователя, то либо сразу Вас программа перекинет на 1С Предприятие, либо отладка зависнет, и тогда в 1С Предприятие придется перейти самостоятельно.

Второй способ, можно идти по коду и заходить во все написанные процедуры и функции, чтобы посмотреть, как они работают. Для этого необходимо нажать кнопку «Шагнуть В», или клавишу F11.

Если нам необходимо выйти из какой-то процедуры или функции, не дожидаясь её выполнения, то необходимо нажать кнопку «Шагнуть из» или держа клавишу Shift нажать клавишу F11.

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

Второй способ: установить курсор на нужную и нажать на кнопку «Идти до курсора», либо держа клавишу Shift нажать клавишу F10.

Если работая с кодом Вы заблудились в нём и хотите быстро вернуться к текущей строке отладки, то достаточно нажать кнопку «Текущая строка»

Как двигаться по коду в отладке мы узнали. Теперь самое главное, как узнать значения переменных? В этом нам поможет табло .

Открыть его можно несколькими способами.

Первый: используя главное меню.

Второй: используя панель «Отладка конфигурации».

Третий: используя комбинацию клавиш Ctrl + Alt + W.

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

Кроме переменных примитивных типов у Вас есть возможность вносить в выражение переменные объектных типов, и посмотреть их состав этой переменной (если Вы не отлаживаете выполнение кода на в ).

В табло можно вносить и функции (как собственные, так и глобального контекста), чтобы узнать, что они будут возвращать.

Узнать значение переменной можно и без использования табло. Достаточно выделить эту переменную и нажать на кнопку «Вычислить выражение» (комбинация клавиш Shift + F9).

Посмотрите наглядную работу с отладкой в этом видео.

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг:

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы.

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

Включение режима отладки на сервере 1С

Если вы работаете в клиент-серверном варианте, то надо, чтобы пользоваться всеми функциями отладчика 1С, пройти процедуру включения отладки на сервере. Она не занимает много времени и не требует обширных знаний, но аккуратным быть все-таки придется, ведь процесс затронет изменение реестра на сервере.

Включить отладку в 1С вы сможете по следующему алгоритму:

  • Перейдите на сервер 1С и откройте регистр через функцию «Выполнить» из меню «Пуск». Также можно воспользоваться одновременным нажатием клавиш Windows и R на клавиатуре. Введите команду открытия регистра - «regedit»;
  • В открывшемся окне в дереве слева пройдите по пути: «HKEY_LOCAL_MACHINE», «SYSTEM», «ControlSet001», «services», «1C:Enterprise 8.3 Server Agent»;
  • Выделив нижний пункт, в правой части находим реквизит с именем «ImagePath» и меняем его с помощью контекстного меню. Чтобы подключить отладку на сервере, к существующему пути добавляем строку « -debug»;
  • Осталось лишь перезапустить агент сервера 1С и можно использовать режим отладки на сервере.

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


Как только запуск 1С в режиме отладки произошел, вы увидите практически аналогичное окно программы. Единственное отличие будет снизу – 1С показывает статистику по количествам вызовов на сером фоне. Но если вы переключитесь в этот момент в конфигуратор, то заметите, что верхняя панель изменилась. Появились новые кнопки, с помощью которых вы и будете управлять режимом отладки.

Чтобы получить максимум пользы от отладки серверных процедур, нужно знать основные возможности этого режима, их назначение и способы применения. Конечно, невозможно все понять на теоретическом уровне, но когда вы ознакомитесь с основами, то на практике вам будет намного легче. К тому же, большинство особенностей отладки используется редко, поэтому глубокие знания этого механизма могут пригодиться только через несколько лет работы.

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

  • Точки останова;
  • Пошаговая отладка кода;
  • Просмотр значений;
  • Стек вызовов.

Функции отладки 1С

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

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


Еще один полезный механизм из этого меню – «Остановка по ошибке», позволяющий останавливаться только в недопустимых ситуациях. После остановки вы попадаете в конфигуратор и можете использовать другие возможности отладки. К примеру, перемещаться по строкам кода с помощью специальных клавиш, описанных в меню «Отладка», где сверху выведены более популярные функции. Разница между F10 и F11 заключается в том, что в первом случае вы будете попадать во вложенные функции и процедуры.


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

  • При вызове открывается окно, в котором можно перетащить переменные, выделив их двойным нажатием в коде. В окне показывается их значение и тип на протяжении всей отладки – можно следить за изменением в процессе выполнения алгоритма;

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


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


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

Приветствуем всех читателей портала сайт, в этой статье мы поговорим про точки останова в 1С, а точнее про их некорректную работу в определенных версиях платформы 1С.

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

Давайте сначала разберем принцип работы обработки «Тестирование внешних печатных форм». С помощью данной обработки мы указывали нашу внешнюю обработку (внешняя печатная форма например) (1), и затем открывали эту же печатную форму в конифгураторе и ставили точки останова, после этого запускали предприятие под отладкой. При нажатии на кнопку (2) запускалась именно наша внешняя печатная форма, а не сгенерированная системой по умолчанию в каталоге tmp , в результате срабатывала точка останова в нашей обработке открытой в конфигураторе. Все работало как положено. Но это было раньше… Если мы выполним данные действия в платформе 1С 8.3.6.2014 то точки останова во внешней обработке срабатывать не будут ! Как выяснилось данная ситуация возникала потому что платформа 1С 8.3.6.2014 загружала внешнюю обработку в оперативную память , в то время как младшие версии платформы сохраняли ее во временный файл, который располагался в каталоге временных файлов 1С заданных по умолчанию.

Решение проблемы с точками останова в внешних обработках на платформе 1С 8.3.6.2014

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

8 назрела необходимость (о чём ниже) в значительной переработке процедуры отладки. Это отразилось в версии 8.3.7.1759. Во-первых, был создан для этой процедуры универсальный интерфейс, а во-вторых, таким изменением обеспечивается дальнейшее развитие самой программы. Ведь теперь с отладкой можно работать не только через Конфигуратор, но и с помощью Development Tools. Рассмотрим, как включить отладку на сервере 1С начиная с новой версии.

Использование нового протокола

Предыдущий отладчик, который был реализован в предыдущих версиях,осуществлял управление клиентскими и серверными приложениями с помощью протокола TCP/IP.

В настоящее время использование такого протокола стало ограничивать выход программы 1С:Предприятие в интернет и порождало неудобства для работы мобильных приложений.

Поэтому для свободного доступа к информационным базам, которые могут находиться за пределами локальной сетки, теперь принят к использованию гибкий протокол HTTP.

Новая архитектура

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

В новой версии в прямом соединении с базами нет необходимости - достаточно просто обладать такой же базой, как у клиента. А загрузить её можно из файла.

Мобильные приложения

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

Другие изменения

С новой версией в отладочной процедуре доступно изменение значений для локальных переменных, - для этой цели реализовано новое окно быстрого просмотра.

Режим вычислений изменён на асинхронный, позволяющий продолжать работу не дожидаясь результатов.

Отладчик в Development Tools

Взаимодействие с новой процедурой выполнено в специально разработанном универсальном программном интерфейсе. С одной стороны, этот интерфейс используется Конфигуратором. С другой стороны - он внедрён в новую среду 1C:Enterprise Development Tools.

Как это выглядит теперь

После изменения программы процедура происходит по следующему сценарию:

Теперь в ней участвуют не только отладчик и предметы, как это было ранее. Теперь в цепочку введён дополнительный элемент - Server.

Мало того, что он добавлен - он служит основным элементом обмена информацией между отладчиком и предметами. А сам обмен происходит посредством выстраиваемых в очередь сообщений.

А поскольку обмен этот проводится через протокол HTTP, то теперь не имеет значения, где именно могут быть расположены данные.

Обращения к серверу формируются со стороны отладчика и предметов в форме дополнительных запросов-соединений. При появлении таковых - им направляются соответствующие ответы.

Включение отладки при разных сценариях

Для прикладного разработчика не произошло никаких изменений. Значительное отличие состоит в том, что новый механизм требуется включать. Ведь по умолчанию он теперь отключён.

Рассмотрим, что же происходит при запуске режима если мы выбираем один из двух сценариев.

Файловый сценарий

В начале файлового варианта необходимо в конфигураторных настройках указать использование нового механизма - «Отладка по протоколу HTTP».

Тогда со стороны Конфигуратора будет автоматически предложено использовать локальный сервер. Это условие нужно принять и заново запустить программу в режиме Конфигуратора.

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

Включённый механизм теперь автоматически будет запускать Сервер отладчика, который представляет собой специальное приложение dbgs.exe. Отражается оно в окне Диспетчера задач.

Значение параметра ownerPID будет соответствовать идентификатору приложения, которое привязано к нему.

При запуске отладочного сеанса через Конфигуратор - серверное подключение произойдёт автоматически. А в нём отразятся подключённые предметы.

Если же программа 1С была активирована без нового механизма, то включить отладку на сервере 1С нужно будет вручную. Только теперь нужно будет указывать серверный адрес:

Заходим в Сервис — Параметры

Он находится в настройках предметов:

Заходим Подключение — Настройка

При использовании файлового сценария с несколькими базами одновременно нужно учесть важный нюанс, - каждый из Конфигураторов (с включённым механизмом по HTTP) отправляет свой Сервер:

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

Клиент-серверный сценарий

Отладка на сервере 1С по клиент-серверному сценарию, как и в предыдущем случае, начинается запуском режима. Здесь указывается использование нового механизма HTTP. Делается это таким образом:

ragent.exe -debug -http

При его запуске автоматически стартует за ним и отладчик.

Значение параметра ownerPID будет соответствовать идентификационному номеру менеджера кластера 1С.

Программой будет сформировано предложение использовать теперь отладочный сервер кластера (а не локальный как в предыдущем сценарии). Соглашаемся и перезапускаем его.

В дальнейшем всё будет проходить подобно файловому сценарию. Только при запуске Конфигуратора серверной базы локальный сервер-отладчик уже не будет запускаться.

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