Руководство администратора

  1. Главная
  2. Документы
  3. Руководство администратора
  4. Глоссарий
  5. Отладка в 1С

Отладка в 1С

1. Общая информация

Отладка – этап разработки прикладного решения, в процессе которого происходит обнаружение, локализация и устранение ошибок в прикладном решении.

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

В данной главе приводится описание инструментов платформы, которые помогают в процессе отладки прикладного решения и его тестирования.

2. Отладчик

2.1. Общая информация

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

  • возможность отладки выполнения модулей, как в файловом, так и в клиент-серверном варианте, фоновых заданий;
  • пошаговое выполнение модуля (см.здесь);
  • расстановка точек останова (см.здесь);
  • прерывание и продолжение выполнения модуля;
  • возможность отладки нескольких модулей одновременно;
  • вычисление выражений для анализа состояния переменных (см.здесь);
  • изменение значений переменных во время отладки (см.здесь);
  • просмотр стека вызовов процедур и функций (см.здесь);
  • возможность остановки по возникновению ошибки;
  • возможность редактирования модуля в процессе отладки.

Отладка может выполняться с помощью двух различных протоколов отладки: по TCP/IP (см. здесь) и по HTTP (см. здесь). Возможности, предоставляемые обоими протоколами отладки, достаточно близки. Дальнейший текст относится одинаково к обоим протоколам, если явным образом не оговорены те или иные особенности или ограничения.

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

  • имя пользователя, от имени которого исполняется код на встроенном языке;
  • тип предмета отладки;
  • номер используемого сеанса;
  • сетевое имя компьютера, на котором исполняется код на встроенном языке (для протокола отладки TCP/IP);
  • номер IP-порта, через который отладчик управляет работой предмета отладки (для протокола отладки TCP/IP);
  • имя информационной базы (для протокола отладки HTTP).

ПРИМЕЧАНИЕ. Если в клиент-серверном варианте и при наличии нескольких рабочих процессов в кластере, в процессе отладки кода веб-клиента или сервера сеанс был переназначен на другой рабочий процесс, то отладка становится невозможной. Подробнее о сеансах см. здесь.

К типам предметов отладки относятся:

  • тонкий клиент– код на встроенном языке, исполняемый в тонком клиенте;
  • веб-клиент– код на встроенном языке, исполняемый в веб-клиенте;
  • толстый клиент– код на встроенном языке, исполняемый в толстом клиенте;
  • клиент (мобильное приложение)*– код на встроенном языке, исполняемый в клиентском приложении, на мобильном устройстве;
  • сервер– код на встроенном языке, исполняемый на сервере;
  • сервер (файловый вариант)– код на встроенном языке, исполняемый на сервере, в файловом варианте;
  • сервер (мобильное приложение)*– код на встроенном языке, исполняемый на сервере, в файловом варианте, на мобильном устройстве;
  • COM-соединение– код на встроенном языке, исполняемый через внешнее соединение;
  • Web-сервис– код на встроенном языке, исполняемый при вызовах методов Web-сервисов;
  • HTTP-сервис– код на встроенном языке, исполняемый при вызовах методов HTTP-сервисов;
  • фоновое задание– код на встроенном языке, исполняемый в фоновом задании;
  • фоновое задание (файловый вариант)– код на встроенном языке, исполняемый в фоновом задании (в файловом варианте);
  • фоновое задание (мобильное приложение)*– код на встроенном языке, исполняемый в фоновом задании (в файловом варианте) на мобильном устройстве.

Предметы отладки, помеченные символом «*» используются только в том случае, если применяется протокол отладки по HTTP.

Во время отладки, для указания адресов компонентов системы, могут использовать как символические адреса (например, pc-name) так и IP-адреса (например, 192.168.1.1). Во время работы подсистемы «1С:Предприятия» занимаются преобразованием символических имен в IP-адреса, например, для получения IP-адреса отладчика, который указан с помощью символического имени. Для этого используются специализированные сервисы используемых операционных систем (DNS). Желательно, чтобы при разрешении символических имен не возникало неоднозначностей.

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

  • увеличение времени запуска клиентского приложения;
  • замедление работы рабочего процесса сервера (rphost) «1С:Предприятия» во время работы, если сервер работает в режиме отладки (ключ-debug).

При работе отладчика используются следующие порты:

  • При использовании протокола отладки TCP/IP:1560-1591(по умолчанию). Диапазон портов может быть изменен. Порты используются и на стороне отладчика и на стороне предмета отладки.
  • При использовании протокола отладки HTTP: порт сервера отладки, который явно указывается при запуске. При работе в клиент-серверном варианте сервер отладки использует порт1550(по умолчанию). При работе в файловом варианте порт назначается явным образом или выбирается конфигуратором из интервала портов 1560-1591 (по умолчанию). Диапазон портов может быть изменен. Порт используется только на компьютере, где запущен сервер отладки.

При работе по протоколу отладки TCP/IP, диапазон портов может быть изменен с помощью параметров настройки используемых компонентов системы или конфигурационных файлов (debugcfg.xml, см. здесь). Используемые порты (один или диапазон) должны быть разрешены для использования («открыты») на компьютерах, которые участвуют в процессе отладки. Для протокола отладки TCP/IP это все компьютеры, участвующие в отладке, а для протокола отладки HTTP – это компьютер сервера отладки.

2.2. Использование отладчика

2.2.1. Протокол отладки TCP/IP

2.2.1.1. Общая схема

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

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

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

Отладчик и предметы отладки при поиске друг друга используют IP-адрес 127.0.0.1. Для устойчивой работы службы транспорта данных необходимо определить соответствие адреса 127.0.0.1 символическому имени localhost. Для этого можно в файл C:\Windows\system32\drivers\etc\hosts вписать соответствие:

Копировать в буфер обмена127.0.0.1 localhost

28.2.2.1.2. Настройка приложения для работы в отладочном режиме
Общая информация

В данном разделе считается, что конфигуратор настроен для отладки с использованием протокола отладки TCP/IP. Настройка конфигуратора выполняется с помощью диалога параметров конфигуратора (см. здесь). Далее необходимость выполнения такой настройки отдельно не упоминается.

Отладка клиентского приложения

Для установки отладочного режима можно использовать следующие варианты запуска:

  • В режиме Конфигуратор в форме настроек (менюСервис – Параметры), на закладкеЗапуск 1С:Предприятия – Дополнительные установить флажок Устанавливать режим разрешения отладки, далее выполнить подключение предмета отладки. Также можно установить флажок Начинать отладку при запуске; в этом случае при запуске системы «1С:Предприятие» подключение будет выполнено автоматически. При этом для отладки должен использоваться протокол TCP/IP (диалог Сервис – Параметры, закладка Отладка, свойство Протокол отладки должно быть установлено в значение Отладка по протоколу TCP/IP).
  • Открыть информационную базу в режиме 1С:Предприятие с ключом командной строки/debug -tcp(отладочный режим).
  • Если запущено клиентское приложение, то в форме настроек (открыть с помощью менюСервис – Параметры) установить отладочный режим. Для этого свойствоОтладка в текущем сеансе необходимо установить в значение Разрешена (протокол TCP/IP). Следует иметь в виду, что после применения настроек изменить значение свойства нельзя.
Отладка кода на сервере

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

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

Расположение и параметры конфигурационного файла srv1cv83, а также о параметрах командной строки запуска сервера «1С:Предприятия» можно посмотреть в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

Сервер как приложение

Если сервер «1С:Предприятия» работает в режиме приложения (в любой ОС), то следует остановить сервер и перезапустить его так, чтобы в числе параметров командной строки был параметр -debug.

Копировать в буфер обменаragent -debug <остальные параметры командной строки>

Сервер как служба ОС Windows

Если сервер работает как служба ОС Windows, то необходимо выполнить следующие операции:

  1. Остановить сервер «1С:Предприятия».

Копировать в буфер обменаragent –stop

  1. Выполнить повторную регистрацию агента сервера в качестве службы Windows таким образом, чтобы в числе параметров командыragentбыл параметр -debug.

Копировать в буфер обменаragent -instsrvc -debug <остальные параметры командной строки>

  1. Запустить сервер «1С:Предприятия».

Копировать в буфер обменаragent -start

Сервер как «демон» ОС Linux

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

  1. Остановить сервер «1С:Предприятия».

Копировать в буфер обмена/etc/init.d/srv1cv83 stop

  1. В конфигурационном файлеsrv1cv83установить значение параметра SRV1CV8_DEBUG в значение 1.

Копировать в буфер обменаSRV1CV8_DEBUG=1

  1. Сохранить конфигурационный файл.
  2. Запустить сервер «1С:Предприятия».

Копировать в буфер обмена/etc/init.d/srv1cv83 start

Отладка внешнего соединения

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

Пример файла comcntrcfg.xml:

Копировать в буфер обмена

Подробнее о файле comcntrcfg.xml можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

Если для элемента debug указан атрибут debuggerURL, то к моменту обращения к внешнему соединению по указанному URL должен быть доступен конфигуратор. В противном случае исполнение внешнего соединения будет приостановлено и система будет ожидать доступность конфигуратора. При этом для продолжения работы в конфигураторе следует подключить необходимый предмет отладки.

Отладка Web-сервиса, HTTP-сервиса и доступа через стандартный интерфейс OData

Для указания сервису необходимости запуска в отладочном режиме (только для файлового варианта информационной базы) используются настройки, размещенные в файле default.vrd, который должен располагаться в каталоге виртуального приложения. В этом файле необходимо указать элемент debug, отсутствие которого означает невозможность отладки Web-сервиса.

Пример элемента debug из файла default.vrd:

Копировать в буфер обмена

Подробнее о файле default.vrd можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

Если для элемента debug указан атрибут url, то в момент обращения к сервису, по указанному URL должен быть доступен конфигуратор. В противном случае исполнение сервиса будет приостановлено и система будет ожидать доступность конфигуратора. При этом для продолжения работы в конфигураторе следует подключить необходимый предмет отладки.

Для необходимости отладки сервиса в клиент-серверном варианте информационной базы следует включить режим отладки на сервере с помощью ключа командной строки debug. Подробнее о ключах командной строки запуска сервера «1С:Предприятия» можно посмотреть в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

ПРИМЕЧАНИЕ. Для отладки HTTP-сервиса и работы со стандартным интерфейсом OData не рекомендуется использовать веб-браузер Microsoft Internet Explorer 9.0, т. к. в этом веб-браузере имеются ошибки кодирования URL.

Отладка веб-клиента

Для установки отладочного режима можно использовать следующие варианты запуска:

  • В режиме Конфигуратор в форме настроек (менюСервис – Параметры), на закладкеЗапуск 1С:Предприятия – Дополнительно установить флажок Устанавливать режим разрешения отладки, далее выполнить подключение предмета отладки. Также можно установить флажок Начинать отладку при запуске. В этом случае при запуске системы «1С:Предприятие» подключение будет выполнено автоматически.
  • Открыть информационную базу в режиме 1С:Предприятие с ключом командной строкиdebug(отладочный режим):

Копировать в буфер обменаhttp://localhost/demo?debug=tcp

  • Открыть информационную базу в режиме 1С:Предприятие с ключами командной строкиdebugи debuggerurl=»IP-адрес»:

Копировать в буфер обменаhttp://localhost/demo?debug=tcp&debuggerurl=»127.0.0.1″

  • IP-адрес– это адрес отладчика. В случае такого запуска отладчик, расположенный по адресу 127.0.0.1, выполнит автоматическое подключение предметов отладки (отладчик должен быть запущен по указанному адресу).

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

  • Запустить отладку непосредственно из конфигуратора, как указано выше. В этом случае режим отладки для серверной части файлового варианта, расположенной на компьютере с веб-клиентом, включится автоматически.
  • Включить режим отладки с помощью файлаdefault.vrd, который должен располагаться в каталоге виртуального приложения. В этом файле необходимо указать элементdebug, отсутствие которого означает невозможность отладки Web-сервиса.

Пример элемента debug из файла default.vrd:

Копировать в буфер обмена

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

Подробнее о файле default.vrd можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

Во время отладки веб-клиента нужно помнить следующие особенности:

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

Внимание! Для отладки веб-клиента (в том числе и клиентского программного кода) в клиент-серверном варианте необходимо, чтобы сервер «1С:Предприятия» был запущен в отладочном режиме (ключ debug).

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

Клиент-серверный вариант работы подробнее описан в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

Отладка внешней обработки (отчета)

Для отладки внешнего отчета (обработки) необходимо соблюдение двух условий:

  1. Внешняя обработка (отчет) открыта в клиентском приложении из конкретного места файловой системы;
  2. Конфигуратор, который обслуживает предмет отладки с отлаживаемой внешней обработкой (отчетом), имеет доступ именно к тому файлу внешней обработки (отчета), который открыт клиентским приложением.

Если эти условия не выполняются – отладка внешней обработки (отчета) будет невозможна. В частности, не поддерживается отладка внешних обработок (отчетов), расположенных в информационной базе. В этом случае рекомендуется извлечь внешнюю обработку (отчет) из информационной базы на время отладки.

28.2.2.1.3. Подключение предметов отладки

Для выполнения отладки модуля нужно, чтобы предмет отладки был подключен. Для управления подключением нужно выбрать пункт Отладка – Подключение. На экран выводится окно для выбора предмета отладки. В список попадают только те предметы отладки, для которых выполняются следующие условия:

  • Отладчик и предмет отладки имеют одинаковый идентификатор информационной базы:
  • Для файлового варианта информационной базы формируется в момент первого обращения к базе с помощью клиентского приложения (включая доступ конфигуратором). При следующем первом обращении идентификатор будет сформирован заново. Под «первым обращением» понимается не абсолютно первое обращение в момент создания информационной базы, а первое обращение после того, как к информационной базе не осталось соединений.
  • Для клиент-серверного варианта информационной базы используется идентификатор информационной базы в кластере серверов «1С:Предприятия».
  • В приложении должна быть включена возможность отладки (для сервера – флажокdebug, для клиентского приложения – соответствующий параметр командной строки, или свойство диалога настройки клиентского приложения, или корректно настроенный конфигурационный файл).

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

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

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

Рис. 536. Подключение предметов отладки

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

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

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

Для закрытия предмета отладки следует нажать кнопку Завершить, для останова в месте выполнения – кнопку Остановить.

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

Рис. 537. Настройка отладчика

В поле Отладчик диалога содержатся настройки текущего отладчика. Их можно использовать, например, в командной строке при запуске клиентского приложения в качестве параметра ключа командной строки /debuggerurl или в xml-файле с настройками отладки для внешнего соединения или Web-сервиса.

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

Рис. 538. Настройка автоматического подключения

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

  • Для тонкого или толстого клиента:
  • Разрешить отладку в клиентском приложении;
  • Разрешить автоматическое подключение к фоновым заданиям в диалоге настройки автоматического подключения.
  • Для веб-сервера:
  • В файле публикации (default.vrd) разрешить отладку для отлаживаемой информационной базы;
  • Разрешить автоматическое подключение к фоновым заданиям в диалоге настройки автоматического подключения.
28.2.2.1.4. Дополнительная настройка диапазона портов

Если все порты для подключения в стандартном диапазоне заняты, существует возможность указать дополнительный диапазон. Этот диапазон настраивается в файле debugcfg.xml, расположенном в каталоге конфигурационных файлов компьютера, на котором расположен конфигуратор, отлаживаемое клиентское приложение или выполняется внешнее соединение. Если диапазон портов изменен на компьютере с отлаживаемым приложением, то эти же порты следует установить и для конфигуратора, из которого выполняется отладка (если отлаживаемое приложение и конфигуратор расположены на разных компьютерах). Если файл не найден, то для отладки используются порты из стандартного диапазона (1560:1591). Предметы отладки на сервере используют те же порты, что и процессы сервера: rmngr и rphost. Указания дополнительных диапазонов портов для предметов отладки на сервере не требуется.

Пример:

Копировать в буфер обмена

Подробнее о файле debugcfg.xml можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

28.2.2.2. Протокол отладки HTTP

28.2.2.2.1. Общая схема

Чтобы иметь возможность отлаживать код на встроенном языке, нужно обеспечить работу приложения, в котором исполняется код, в отладочном режиме. Для работы режима отладки необходимо, чтобы на компьютере была включена поддержка сетевого протокола TCP/IP и не заблокирована работа по протоколу HTTP (различные прокси-сервера, брандмауэры и т. д.).

При использовании протокола отладки HTTP, для отладки используется специальный сервер отладки (dbgs). Сервер отладки выступает в качестве координатора процесса отладки:

  • Хранит списки предметов отладки, доступных для использования и списки подключенных предметов отладки.
  • Транслирует команды по управлению процессом отладки в команды предметам отладки (остановиться, продолжить исполнение и т. д.).

Общую схему отладки, с использованием сервера отладки, можно представить следующим образом:

Рис. 539. Общая схема работы

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

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

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

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

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

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

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

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

Из этого описания следуют два важных факта:

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

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

28.2.2.2.2. Настройка системы для работы в отладочном режиме
Общая информация

В данном разделе считается, что конфигуратор настроен для отладки с использованием протокола отладки HTTP. Настройка конфигуратора выполняется с помощью диалога параметров конфигуратора (см. здесь). Далее необходимость выполнения такой настройки отдельно не упоминается.

При запуске из Конфигуратора

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

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

Запуск отладки мобильного приложения из Конфигуратора поддерживается только для устройств, работающих под управлением ОС Android. В этом случае устройство должно быть подключено к персональному компьютеру, на котором работает Конфигуратор, с помощью USB-кабеля, а в настройках запуска мобильного приложения (см. здесь) должно быть настроено использование Android Debug Bridge для запуска мобильного приложения. Отладка мобильного приложения на устройстве, работающем под управлением ОС iOS, возможно только при ручном запуске прикладного решения на мобильном устройстве. Более подробно про управление отладкой на мобильном устройстве см. здесь.

Разрешение отладки в запущенном клиентском приложении

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

  1. Открыть диалог настройки параметров клиентского приложения (командаГлавное меню – Сервис – Параметры).
  2. СвойствоОтладка в текущем сеансеустановить в значение Разрешена (протокол HTTP).
  3. В свойствеСервер отладкиуказать адрес используемого сервера отладки.
  4. Нажать кнопкуОK. После разрешения отладки в текущем сеансе, отключить ее или изменить протокол отладки невозможно.

Разрешение отладки в запущенном экземпляре клиентского приложения не поддерживается при использовании веб-клиента.

Отладка кода на сервере

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

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

Расположение и параметры конфигурационного файла srv1cv83, а также о параметрах командной строки запуска сервера «1С:Предприятия» можно посмотреть в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

Сервер как приложение

Если сервер «1С:Предприятия» работает в режиме приложения (в любой ОС), то следует остановить сервер и перезапустить его так, чтобы в числе параметров командной строки был параметр /debug.

Копировать в буфер обменаragent /debug -http <остальные параметры командной строки>

При необходимости, в командной строке запуска сервера также необходимо указать значения параметров /debugServerAddr, /debugServerPort и /debugServerPwd.

Сервер как служба ОС Windows

Если сервер работает как служба ОС Windows, то необходимо выполнить следующие операции:

  1. Остановить сервер «1С:Предприятия».

Копировать в буфер обменаragent –stop

  1. Выполнить повторную регистрацию агента сервера в качестве службы Windows таким образом, чтобы в числе параметров командыragentбыл параметр /debug.

Копировать в буфер обменаragent /instsrvc /debug -http <остальные параметры командной строки>

При необходимости, в командной строке регистрации сервера «1С:Предприятия» также необходимо указать значения параметров /debugServerAddr, /debugServerPort и /debugServerPwd.

  1. Запустить сервер «1С:Предприятия».

Копировать в буфер обменаragent /start

Сервер как «демон» ОС Linux

Если сервер «1С:Предприятия» работает в режиме приложения (в любой ОС), то следует остановить сервер и перезапустить его так, чтобы в числе параметров командной строки был параметр /debug.

Копировать в буфер обменаragent /daemon /debug -http <остальные параметры командной строки>

При необходимости, в командной строке запуска сервера также необходимо указать значения параметров /debugServerAddr, /debugServerPort и /debugServerPwd.

ВНИМАНИЕ! Если в ОС Linux настроен автоматический запуск кластера серверов «1С:Предприятие» при старте ОС, то в этом случае не поддерживается использование протокола отладки HTTP.

Отладка внешнего соединения

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

Пример файла comcntrcfg.xml:

Копировать в буфер обмена

Подробнее о файле comcntrcfg.xml можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

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

Отладка Web-сервиса, HTTP-сервиса и доступа через стандартный интерфейс OData

Для указания сервису необходимости запуска в отладочном режиме (только для файлового варианта информационной базы) используются настройки, размещенные в файле default.vrd, который должен располагаться в каталоге виртуального приложения. В этом файле необходимо указать элемент debug, отсутствие которого означает невозможность отладки Web-сервиса.

Пример элемента debug из файла default.vrd:

Копировать в буфер обмена

Подробнее о файле default.vrd можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

Если для элемента debug указан атрибут url, то в момент обращения к сервису, по указанному адресу должен быть доступен сервер отладки. Если на момент запуска приложения, сервер отладки будет недоступен, отладка будет невозможна, и система будет работать в обычном режиме.

Для необходимости отладки сервиса в клиент-серверном варианте информационной базы следует включить режим отладки на сервере с помощью ключа командной строки /debug. Подробнее о ключах командной строки запуска сервера «1С:Предприятия» можно посмотреть в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

ПРИМЕЧАНИЕ. Для отладки HTTP-сервиса и работы со стандартным интерфейсом OData не рекомендуется использовать веб-браузер Microsoft Internet Explorer 9.0, т. к. в данном веб-браузере имеются ошибки кодирования URL.

Отладка веб-клиента

Если веб-клиент запускается не из конфигуратора, то для отладки клиентской части необходимо проделать следующие действия:

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

Копировать в буфер обменаhttp://localhost/demo?debug=http,attach&debuggerURL=»addr»

Значение addr получается на предыдущем шаге.

  1. В данном случае будет недоступна отладка серверной части прикладного кода.

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

  • Запустить отладку непосредственно из конфигуратора (см.здесь).
  • Включить режим отладки с помощью файлаdefault.vrd, который должен располагаться в каталоге виртуального приложения. В этом файле необходимо указать элементdebug, отсутствие которого означает невозможность отладки Web-сервиса.

Пример элемента debug из файла default.vrd:

Копировать в буфер обмена

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

Подробнее о файле default.vrd можно посмотреть в книге 1С:Предприятие 8.3. «Руководство администратора».

Во время отладки веб-клиента нужно помнить следующие особенности:

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

Внимание! Для отладки веб-клиента (в том числе и клиентского программного кода) в клиент-серверном варианте необходимо, чтобы сервер «1С:Предприятия» был запущен в отладочном режиме (ключ debug).

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

Клиент-серверный вариант работы подробнее описан в книге 1С:Предприятие 8.3. «Клиент-серверный вариант. Руководство администратора».

Отладка внешней обработки (отчета)

Для отладки внешнего отчета (обработки) необходимо соблюдение двух условий:

  1. Внешняя обработка (отчет) открыта в клиентском приложении из конкретного места файловой системы;
  2. Конфигуратор, который обслуживает предмет отладки с отлаживаемой внешней обработкой (отчетом), имеет доступ именно к тому файлу внешней обработки (отчета), который открыт клиентским приложением.

Если эти условия не выполняются – отладка внешней обработки (отчета) будет невозможна. В частности, не поддерживается отладка внешних обработок (отчетов), расположенных в информационной базе. В этом случае рекомендуется извлечь внешнюю обработку (отчет) из информационной базы на время отладки.

Отладка мобильного приложения

Отладка при запуске из конфигуратора

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

Запуск отладки мобильного приложения из Конфигуратора поддерживается только для устройств, работающих под управлением ОС Android. В этом случае устройство должно быть подключено к персональному компьютеру, на котором работает Конфигуратор, с помощью USB-кабеля, а в настройках запуска мобильного приложения (см. здесь) должно быть настроено использование Android Debug Bridge для запуска мобильного приложения. В этом случае в качестве адреса сервера отладки используется адрес Конфигуратора, из которого выполняется запуск отладки.

Признак разрешения отладки и адрес отладчика, указанный в одноименном свойстве информационной базы, игнорируется.

Отладка при публикации на веб-сервере

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

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

ВНИМАНИЕ! Установка в настройках информационной базы свойства Перезапуск из конфигуратора фактически разрешает отладку мобильного приложения. Следует аккуратно использовать данную возможность при отладке мобильных приложений с реальными конфиденциальными данными во избежание несанкционированного доступа к таким данным.

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

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

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

Мобильное приложение может быть запущено только на самом мобильном устройстве. Состояние отладки определяется настройками используемой информационной базы.

Установка разрешения отладки и адреса сервера отладки

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

  • Включить переключательОтладка разрешена.
  • Установить адрес сервера отладки в полеАдрес отладки. Адрес используемого сервера отладки следует получить в конфигураторе, в свойствеСервер отладки диалога Настройка отладчика, который доступен при исполнении следующей команды Главное меню – Отладка – Подключение – Настройка.

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

28.2.2.2.3. Подключение предметов отладки

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

Рис. 540. Предметы отладки

Из списка Доступные предметы отладки исключаются:

  1. Подключенные предметы отладки (отображаются в спискеПодключенные предметы отладки);
  2. Те предметы отладки, которые не соответствуют отбору, установленному в правой верхней части окна. Отбор предназначен только для визуального ограничения списка. Предметы отладки, не соответствующие отбору, все равно являются доступными для использования и после отключения отбора сразу появятся в списке доступных предметов отладки.

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

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

Для закрытия предмета отладки следует нажать кнопку Завершить, для останова в месте выполнения – кнопку Остановить.

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

Рис. 541. Информация о сервере отладки

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

Рис. 542. Фильтр предметов отладки для автоматического подключения

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

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

Рис. 543. Отбор предметов отладки

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

Фильтр, который настраивается в диалоге Автоматическое подключение предметов отладки на сервере отладки объединяет фильтр по типам отладки и по отборам предметов отладки «по ИЛИ». Т.е. предмет отладки будет автоматически подключен, если он соответствует одному из установленных типов отладки ИЛИ соответствует одному из включенных отборов.

Значения, установленные в данном диалоге, начинают работать сразу и до следующей смены настроек.

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

28.2.2.2.4. Сервер отладки
Общая информация

Сервер отладки (dbgs) – специальное приложение, которое выступает посредником между отладчиком и различными предметами отладки (подробнее см. здесь).

Сервер отладки может быть запущен несколькими способами:

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

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

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

Копировать в буфер обменаdbgs —version —help —service | —daemon —addr= —port=|—range= —ownerPID= —password= —notify=

—version или -v

Отображает версию сервера отладки.

—help или -h или -?

Отображает краткую справочную информацию о параметрах командной строки запуска сервера отладки.

—service только для ОС Windows

Регистрирует сервер отладки в качестве сервиса ОС Windows.

Ключ —service несовместим с ключом —daemon.

—daemon только для ОС Linux

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

Ключ —daemon несовместим с ключом —service.

—addr= или -a

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

—port= или -p

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

Если одновременно указаны одновременно параметры —port и —range, то параметр —port будет игнорирован.

—range= или -r

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

Диапазон портов указывается с помощью символа «:», несколько диапазонов (или конкретных портов) разделяются символом «,». Например: 2560:2590, 4567, 9000:12000. В данном примере для выбора порта будут использоваться порты в интервале от 2560 до 2590, порт 4567 и порты в интервале от 9000 до 12000. В результате будет выбран один порт, который и будет использоваться в работе. Информация о выбранном порте (вместе с адресом сервера отладки) будет записана в файл, указанный с помощью параметра —notify.

Если одновременно указаны одновременно параметры —port и —range, то параметр —port будет игнорирован.

—ownerPID= или -opid

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

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

—password= или -pwd

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

—notify=

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

Получение адреса отладчика

Чтобы получить адрес сервера отладки, с которым будет взаимодействовать отладчик конфигуратора, необходимо выполнить следующие действия:

  1. Открыть диалог подключения предметов отладкиГлавное меню – Отладка – Подключение…;
  2. Нажать кнопкуНастройки…;
  3. Скопировать информацию из строкиСервер отладки:.
Проверка работоспособности сервера отладки

Проверку работоспособности сервера отладки можно выполнить следующим образом:

  1. Получить адрес сервера отладки, например в конфигураторе.
  2. Ввести полученный адрес в строку адреса любого веб-браузера.
  3. Сервер отладки функционирует нормально, если веб-браузер отображает информацию следующего вида:

Копировать в буфер обмена1C:Enterprise 8.3 Debug Server (8.3.7.1140) © ‘1C’ 1996-2015 – it works!

28.2.3. Точка останова

Точка останова – это место в программном модуле, в котором исполнение программного модуля останавливается и управление передается отладчику.

В левой колонке текста модуля специальными значками показываются текущая точка останова, места останова и состояние точек останова.

Рис. 544. Виды точек останова

Точку останова можно установить в любой строке модуля, в любой момент работы с отладчиком. В том случае, если строка, на которой устанавливается точка останова, не содержит операторов (например, пустая строка), содержит неисполняемый текст (например, заголовок процедуры или функции, определение переменных) или является продолжением оператора, начатого на предыдущих строках, положение точки останова будет автоматически скорректировано. Место нахождения точки останова отмечается специальным знаком в левой колонке окна модуля. Для включенных и отключенных точек останова используются разные знаки (см. рис.544).

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

Для управления точками останова используются следующие команды меню Отладка главного меню конфигуратора:

Команда Пояснение
Точка останова Устанавливает либо стирает точку останова на той строке, на которой стоит курсор
Точка останова

с условием

Устанавливает точку останова и открывает диалог для ввода условия останова – логического выражения. Если условие было введено, то открывается диалог для редактирования условия. Если в данной строке точка останова была установлена, то открывается диалог для ввода условия останова и ставится условие для точки останова с условием. Останов в указанной точке будет выполняться только в том случае, если условие останова истинно
Отключить точку останова Включает либо отключает действие точки останова. Доступна, если в текущей строке есть точка останова
Убрать все точки останова Стирает все ранее расставленные точки останова во всех модулях
Отключить все точки останова Запрещает действия всех ранее расставленных точек останова во всех модулях, не удаляя их
Список точек останова Просмотр и управление точками управления
Останавливаться

по ошибке

При возникновении ошибки отладчик останавливает выполнение и переходит к строке модуля, вызвавшей ошибку

Установленные точки останова запоминаются при закрытии конфигурации. Для просмотра списка точек останова нужно открыть конфигурацию и выбрать пункт меню Отладка – Список точек останова.

Рис. 545. Список точек останова

С помощью флажков в колонке Вкл./выкл. можно управлять состоянием выбранной точки останова. Если флажок установлен, то при отладке на данной точке отладчик выполнит остановку.

Назначение остальных кнопок описано на рис.545.

28.2.4. Пошаговое выполнение

В режиме пошагового исполнения предмет отладки, выполнив очередную команду, ждет от отладчика инструкций о продолжении работы.

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

На каждом шаге исполнения модуля существует несколько вариантов продолжения. Для выбора варианта продолжения используются пункты меню Отладка.

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

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

  • не поддерживается пошаговое исполнение программного кода, переданного в качестве параметра оператора (включая вызовы процедур и функций);
  • поддерживается прерывание исполнения программного кода с помощью точек останова, которые расположены внутри процедур и функций, вызываемых из программного кода, переданного в качестве параметра оператораВыполнить().

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

  • если выполнена остановка одного предмета отладки, при начале исполнения кода останавливаются и другие;
  • выполнение командыПродолжитьприводит к продолжению выполнения всех предметов отладки;
  • выполнение командыШагнуть черезприводит к исполнению продвижения на следующую строку во всех предметах отладки;
  • выполнение командыШагнуть в(если выполняемым оператором модуля является вызов функции или процедуры) приводит к переходу на первый оператор внутри этого вызова, для других предметов отладки всегда выполняется команда Шагнуть через.

Если производится отладка клиент-серверного варианта и код последовательно выполняется на клиенте и на сервере (подключение клиентского и серверного предметов отладки выполнено), то:

  • выполнение командыШагнуть в(если выполняемым оператором модуля является вызов функции или процедуры, исполняемой на сервере) приводит к переходу на первый оператор внутри этого вызова;
  • выполнение командыШагнуть изили команды Шагнуть через для последнего исполняемого оператора (если выполняемым оператором модуля является код функции или процедуры, исполняемый на сервере и вызванной из модуля, выполняемого в клиентском приложении) приводит к переходу на следующий исполняемый оператор внутри этого вызова.

Для выбора текущего предмета отладки выводится специальная панель инструментов Предметы отладки. Панель состоит из единственного поля выбора, в котором показывается текущий предмет отладки. Это поле выбора доступно только тогда, когда управление работой какого-либо из подключенных предметов отладки находится в отладчике (например, после срабатывания точки останова). При этом в список предметов отладки попадут только те предметы, управление исполнением которых сейчас также находится в отладчике, включая текущий предмет отладки.

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

Если выполняется пошаговый процесс выполнения, то стек вызова, значения переменных (в табло и в окне Выражение) показываются для текущего предмета отладки. При смене предмета отладки стек вызова и значения переменных также меняются.

ВНИМАНИЕ! Если выполнено подключение клиентского и серверного предметов отладки и осуществлен переход из клиентской части в серверную, то на клиентских уровнях стека вызова любые вычисления не выполняются. Такие уровни выводятся в окне стека вызовов серым цветом.

Если необходимо продолжить выполнение модуля, то с помощью команды Отладка – Продолжить отладку нужно разрешить подключенным предметам отладки свободное выполнение модуля (до следующей точки останова). Если для отладки подключено клиентское приложение, то оно активизируется автоматически.

Чтобы прервать процесс отладки в целом (кроме фоновых заданий), нужно снять все точки останова со всех модулей и выполнить команду Отладка – Продолжить отладку, если в данный момент сработала точка останова. Если необходимо прервать отладку и завершить работу подключенных предметов отладки, следует воспользоваться командой Отладка – Завершить. В последнем случае не будут выполнены процедуры ПередЗавершениемРаботыСистемы() и ПриЗавершенииРаботыСистемы().

В процессе отладки допускается редактирование текущей конфигурации и сохранение изменений.

ВНИМАНИЕ! Хотя в процессе отладки возможно редактирование отлаживаемого модуля, отладчик не производит компилирование измененного кода – продолжается отладка кода конфигурации базы данных (на момент запуска отладчика или подключения). Для отладки изменений, внесенных в конфигурацию, необходимо выполнить обновление конфигурации базы данных.

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

Если файловый вариант информационной базы находится в состоянии пошагового выполнения кода на встроенном языке или стоит на точке останова и при этом существует открытая транзакция (явная или неявная), то выполнение некоторых операций (например, попытка захвата объектов в хранилище конфигурации) может сопровождаться ошибкой: Ошибка операции с хранилищем конфигурации. (Ошибка при выполнении сбора информации для хранилища конфигурации) Конфликт блокировок при выполнении транзакции. Не удалось заблокировать таблицу FILES. Перед повтором операции рекомендуется завершить работу клиентского приложения. Для выполнения операции, во время которой произошла ошибка, следует продолжить выполнение кода на встроенном языке до момента завершения транзакции.

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

28.2.5. Отладка внешних обработок (отчетов)

Для отладки модулей внешней обработки (отчета) необходимо открыть файл внешней обработки в конфигураторе, воспользовавшись пунктом Файл – Открыть.

В дальнейшем с модулями внешней обработки (отчета) в отладчике можно работать так же, как и с любым другим модулем.

28.2.6. Управление отладкой

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

Команда Отладка – Завершить прекращает выполнение модуля и заканчивает работу текущего предмета отладки.

Команда Отладка – Остановить останавливает выполнение модуля на текущем операторе. Данная команда позволяет начать отладку модуля со следующей исполняемой строки. Эта команда полезна при анализе «зацикливания» модуля.

Команда Отладка – Остановка по ошибке открывает диалоговое окно настройки остановки по ошибке.

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

Если установлен флажок Останавливаться только на ошибках, содержащих текст, то отладка будет остановлена в месте ошибки (если сообщение об ошибке содержит указанную в табличном поле подстроку). Если этот флажок не установлен, то остановка по ошибке будет происходить независимо от текста сообщения об ошибке. При этом указанная подстрока будет учитываться, только если флажок напротив нее установлен.

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

28.2.7. Окно «Выражение»

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

Рис. 546. Вычислить выражение

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

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

Для вычисления выражения следует нажать кнопку Рассчитать. Результат вычисления выражения будет выдан в поле Значение. Следует понимать, что вычисление выражений выполняется в реальной системе, поэтому возможны различные побочные эффекты. Так, например, если рассчитываемое выражение анализирует наличие в информационной базе какого-то элемента, и создает нужный элемент при его отсутствии, то такое выражение будет выполнено «по пути» создания только один раз. Это связано с тем, что после первого выполнения нужный элемент будет создан в реальной информационной базе.

Кнопка Включить в табло помещает введенное выражение в табло. Это позволит в дальнейшем прослеживать изменение результата вычисления выражения в процессе отладки модуля. При этом выражение размещается в новой строке табло. Если окна табло на экране нет, то оно открывается.

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

Для удобства просмотра длинных строк выводится окно Просмотр значения выражения. Окно содержит элемент управления типа Надпись, в которое выводится значение строки для просмотра.

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

Если, в свою очередь, конкретное значение также является коллекцией значений или массивом, а также строкой, то возможен просмотр этих значений в отдельном окне (как показано на рис.547). Для этого следует выбрать нужное значение и в контекстном меню выбрать пункт Показать значение в отдельном окне или нажать клавишу F2.

Рис. 547. Отображение значений

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

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

Текущее значение выражения можно также посмотреть, подведя указатель мыши к выражению. Текущее значение показывается в виде короткой подсказки рядом с переменной. Просмотр возможен, если значение имеет текстовое представление. Таким же образом можно просмотреть значение свойства. Если свойство представлено в виде <Объект>.[<Объект>.…]<Свойство> (например, ЭлементыФормы.КоманднаяПанель.Кнопки.Получение.Доступность), то просмотр значения возможен при подведении указателя мыши к такому тексту. Значение показывается, если в тексте не используются круглые и квадратные скобки. Также можно просмотреть значение элемента массива, для которого явно указан его индекс (в виде числа или переменной, значение которой определено на момент просмотра). Для этого нужно выделить идентификатор массива и его индекс.

При подведении указателя мыши к отдельному объекту, или выделенному объекту, или группе объектов в тексте вида <Объект>.[<Объект>. …]<Свойство> показывается его тип. Например, если в тексте ЭлементыФормы.КоманднаяПанель1.Кнопки.Получение.Доступность выделить ЭлементыФормы.КоманднаяПанель1, то будет показан тип КоманднаяПанель.

28.2.8. Табло

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

Рис. 548. Табло

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

Каждая формула вводится в первую колонку табличного поля и должна находиться на отдельной строке. Результат вычисления формулы выдается в колонке Значение. В колонке Тип выводится тип выражения. Если формула введена неправильно, то вместо результата появится фраза: Обнаружены синтаксические ошибки!

Управление табло и результатами вычислений осуществляется с помощью команд контекстного меню.

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

Для некоторых типов данных (см. предыдущий раздел) возможен просмотр значений в отдельном окне.

Табло также можно вывести в табличный или текстовый документ.

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

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

Для очистки содержимого строки табло необходимо выбрать строку и нажать клавишу Del.

Окно табло может размещаться на экране в различных режимах. После завершения отладки окно автоматически закрывается.

28.2.9. Окно «Локальные переменные»

Во время отладки имеется возможность открыть специальное окно, которое содержит список локальных переменных текущего метода (метод, в котором находится текущая строка исполнения встроенного языка). Вызов окна на экран выполняется выбором пункта меню Отладка – Локальные переменные, доступным при отладке.

Рис. 549. Окно локальных переменных

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

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

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

Для некоторых типов данных (см. предыдущий раздел) возможен просмотр значений в отдельном окне.

Табло также можно вывести в табличный или текстовый документ.

Окно локальных переменных может размещаться на экране в различных режимах. После завершения отладки окно автоматически закрывается.

28.2.10. Изменение значения переменной

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

Рис. 550. Изменение значения переменной

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

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

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

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

Необходимо четко понимать, возможность изменения значений переменных во время отладки может приводить к различным, непрогнозируемым, последствиям в работе информационной системы. Так, если в процессе отладки, для записываемого в базу данных объекта (например, в обработчике ПередЗаписью()), можно установить такие значения свойств, которые там не могут оказаться при реальной работе системы. Однако именно эти, некорректные значения, и будут записаны в базу данных. При этом другие алгоритмы системы могут начать работать некорректно. В связи с этим следует очень аккуратно использовать возможность изменения значений переменных и свойств объектов во время отладки.

28.2.11. Стек вызовов

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

Рис. 551. Стек вызовов

Окно отображает:

  • исполняемый метод – колонкаНазвание;
  • номер строки модуля – колонкаСтрока;
  • предмет отладки, в котором расположен модуль, – колонкаПредмет.

В первой колонке окна могут быть две пиктограммы:

  • Желтая стрелка означает вершину стека вызовов.
  • Зеленая стрелка (расположенная слева от строкиОбщаяФорма.СтекВызовов.Форма.СерверныйМетод()) указывает метод, в контексте которого будет работать вычисление переменных в окнеВыражение и в окне Табло. Если вершина стека вызовов совпадает с текущим контекстом, то зеленая стрелка не отображается на экране. Для смены контекста (а также установки курсора на строку, указанную в колонке Строка) необходимо дважды щелкнуть левой кнопкой мыши по нужной строке окна Стек вызовов.

В примере, показанном на рис.551, переменная ПеременнаяНаСервере имеет значение НаСервере, т. к. отладчик переключен в контекст метода СерверныйМетод() (об этом свидетельствует зеленая стрелочка напротив строки ОбщаяФорма.СтекВызовов.Форма.СерверныйМетод()).

Если переключить контекст на вершину стека (двойной щелчок по строке с желтой стрелкой), то значение переменной ПеременнаяНаСервере станет равно значению Повторно, т. к. произойдет переключение контекста.

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

28.2.12. Особенности отладки защищенных модулей

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

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

Если отказаться от ввода пароля, то отладчик пропускает защищенный код программы (выполняя его) и переходит на первую строку кода после защищенного модуля. Аналогично выполняется команда Шагнуть из.

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

28.3. Замер производительности

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

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

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

28.3.1. Варианты порядка действий

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

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

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

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

28.3.2. Результаты замера

Результаты замера – ссылки на конкретные строки модуля с указанием частоты их выполнения и длительности – представляются в виде табличного поля, имеющего следующие колонки:

  • Модуль– содержит название модуля.
  • Номер строки– номер строки модуля.
  • Строка– текст данной строки модуля.
  • Кол. – количество вызовов данной строки за время замера.
  • Врем.– суммарное время (сек.) выполнения данной строки за время замера.
  • %(Врем.) – процент суммарного времени выполнения данной строки к общему времени замера (общее время замера равно сумме всех промежутков времени, в которые выполнялся код конфигурации). При этом за 100 % принимается время выполнения кода на клиенте.

Рис. 552. Пиктограммы замера производительности

  • Клиент– пиктограммой (см. рис.552) отмечаются строки кода, выполняющиеся на клиенте;
  • Сервер– пиктограммой (см. рис. 552) отмечаются строки кода, выполняющиеся на сервере;
  • Обр. сервер– пиктограммами отмечаются строки кода, приводящие к вызову сервера:
  • вызов сервера происходил на уровне платформы, или непосредственно вызывались процедуры или функции, исполняемые на сервере (Непосредственный вызов серверанарис. 552);
  • локальный вызов процедуры или функции, исполняемой на клиенте, внутри которой вызов сервера происходил на уровне платформы, или непосредственно вызывались процедуры или функции, исполняемые на сервере (Вложенный вызов серверанарис. 552).

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

Рис. 553. Результат замера

Если в строке есть хотя бы один вызов процедуры (функции), то время выполнения включает время выполнения собственно операторов строки и время вызова процедуры (функции).

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

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

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

Если флажок Клиент установлен, то будут показаны результаты замера выполнения кода на клиенте.

Если флажок Сервер установлен, то будут показаны результаты замера выполнения кода на сервере.

Если флажок Клиент и флажок Сервер установлены, то будут показаны результаты замера выполнения кода на клиенте и сервере.

Флажки показываются, если выполняется отладка серверной информационной базы. Флажки доступны, если выполняется отладка серверного предмета отладки.

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

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

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

Рис. 554. Результаты замера в тексте модуля

Пиктограммами показывается выполнение кода на клиенте или сервере, а также вызовы сервера (аналогично окну с результатами замера, описание пиктограмм (см. рис. 552).

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

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

Закрытие окна результатов замера убирает из модулей колонки с количеством вызовов и процентом времени работы.

28.3.3. Сортировка результатов замера

Результаты замера могут быть отсортированы по любой колонке отчета.

Сортировка осуществляется щелчком мышью на заголовке одной из колонок. Щелчок на заголовках Модуль или Строка обеспечивает сортировку по номерам строк, Кол. – по количеству вызовов строки, Врем. Или %(Врем.) – по времени работы. Если выполнялся замер производительности выполнения кода на клиенте и на сервере, то сортировка допускается также и по этим колонкам.

28.3.4. Выборочное суммирование результатов замера

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

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

28.3.5. Особенности замера производительности при работе клиент-серверной базы

При замере производительности результаты замера для кода встроенного языка, выполняемого для одного и того же номера соединения на клиенте и на сервере, будут объединяться в один общий замер производительности. При этом указывается, какие строки кода выполнялись на клиенте, а какие – на сервере, из каких строк кода осуществлялся вызов процедуры или функции, исполняемых на сервере, а также системные вызовы (самой платформы, например, оператор Выполнить для запроса, оператор записи объекта базы данных) на сервере.

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

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

28.3.6. Сохранение результатов

Результат замера можно сохранить в файл с помощью команд Файл – Сохранить и Файл – Сохранить как. В стандартном диалоге сохранения нужно выбрать каталог и указать имя файла. Файл результатов имеет расширение *.pff.

Открыть файл с замером можно командой Файл – Открыть файл. Для отбора файлов с замерами следует использовать фильтр Замер производительности (*.pff).

28.4. Механизм имитации задержек при вызове сервера

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

ПРИМЕЧАНИЕ. Включить механизм можно только в тонком клиенте и в режиме управляемого приложения толстого клиента.

Механизм обеспечивает имитацию временных задержек, возникающих в следующих случаях:

  • задержка при вызове сервера: указывается в секундах на каждый вызов сервера;
  • задержка при отправке данных на сервер: указывается в секундах в расчете на каждые 1 кбайт (1024 байта) данных, отправляемых на сервер.
  • задержка при получении данных с сервера: указывается в секундах в расчете на каждые 1 кбайт (1024 байта), принимаемых с сервера.

Включение механизма можно обеспечить с помощью соответствующей настройки параметров конфигуратора (см. здесь), а также с помощью ключа командной строки /SimulateServerCallDelay [-CallXXXX] [-SendYYYY] [-ReceiveZZZZ], где:

  • Call– параметр, указывающий величину задержки при вызове сервера в секундах, если не указан, то 1 секунда.
  • Send– параметр, указывающий величину задержки в секундах в расчете на каждые 1 кбайт данных, отправляемых на сервер. Если не указан, то 1 секунда.
  • Receive– параметр, указывающий величину задержки в секундах в расчете на каждые 1 кбайт данных, принятых с сервера. Если не указан, то 1 секунда.

Пример:

Копировать в буфер обмена/SimulateServerCallDelay -Call2.1 -Send1.3 -Receive1.2

ПРИМЕЧАНИЕ. Максимальное значение устанавливаемой задержки равно 9,99 секунды. Значение, равное 0, означает, что данная задержка не применяется.

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

28.5. Отображение вызовов сервера

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

Режим можно включить с помощью соответствующей настройки параметров конфигуратора (см. здесь) или ключа командной строки /DisplayPerformance. Отображение показателей производительности также можно включить и в режиме 1С:Предприятие с помощью флажка Отображать показатели производительности диалога Сервис – Параметры. По умолчанию механизм выключен.

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

Рис. 555. Панель показателей производительности

Если включен режим имитации задержек при вызове сервера, то картинка в окне, показывающем вызовы сервера, будет иметь другой вид:

Рис. 556. Вызовы сервера в режиме имитации задержек при вызове сервера

Если прикладное решение находится в состоянии, когда основное окно приложения еще не открыто или уже закрыто, но прикладной код работает, то окно показателей производительности имеет вид:

Рис. 557. Вызовы сервера

Если при этом включен режим имитации задержек сервера, то окно показателей производительности будет иметь такой вид:

Рис. 558. Имитация задержек при вызове сервера

При изменении данных, отображаемых в окне вызовов сервера, они выводятся красным цветом.

По умолчанию окно состоит из двух счетчиков: Текущие вызовы и Накопленные вызовы:

  • Текущие вызовы– показывает состояние вызовов сервера с некоторого момента времени: с начала работы механизма или с последнего пользовательского действия, после которого 0,2 сек. Не было других пользовательских действий.
  • Накопленные вызовы– показывает состояние вызовов сервера с начала работы механизма или с последнего его принудительного сброса через команду контекстного меню.

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

Рис. 559. Меню настройки

В диалоге настройки можно указать следующие параметры:

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

Рис. 560. Настройка показателей производительности

Также контекстное меню окна содержит следующие команды:

  • Очистить накопленные– очищает счетчик накопленных вызовов;
  • История текущих… –открывает окно с историей счетчика текущих вызовов;
  • История накопленных…– открывает окно с историей счетчика накопленных вызовов.

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

Необходимо учитывать следующие особенности механизма:

  • при работе в файловом варианте (при прямом соединении с информационной базой) объем данных отображается без сжатия, так как сжатие в этом случае не производится;
  • при работе в клиент-серверном варианте или в файловом варианте с подключением через веб-сервер, при использовании режима сжатия трафикаSDC, значения показателей могут зависеть от последовательности действий, так как сжатие выполняется с использованием предыдущих передаваемых данных.

В веб-клиенте данный механизм имеет ряд особенностей:

  • Учитываются только синхронные запросы.
  • Объем передаваемых данных отображается в символах, а не байтах. Результаты замеров можно использовать для оценочного сравнения различных вариантов вызова в веб-клиенте и не рекомендуется использовать для сравнения объема передаваемых данных между различными видами клиентов.
  • Показатели производительности не отображаются до момента отображения основного окна приложения, при этом значения показателей накапливаются. В результате, после отображения основного окна приложения, можно увидеть интересующие результаты запуска веб-клиента.
  • Окно с показателями имеет больший размер, чем на других клиентах, и не отображается поверх других окон.

28.6. Автоматизированное тестирование прикладных решений

28.6.1. Общая информация

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

ВНИМАНИЕ! Автоматизированное тестирование поддерживается только для управляемого приложения.

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

В процессе тестирования участвуют две системы: менеджер тестирования и клиент тестирования. Менеджер тестирования обеспечивает:

  • Установку соединения с клиентом тестирования для выполнения сценария тестирования (тестового соединения);
  • Выполнение собственно сценария тестирования;
  • Оценку результатов тестирования (при необходимости).

Клиент тестирования обеспечивает:

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

Менеджером тестирования может выступать толстый или тонкий клиент, клиентом тестирования может быть толстый клиент, тонкий клиент или веб-клиент. Один менеджер тестирования может быть одновременно подключен к нескольким клиентам тестирования, в тоже время один клиент тестирования может быть подключен только к одному менеджеру тестирования. Для взаимодействия менеджера тестирования и клиента тестирования используется прямое TCP/IP соединение через определенный порт (который должен быть «открыт»). Для взаимодействия менеджера тестирования и клиента тестирования, который является веб-клиентом, используется сервер «1С:Предприятия» (для клиент-серверного варианта работы тестируемого приложения) или веб-сервер (для файлового варианта). Для проведения тестирования не требуется вносить какие-либо изменения в тестируемое приложение.

Механизм автоматизированного тестирования не позволяет получать информацию о структуре оконных объектов для системных окон веб-браузера и управлять ими. Поэтому необходимо избегать в веб-клиенте действий, которые могли бы спровоцировать появление таких окон, так как это приведёт к невозможности автоматического продолжения теста. В качестве примера такого действия можно привести попытку ввода текста в поле ввода с автоматическим заполнением: в тонком клиенте в этом случае будет отображен встроенный диалог, а в веб-клиенте – системный. Поэтому при планировании теста необходимо учитывать эту особенность и соответственно создавать тест.

Сценарий тестирования может располагаться как в тестируемом прикладном решении, так и в отдельном прикладном решении. При этом схема взаимодействия менеджера тестирования и клиента тестирования не изменяется.

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

Запуск клиентского приложения в режиме клиента тестирования не влияет на быстродействие и другие параметры клиентского приложения, однако позволяет любому менеджеру тестирования подключиться к нему, зная имя (или IP-адрес) компьютера и порт, с помощью которого происходит взаимодействие.

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

28.6.2. Запуск системы тестирования

28.6.2.1. Общая информация

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

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

28.6.2.2. Запуск клиента тестирования

Для запуска клиента тестирования предназначен ключ командной строки запуска клиентского приложения TestClient. Также можно указать номер TCP порта, с помощью которого будут взаимодействовать менеджер и клиент тестирования. Для этого служит параметр TPort ключа TestCleint. Если значение для этого параметра не указано, используется значение 1538. Указывать этот параметр нужно в том случае, если на одном компьютере выполняется несколько клиентов тестирования.

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

Копировать в буфер обмена1cv8c ENTERPRISE /IBName «Test Application» /TestClient -Tport 1843

В данном примере тонкий клиент (1Cv8c) будет выступать клиентом тестирования для информационной базы Test Application и будет использовать TCP-порт 1843 для взаимодействия с менеджером тестирования.

Если клиентское приложение запущено в качестве клиента тестирования, то в заголовке основного окна приложения будет отображаться текст – Клиент тестирования. Аналогичный текст будет также отображаться в окне О программе.

Для подключения к клиенту тестирования, являющемуся тонким или толстым клиентом, необходимо знать два параметра: IP-адрес (или имя компьютера) на котором запущен клиент тестирования, и номер TCP-порта, с помощью которого будет выполняться взаимодействие.

В случае запуска веб-клиента ситуация немного сложнее. Кроме указания параметра TestClient, необходимо указать еще один параметр командной строки запуска: TestClientID<Идентификатор>, который содержит уникальный идентификатор тестируемого клиентского приложения. При этом для однозначного указания клиента тестирования, в случае веб-клиента, необходимо три параметра:

  • Адрес веб-сервера, на котором развернуто тестируемое приложение. Адрес информационной базы знать не обязательно!
  • Номер TCP-порта, через который веб-сервер будет передавать данные между менеджером и клиентом тестирования.
  • Идентификатор конкретного экземпляра тестируемого приложения, исполняющегося в веб-клиенте.

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

28.6.2.3. Запуск менеджера тестирования

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

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

Копировать в буфер обмена1cv8c ENTERPRISE /IBName «Test Manager» /TestManager

Если клиентское приложение запущено в качестве менеджера тестирования, то в заголовке основного окна приложения будет отображаться текст – Менеджер тестирования. Аналогичный текст будет также отображаться в окне О программе.

28.6.2.4. Запуск в режиме записи журнала интерактивных действий

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

Также можно указать номер IP-порта, с помощью которого менеджер тестирования сможет управлять записью журнала интерактивных действий. Для этого служит параметр TPort ключа UILogRecorder. Если значение для этого параметра не указано, используется значение 1538. Также можно указать системе, куда записывать файл журнала. Для этого служит параметр File ключа UILogRecorder. Если этот параметр не указан, то после окончания записи клиентское приложение откроет окно текстового документа, в котором будет содержаться записанный журнал.

Таким образом, строка запуска клиентского приложения, которое должно позволять формировать журнал интерактивных действий, выглядит следующим образом:

Копировать в буфер обмена1cv8c ENTERPRISE /IBName «Test Manager» /UILogRecorder

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

Рис. 561. Командная панель тестирования

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

Рис. 562. Командная панель тестирования во время записи

С помощью командной панели можно завершить запись интерактивных действий, при этом будет выполнена запись списка действий в файл (если указан параметр File) или открыто окно текстового документа со списком действий. Также имеется возможность прервать запись журнала и приостановить и продолжить запись журнала.

28.6.3. Описание возможностей

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

Рис. 563. Схема тестируемого приложения

Далее будут более подробно рассмотрены представленные объекты.

ТестируемоеПриложение

Предоставляет следующие возможности:

  • Установить соединение с тестируемым приложением;
  • Разорвать установленное соединение с тестируемым приложением;
  • Получить активное окно;
  • Получить список окон тестируемого приложения;
  • Получить текущую информацию об ошибке;
  • Получить начальную страницу тестируемого приложения;
  • Найти объект с указанными параметрами в иерархии подчинённых объектов;
  • Ожидать отображения объекта с заданными параметрами на экране;
  • Получать и очищать накопленные показатели производительности тестируемого приложения;
  • Получать командный интерфейс тестируемого приложения;
  • Имитировать работу с диалогом выбора файлов;
  • Управлять ведением журнала интерактивных действий пользователя в тестируемом приложении.

ТестируемоеОкноКлиентскогоПриложения

Описывает окно клиентского приложения и предоставляет методы для управления окном:

  • Получение коллекции подчиненных объектов окна;
  • Поиск объекта с указанными параметрами в иерархии подчинённых объектов окна клиентского приложения;
  • Определить, что данное тестируемое окно описывает начальную страницу (рабочий стол);
  • Получить командный интерфейс тестируемого клиентского приложения;
  • Работать с сообщениями пользователю;
  • Закрыть тестируемую форму;
  • Выполнение команды по навигационной ссылке.

ТестируемыйКомандныйИнтерфейсОкна

Описывает командный интерфейс тестируемой формы прикладного решения. Этому объекту подчинены несколько объектов ТестируемаяГруппаКомандногоИнтерфейса:

  • Панель разделов;
  • Панель навигации (кроме интерфейсаТакси);
  • Панель действий (кроме интерфейсаТакси);
  • Панель функций текущего раздела;
  • Панель открытых;
  • Панель инструментов;
  • Панель избранного;
  • Панель истории;
  • Меню функций (кроме интерфейсаФормы в отдельных окнах).

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

ТестируемаяГруппаКомандногоИнтерфейса

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

ТестируемаяГруппаКомандногоИнтерфейса может состоять из элементов двух типов:

  • ТестируемаяГруппаКомандногоИнтерфейса,
  • ТестируемаяКнопкаКомандногоИнтерфейса.

ТестируемаяКнопкаКомандногоИнтерфейса

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

ТестируемаяФорма

Описывает форму тестируемого приложения и предоставляет методы для управления формой:

  • Получение коллекции подчиненных объектов формы;
  • Поиск объекта с указанными параметрами в иерархии подчинённых объектов формы;
  • Получение текущего активного элемента формы;
  • Получение кнопки по умолчанию;
  • Получение признака модифицированности;
  • Получение командной панели формы;
  • Осуществлять выбор из списка или из меню;
  • Изменить текущий элемент формы на следующий/предыдущий в соответствии с порядком обхода элементов формы (список элементов в редакторе управляемой формы).

ТестируемоеПолеФормы

Описывает поле ввода формы и предоставляет методы для управления этим элементом формы:

  • Получение коллекции подчиненных объектов поля формы;
  • Поиск объекта с указанными параметрами в иерархии подчинённых объектов поля формы;
  • Определение вида элемента формы;
  • Позволяет имитировать интерактивные действия для следующих видов поля управляемой формы:
  • Поле ввода;
  • Поле надписи;
  • Поле картинки;
  • Поле переключателя;
  • Поле флажка;
  • Поле индикатора;
  • Поле полосы регулирования;
  • Поле календаря;
  • Поле текстового документа;
  • Поле форматированного документа;
  • Поле табличного документа.
  • Не позволяет имитировать интерактивные действия для следующих видов поля управляемой формы:
  • Поле HTML-документа;
  • Поле географической схемы;
  • Поля диаграммы (любой);
  • Поля графической схемы.
  • Если объект связан с полем ввода, то предоставляются следующие возможности:
  • Получить текст, редактируемый в поле ввода;
  • Имитировать нажатие кнопкиОчистить;
  • Имитировать нажатие кнопкиВыбрать;
  • Имитировать нажатие кнопкиОткрыть;
  • Имитировать открытие списка выбора;
  • Имитировать выбор строки из списка выбора;
  • Имитировать создание нового элемента из списка выбора;
  • Отменять редактирование строки в поле ввода;
  • Имитировать нажатие кнопок регулирования;
  • Для выпадающего списка:
  • Открывать список;
  • Ожидать завершение формирования списка;
  • Закрывать список;
  • Выполнять выбор из выпадающего списка.
  • Если объект связан с полем вида флажок, то предоставляются следующие возможности:
  • Имитировать изменение состояния флажка.
  • Если объект связан с полем вида переключатель, то предоставляются следующие возможности:
  • Имитировать выбор значения переключателя.
  • Если объект связан с полем вида календарь, то предоставляются следующие возможности:
  • Имитировать установку выбранной даты;
  • Имитировать выбор даты;
  • Имитировать операции перехода вперед или назад (на месяц и год).
  • Если объект связан с полем вида табличный документ, то предоставляются следующие возможности:
  • Получение адреса текущей области;
  • Получение текста текущей области;
  • Имитация начала редактирования текущей области;
  • Имитация окончания редактирования текущей области;
  • Получение текущего режима редактирования табличного документа.
  • Если объект связан с полем ввода вида табличный документ, текстовый документ или форматированный документ, то предоставляется возможность выполнять запись документа в файл.

ТестируемаяТаблицаФормы

Описывает таблицу формы и предоставляет методы для управления этим элементом формы:

  • Получение активного элемента таблицы;
  • Получение текста ячейки таблицы;
  • Выполнять перемещение по таблице как по строкам, так и по колонкам;
  • Выбрать строку;
  • Добавить или удалить строку;
  • Получение текущего режима редактирования таблицы;
  • Изменять пометку удаления у строки;
  • Выделять и получать выделенные строки;
  • Изменять порядок сортировки таблицы;
  • Выполнять переход по уровням иерархических списков;
  • Свернуть или развернуть узел для иерархических списков;
  • Проверить состояние узла иерархического списка (свернут или развернут) и возможность развертывания текущей строки иерархического списка.

ТестируемаяКнопкаФормы

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

ТестируемаяГруппаФормы

Описывает группу элементов формы и предоставляет методы для управления ей:

  • Развернуть группу;
  • Свернуть группу;
  • Получить текущую страницу группы.

ТестируемаяДекорацияФормы

Описывает декорацию формы и предоставляет возможность имитации нажатия гиперссылки или картинки.

28.6.4. Пример сценария тестирования

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

Копировать в буфер обмена// Подключимся к тестируемому приложению ТестируемоеПриложение = Новый ТестируемоеПриложение(«localhost»); ТестируемоеПриложение.УстановитьСоединение(); // Найдем главное окно ГлавноеОкноТестируемого = ТестируемоеПриложение.НайтиОбъект(Тип(«ТестируемоеОкноКлиентскогоПриложения»)); ГлавноеОкноТестируемого.Активизировать(); // Выполним команду создания элемента справочника товаров ГлавноеОкноТестируемого.ВыполнитьКоманду(«e1cib/command/Справочник.Товары.Создать»); ТестируемоеПриложение.ОжидатьОтображениеОбъекта(Тип(«ТестируемаяФорма»), «Товар*»); ТестируемаяФорма = ТестируемоеПриложение.НайтиОбъект(Тип(«ТестируемаяФорма»), «Товар*»); ТестируемаяФорма.Активизировать(); // Зададим наименование для нового товара ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемоеПолеФормы»), «Наименование»); ЭлементФормы.Активизировать(); ЭлементФормы.ВвестиТекст(«Новый товар»); // Запишем элемент ЭлементФормы = ТестируемаяФорма.НайтиОбъект(Тип(«ТестируемаяКнопкаФормы»), «Записать и закрыть»); ЭлементФормы.Нажать();

28.6.5. Сервисные возможности

28.6.5.1. Запись журнала действий пользователя

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

28.6.5.2. Преобразование журнала действий пользователя в сценарий автоматизированного тестирования

Записанный журнал действий пользователя можно преобразовать в текст на встроенном языке для последующего использования. Для выполнения такого преобразования можно использовать специальный инструмент, расположенный на диске ИТС: Технологическая поддержка – 1С:Предприятие 8 – Универсальные отчеты и обработки – Преобразование журнала действий пользователя (http://its.1c.ru/db/metod81#content:5014:1).

С помощью этого инструмента можно:

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

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

Был ли данный материал полезен вам? Да Нет