Как убрать или настроить показатели производительности «Текущие и накопленные вызовы» в тонком клиенте 1С?

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

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

Что это за окно и какие показатели оно отображает?

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

Давайте проанализируем полный состав показателей производительности, которые умеет отслеживать этот инструмент:

Как скрыть или настроить панель показателей производительности?

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

Способ 1. Отключение непосредственно в режиме «1С:Предприятие»

Для отключения панели выполним следующие действия:

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

Если в вашем меню «Параметры» данный пункт отсутствует, это означает, что у вашей учетной записи недостаточно прав на изменение настроек отладки, либо отображение жестко заблокировано платформой при запуске.

Способ 2. Отключение параметров запуска в Конфигураторе

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

  1. Откроем информационную базу в режиме Конфигуратор.
  2. В главном меню перейдем по пути: «Сервис» — «Параметры».
  3. В открывшемся окне перейдем на вкладку «Запуск 1С:Предприятия», а затем откроем подвкладку «Дополнительные».
  4. Снимем флажок «Отображать показатели производительности».
  5. Нажмем кнопку «Применить». Теперь при запуске отладки платформа не будет принудительно активировать это окно.

Способ 3. Использование ключей командной строки

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

Скрытые интерактивные возможности окна показателей

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

Архитектурный смысл вызовов в файловой версии: куда уходят данные?

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

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

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

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

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

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

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

Рассмотрим пример неоптимального кода:


// ПЛОХОЙ ВАРИАНТ: вызовы сервера происходят внутри цикла на клиенте
&НаКлиенте
Процедура РассчитатьЦеныНаКлиенте()
    Для Каждого СтрокаТЧ Из Объект.Товары Цикл
        // Каждый проход цикла совершает один полноценный контекстный вызов сервера!
        СтрокаТЧ.Цена = ПолучитьЦенуНаСервере(СтрокаТЧ.Номенклатура);
    КонецЦикла;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЦенуНаСервере(ВыбраннаяНоменклатура)
    Возврат Ценообразование.ПолучитьАктуальнуюЦену(ВыбраннаяНоменклатура);
КонецФункции

В этом случае панель показателей производительности мгновенно зафиксирует 10 000 текущих вызовов сервера! На локальном компьютере в файловой версии эта операция может выполниться за пару секунд, но при работе через медленный мобильный интернет или VPN-соединение система «зависнет» на несколько минут, так как клиент и сервер будут непрерывно обмениваться пакетами данных.

Теперь разберем правильный, оптимизированный подход к решению этой задачи:


// ХОРОШИЙ ВАРИАНТ: пакетная передача данных за один серверный вызов
&НаКлиенте
Процедура РассчитатьЦеныОптимизированно()
    // Собираем массив номенклатуры на клиенте
    МассивНоменклатуры = Новый Массив;
    Для Каждого СтрокаТЧ Из Объект.Товары Цикл
        МассивНоменклатуры.Добавить(СтрокаТЧ.Номенклатура);
    КонецЦикла;
    
    // Делаем всего один вызов сервера для получения всех цен сразу
    ТаблицаЦен = ПолучитьТаблицуЦенНаСервере(МассивНоменклатуры);
    
    // Заполняем цены на клиенте из полученной таблицы
    Для Каждого СтрокаТЧ Из Объект.Товары Цикл
        СтрокаТЧ.Цена = НайтиЦенуВТаблице(ТаблицаЦен, СтрокаТЧ.Номенклатура);
    КонецЦикла;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьТаблицуЦенНаСервере(МассивНоменклатуры)
    Возврат Ценообразование.ПолучитьТаблицуАктуальныхЦен(МассивНоменклатуры);
КонецФункции

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

Имитация задержек сервера: совместное использование инструментов

Чтобы окончательно убедиться в высоком качестве разработанного интерфейса, мы можем совместить использование окна показателей производительности со специальным встроенным режимом платформы — «Имитация задержки при вызове сервера».

Этот режим позволяет искусственно замедлить отклик локального «сервера» (даже в файловой версии), моделируя работу пользователя через медленные каналы связи (GPRS, 3G, спутниковый интернет или загруженный VPN-канал). Включив задержку, например, в 1.5 секунды, разработчик сразу же увидит, насколько отзывчивым останется интерфейс программы. Если при нажатии одной кнопки счетчик вызовов начнет стремительно увеличиваться, интерфейс заблокируется, наглядно демонстрируя необходимость срочного проведения рефакторинга кода.

← На главную