Панель « Замер производительности »
Панель Замер производительности показывает результаты замера производительности, выполненного в процессе отладки.

Эта панель открывается автоматически после завершения замера (когда отжата кнопка Замер производительности в командной панели основного окна). При этом результаты замера автоматически сохраняются в рабочей области и могут быть использованы для просмотра в будущем, сравнения или для экспорта в другой проект. Каждый замер имеет стандартное имя, которое вы можете изменить.
Также вы можете открыть эту панель самостоятельно из главного меню основного окна, нажав Окно > Показать панель > Прочие… > 1С:Предприятие > Замер производительности .
Структура информации в панели
Стандартно результаты замера производительности представлены в виде списка выполнявшихся операторов, в котором, помимо оператора (колонка Строка ), указаны модуль (колонка Модуль ) и номер строки (колонка № строки ), в которой расположен этот оператор.
Помимо этого вы можете отобразить результаты замера в более общем виде — в виде списка методов, которые выполнялись. Этот список вы можете дополнительно сгруппировать по модулям.
Условные обозначения
Код выполняется на клиенте.
В процессе выполнения кода происходит обращение к серверу
Код выполняется на сервере.
В колонке Чистое время (с) цветом и шириной фона обозначается доля (процент), которую занимает выполнение данной строки в общем времени замера.
Стандартное имя текущего замера производительности. Состоит из имени проекта (ДемоУП_14), даты замера (15:44:11, Пт, 30 авг 2019) и предметов отладки (Тонкий клиент). К стандартному имени вы можете добавить свой префикс. Из выпадающего списка вы можете выбрать один из имеющихся в рабочей области замеров производительности для того, чтобы показать его результаты в панели.
Колонки
Модуль Модуль, которому принадлежит строка кода. Эта колонка показывается, если результаты замера представлены в виде таблицы операторов. № строки Номер строки в модуле. Эта колонка показывается, если результаты замера представлены в виде таблицы операторов. Строка Строка кода, которая выполнялась. Эта колонка показывается, если результаты замера представлены в виде таблицы операторов. Метод Метод, который выполнялся. Эта колонка показывается, если результаты замера представлены в виде списка методов. Кол-во вызовов Сколько раз выполнялась данная строка кода за время замера. Полное время (с) Полное время выполнения строки кода. Оно складывается из времени вызова метода (не показывается в таблице) и чистого времени выполнения оператора, которое показывается в колонке Чистое время (с) . Чистое время (с) Чистое время выполнения оператора (без учета времени вызова процедуры или функции). Также в этой колонке показывается доля (в процентах), которую заняло выполнение этого оператора в общем времени замера. Клиент В этой колонке пиктограммой
отмечаются строки, выполнявшиеся на клиенте. Сервер В этой колонке пиктограммой
отмечаются строки, выполнявшиеся на сервере. Вызов сервера В этой колонке пиктограммой
отмечаются строки, выполнение которых привело к вызову сервера.
Клики мышью
Командная панель

Переименовать результат Позволяет добавить произвольную строку в начало стандартного имени замера.
Сравнить с. Позволяет сравнить текущий замер производительности с другим замером.
Импорт результатов замеров Импортирует результаты замеров производительности в 1C:EDT .
Экспорт результатов замеров Экспортирует результаты замеров производительности из 1C:EDT .
Очистить результаты Очищает панель Замер производительности и историю замеров.
Развернуть все Раскрывает все уровни иерархии в панели.
Свернуть все Сворачивает все уровни иерархии, существующие в панели, до первого уровня.
Группировать методы по модулям Группирует методы по модулям в том случае, если результаты замера представлены в виде списка методов.
Результаты клиента Если нажата, показываются операторы, выполняемые на клиенте и, возможно, выполняемые на сервере (если нажата
). Если отжата — показываются только операторы, выполняемые на сервере.
Результаты сервера Если нажата, показываются операторы, выполняемые на сервере и, возможно, выполняемые на клиенте (если нажата
). Если отжата — показываются только операторы, выполняемые на клиенте.
Табличное представление Результаты замера представляются в виде таблицы выполнявшихся операторов с колонками Модуль , № строки и Строка .
Список методов Результаты замера представлены в виде списка выполнявшихся методов. Вы можете сгруппировать этот список по модулям.
Разбор тестирования 1С:Профессионал и PMP
![]()
5.56 Замер производительности можно выполнить
1. для определенного участка кода (расположенного между точками останова)
2. для кода выполняемого при старте системы (без использования точек останова)
3. для кода выполняемого при окончании работы системы (без использования точек
останова)
4. Варианты 1 и 2
5. Варианты 1 и 3
6. Верны все варианты
правильный ответ — вариант 6, проверено в официальном тренажере 1с.
примечательно, что картинку забыли убрать — мне кажется, она не имеет отношения к самому вопросу.
Оценка производительности работы кода
В этой статье мы научимся делать замеры производительности работы 1С: Предприятия. Оценку производительности можно выполнять как в целом для всего приложения, начиная с момента его запуска и заканчивая закрытием, так и отдельного куска кода, если Вы хотите замерить одно какое-то узкое место. Все примеры по замерам производительности я буду показывать на демонстрационной конфигурации «Управляемое приложение 1С».
Научимся делать замер производительности всего приложения в целом от начала работы, до конца. Для этого необходимо запустить 1С: Предприятие в режиме конфигуратор, и в меню Отладка выбрать пункт «Замер производительности»

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

Соглашаемся, запускаем отладку (клавиша F5) и работаем. Конфигуратор 1С в это время должен быть включен!
Подробно о работе с отладкой читайте в этой статье:
Отладка в конфигураторе 1С
После того как Вы все сделаете и закроете 1С: Предприятие в пользовательском режиме, то откроется окно замера производительности.

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

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

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

Смотрите на последний рисунок, как видно, строк в таблице замера больше, чем строк в самом обработчике, который мы замеряли. Это потому что в таблицу замеров входят не только строки выделенного фрагмента кода, но и строки процедур и функций, которые в этом коде вызываются. В нашем случае это две функции ПолучитьТекущуюСтрокуТовары и ПолучитьЦенуТовар.
Строки 16,17, 20, 22 относятся к функции ПолучитьЦенуТовара, а строки 33,34 – ПолучитьТекущуюСтрокуТовары. Если мы кликнем по нужной строке мышкой, то перейдем на эту строку в модуле.
Разберем некоторые колонки:
«Кол» — в этой колонке указано сколько раз выполнялась данная строка
«Время чистое» — время в секундах, которое было потрачено на выполнение данной строки, в данном случае берется суммарное время, т.е. все время, когда строка вызывалась.
«% времени» — отношение «Время чистое» к общему времени выполнения замера. Причем за 100% принимается выполнение кода на клиент. Т.е. корректно эта колонка работает когда мы начали на клиенте и закончили на клиенте, а если мы начали на сервере, а закончили на клиенте, то результат может быть не всегда корректен.
На отображение в колонках «Время чистое» и «% времени» влияет флаг «Для вызова процедур и функций включать время выполнения». Этот флаг нужно включать, когда мы хотим показать время на вызов процедуры или функции.
После того как мы установили этот флаг, поменялись значения в колонках «Время» и «% времени». Т.е. мы увидели, сколько относительного и абсолютного времени в целом тратиться на эту строку
Стр.Цена = ПолучитьЦенуТовара(Объект.Дата, Стр.Товар);
Разберемся, откуда взялась цифра 98,64% – время выполнения этой строки.
Если сложить проценты времени на выполнение кода в процедуре ПолучитьЦенуТовара, а это строки 16, 17, 20 и 22, будет — 86,41 %, но на рисунке мы видим, что исполнение процедуры занимает 98,64 % общего времени. Где еще 98,64 – 86,41 = 12,23 процента? Посмотрите на предыдущий рисунок, 12.23% — это именно время на вызов серверной процедуры.
Таким образом, если установлен флаг «Для вызова процедур и функций включать время выполнения» то показывает относительное и абсолютное время выполнения и вызова процедуры или функции. В тоже время если этот флаг снят, то показывается время только на вызов метода. Поскольку вызов любой серверной процедуры или функции (без разницы в контексте она формы, или внеконтекстная) требует определенных затрат, то информации о продолжительности вызова метода может быть очень полезной.
С остальными колонками все более менее понятно. Колонка «Клиент» при помощи специальной пиктограммы указывает, что строка выполняется на клиенте. А колонка «Сервер» указывает, что строка выполняется на сервере. Колонка «Обр. сервер» указывает, что в данной строке происходит передача управления на сервер.
Так же имейте ввиду, что часть информации из таблицы замеров дублируется в модуле. Цифры процентов в этом случае идентичны цифрам, когда флаг «Для вызова процедур и функций включать время выполнения» снят.

И на последок отмечу, когда будите делать замеры тех или иных процессов, имейте ввиду что скорость выполнения зависит от многих факторов (загруженность процессора, оперативной памяти). Поэтому желательно делать несколько разных замеров, что бы вычислить среднюю величину и исключить случайные скачки.
Пять эффективных инструмента отладки
Я стараюсь как можно чаще выпускать различные интересные бесплатные статьи и видеоуроки. Поэтому буду очень рад, если Вы поддержите мой проект перечислив любую сумму:
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Процесс замера времени выполнения кода в конфигурации системы 1С: Предприятие
Обзорно рассмотрим, какие есть способы замера производительности работы 1С в общем и времени выполнения кода в частности; в каких случаях рекомендуется использовать тот или иной способ.
Разделение на общую производительность 1С и 1С время выполнения кода неслучайно. Очевидно, что второе является лишь частью первого, и время, например, открытия формы, замеренное по секундомеру, будет, как правило, больше времени, полученное при замере выполнения кода модуля 1С этой формы. Какие еще есть траты времени при работе 1С, помимо выполнения кода? Это:
· время передачи данных в сети с клиента на сервер 1С и обратно,
· время подготовки запроса к СУБД на сервере 1С,
· в т.ч ожидание ресурсов при многозадачной и многопользовательской работе
· время передачи данных в сети с сервера 1С на сервер СУБД и обратно,
· время обработки запроса и выборки данных на стороне СУБД,
· в т.ч. время ожидания снятия блокировок данных 1С,
· время на проверку потоков антивирусами,
· время на виртуализацию серверов
2. Замер производительности секундомером
Между прочим, использование секундомера является доступным способом замера и во многих случаях – первым этапом работ по оптимизации производительности. Оценка по секундомеру «близка» пользователю: именно столько секунд он ждет открытия формы, проведения документа или формирования отчета в 1С.
Ограничения этого способа:
· Удобен для замеров «внешних признаков» работы в пользовательском режиме 1С (форма открылась, документ провелся, отчет сформировался), и не удобен для «внутренних»: засекать в 1С время выполнения кода в отладчике секундомером уже сложно, особенно с учетом вложенных команд вызовов процедур и т.п.
· Удобен только для «человечески комфортных» интервалов: ему недоступны процессы, выполняемые за доли секунды; проблематично также ожидать завершение процесса, длящегося тысячи секунд, чтобы вовремя остановить замер.
· Статистическая ненадежность результата замера: ограниченное количество ручных замеров; непрезентативное период замера: например, замер проводится, когда система полностью свободна или, напротив, когда она кратковременно, но крайне перегружена.
3. Использование подсистемы оценки производительности в конфигурации системы 1С: Предприятие
Следующий способ замера лишен недостатков ручного хронометража, при этом сохранена «близость» его оценок пользователям, а возможности существенно расширены.
Типовые конфигурации системы 1С, построенные на базе БСП, содержат в себе подсистему «Оценка производительности». Для заданного набора «ключевых операций» (проведение документа, нажатие кнопки расчета, открытие формы и т.д.) можно запустить систему сбора статистики по времени их выполнения. Время выполнения – полное – с учетом всех составляющих расчета временных затрат. Типовые конфигурации системы 1С поставляются уже с предзаданным набором ключевых операций (несколько сотен) и для начала работы операционной системы ее лишь достаточно активировать в настройках.
Ключевые операции замера производительности
Набор ключевых операций можно дополнять собственными, но это требует корректировки программного кода системы конфигураций для добавления строк с запуском и остановом замера по добавленным ключевым операциям. Границы ключевой операции – места запуска и останова замера – определяют то, какие временные затраты будут подсчитаны.
Результаты собраны в отчет, где для каждой ключевой операции показана накопленная статистика за период: среднее время выполнения операции, количество замеров и т.д.
Сформировать
Подсистема поддерживает методику APDEX, рассчитывает этот показатель напрямую и позволяет его использовать для постановки задач на оптимизацию производительности и приемку их результатов, опираясь на количественную (объективную) оценку.
Подсистема со своей задачей справляется хорошо. К ее недостаткам можно отнести, разве что:
· Дополнительное использование ресурсов на ведение регистра с данными по замерам
· Необходимость править программный код системы конфигурации при добавлении собственных (нетиповых) ключевых операций
Эти недостатки достаточно условны. Подсистему можно включать только на этапе процесса оптимизации, а после ее проведения выключать и, таким образом, освобождать ресурсы. А что касается необходимости правок программного кода системы, то во-первых, они незначительны и могут располагаться в расширении, не затрагивая типовой код; а во-вторых, если вы дополняете список ключевых операций, то, наверняка, уже имеете свои доработки типовой конфигурации системы 1С и, следовательно, вставка кода начала и завершения замеров вообще не критична.
Область применения подсистемы «Оценка производительности» — выявление узких мест (в терминах APDEX) и приоритетности их оптимизации. Назвать причины неудовлетворительной производительности, в т.ч. отдельно показать время исполнения программного кода системы, она не может.
4. Замер производительности в отладчике
Когда выявлены ключевые операции, требующие оптимизации производительности, можно пойти в конфигуратор и запустить в 1С замер производительности в режиме отладки. Собственно здесь и отображается «время выполнения кода» на стороне 1С.
Используя точки останова программы и запуская/останавливая в них замер, можно анализировать различные участки кода. Оптимизируя программный код 1С, можно сравнивать исходный и полученный результат.
Следует понимать, что это именно время выполнения кода и оно может быть много меньше, полного время выполнения «ключевой операции», которое видит пользователь по секундомеру. Почему так – мы рассмотрели в начале статьи.
Для анализа других временных затрат: выполнения запросов на стороне СУБД, передачи данных по каналам связи используют другие инструменты, например, «Технологический журнал». Эта тема глубоко специальная и выходит за рамки нашей обзорной статьи.
Мы рассмотрели место «замера времени выполнения кода» в структуре производительности 1С, а также особенности тех или иных способов замера производительности.
Подробные инструкции по подсистеме «Оценка производительности», а также «Замер производительности» в отладчики есть в документации по 1С.