Замер производительности контура 1С и поиск узких мест

06.04.26

База данных - HighLoad оптимизация

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Поиск тормозов на клиенте
.epf 2,25Mb ver:23.09.2026
22 2 500 руб. Купить
Замеряем производительность контура 1с
.epf 101,46Kb ver:09.04.2026
48 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

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

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

  1. Популярные тесты "гилев" и fragster создают свою тестовую базу, создавая более - менее полноценную нагрузку и позволяет сравнить производительность с другими - но не дает мало информации, где конкретно узкое место.
  2. Замеры типа "нагрузочный тест" показывают, сколько пользователей "выдержит" система, но не дает сравнения с другими системами и также не показывает узкие места.
  3. Замеры типа "апдекс" показывают достаточно странные данные - потому что даже один тип документа содержит разные данные как по типу, так и по количеству строк. И говорить, что система стала быстрее или медленнее, когда у всех разные права, разное количество документов, особенно в конце года, пользователей, и постоянно меняется конфигурация, по-моему, бессмысленно...

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

 

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

В будущем возможно усложню.

 

Как пользоваться и интерпретировать результаты.

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

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

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

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

В обработке две кнопки - Запустить и Отчет. Параметры только для отладки.

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

 

Тест

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

С другой стороны, есть колонка "Длительность мс" - где наглядно видна разница в организации циклов и затраты времени на вызовы функций клиента и сервера... 

 

 

Пример работы теста и что делать с этими результатами и моим мнением. 

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

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

 

 

 

Протестирована на платформе 8.3.25.1501. 8.3.27.1936 , 8.5.1.1236

 

 
История изменений 

0K.04.2026

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

Добавлена выгрузка в  JSON- задел чтобы потом сравнивать разные замеры

 

07.04.2026

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

- Добавлены замеры через "Выполнить"

- перекомпоновка формы-косметика

 

06.04.2026

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

- безопасный режим

- фикс ошибки если замеры слишком быстрые

 

 

10.01.2026

Замер тормозов - причесан код

 

20.12.2025

Замер тормозов - теперь сервер и клиент! Без админских прав

 

10.10.2025

У замера производительности установлен безопасный режим

 

13.06.2025

Причесан код

 

25.05.2025

Выделил отдельно Сервер1ССерверSQL- стало информативнее

 

 

18.05.2025

Выделил отдельно КлиентСервер- стало информативнее

 

 18.05.2025

Пара новых тестов

 

28.04.2025

Пара новых тестов

 

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.32.39
  • 1С:ERP Управление предприятием 2, релизы 2.6.1.64, 2.5.22.67
  • 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.10.27
  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.176.38
  • Документооборот КОРП, релизы 2.1.36.3
  • Документооборот КОРП, редакция 3.0, релизы 3.0.17.36
  • Комплексная автоматизация, редакция 1.1, релизы 3.1.9.188
  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.392
  • Управление торговлей, редакция 11, релизы 11.5.25.85
  • Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.206.19

Вступайте в нашу телеграмм-группу Инфостарт

См. также

HighLoad оптимизация Разработчик 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

10.11.2025    15264    ivanov660    48    

57

HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:ERP Бесплатно (free)

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

18.02.2025    16079    ivanov660    39    

62

HighLoad оптимизация Разработчик Россия Бесплатно (free)

А вы знали, что сервер 1С при соединении с базой на сервере PostgreSQL самостоятельно устанавливает некоторые параметры? Это важно знать при настройке сервера и отладке долгих запросов. Предлагаю разобраться.

27.08.2024    9991    soulner    10    

41

HighLoad оптимизация Технологический журнал Системный администратор Разработчик Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    18693    ivanov660    13    

64

HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)

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

06.06.2024    24586    Evg-Lylyk    73    

46

HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    14315    spyke    29    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Дмитрий74Чел 250 13.03.25 09:12 Сейчас в теме
Опишите пожалуйста подробнее свой инструмент. Что умеет, какие тесты что покажут? Тесты однопоточные/многопоточные (многопользовательские)? Каким Вы видите сценарий использования инструмента?
Хорошо бы указать реальный пример: сервер такой-то, показатели получили такие-то, сделали вывод такой-то.
Gilev.Vyacheslav; paulwist; +2 – Ответить
6. ZAOSTG 208 22.03.25 21:02 Сейчас в теме
(1) Причесываю и инструмент и описание
11. ZAOSTG 208 09.04.26 17:18 Сейчас в теме
(1) Добавил описание и выводы
Многопоточность пока не делал- это уже будет привязка к БСП и чтото помещать в базу. Пока "обход" не искал
2. Gilev.Vyacheslav 1924 13.03.25 14:38 Сейчас в теме
ну вот мой тест то как раз показывает потенциальные места, требующие внимания
а у вас по цифрам нельзя даже сказать что скорость клиента равна скорости сервера 1с или субд, какие уж тут узкие места, вы делаете ту же ошибку что и фрагстер - даете кучу разных операций, с которыми пользователь остается один на один и не понимает как это на практике применить
Прикрепленные файлы:
_aleksandr_678861; +1 – Ответить
5. ZAOSTG 208 22.03.25 21:02 Сейчас в теме
(2) Цель номер один выполнена - разбудить неравнодушных )
Как доделаю обработку - будет точнее понятны отличия
3. life-wayfarer 17.03.25 18:10 Сейчас в теме
Так ты слона не продашь) Где документация с описанием?
4. ZAOSTG 208 19.03.25 13:38 Сейчас в теме
(3) Вернул в состояние мыши. Были причины повысить цену
7. megatrend 132 23.06.25 15:47 Сейчас в теме
Добрый день! Поймал ошибку:

ВнешняяОбработка.ОценкаПроизводительности1С.Форма.Форма.Форма(485)}: Ошибка при вызове метода контекста (Выполнить)

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

"stack": [
[
"ВнешняяОбработка.ОценкаПроизводительности1С.Форма.Форма.Форма",
159,
"\u0009\u0009\u0009\u0009ТаймСтамп = ДолгийЗапросНаСервере(ТекЦикл*ТекИтерация,ЗамерыВМилисекундах\/10);"
]
8. ZAOSTG 208 23.06.25 15:54 Сейчас в теме
(7) Это ошибка сервера 1С - надо его рестартануть
или памяти на сервере не хватает
пока не знаю что с таким делать ... и надо ли
9. Mitelekk 28.07.25 16:36 Сейчас в теме
(8) Валентин, приветствую. К сожалению, по обработке "Анализируем SQL сервер глазами 1С-ника" отключены комменты.
Я скачал её, но по приложенной инструкции не могу запустить, выдает ошибку. Можете помочь?
Мой ТГ @DMitelkov

Полный текст ошибки:
Значение не является значением объектного типа (количество)
{ВнешняяОбработка.АнализSQLСервера.Форма.Форма.Форма(487)}:Элементы.ТекущееСоединние.Заголовок="Работаем с "+?(Объект.ДемоРежим,"ИмяБазы",Объект.SQLБаза)+?(ИзмененияКонфигурации.количество()=1," ( изменена "+ИзмененияКонфигурации[0].Дата_изменения_конфигурации+")","")+" на "+?(Объект.ДемоРежим,"ИмяSQLСервера",Объект.SQLServer)+"("+Объект.ВерсияSQLСервера+")"+?(Типзнч(ИнформацияОСервере[0].Запущен)=Тип("Число"),""," который запущен "+ИнформацияОСервере[0].Запущен)+ " и работает уже "+?(ИнформацияОСервере[0].Работает="",""+ИнформацияОСервере[0].Работает__дней+" дн. и "+ИнформацияОСервере[0].Работает__часов+" час.",ИнформацияОСервере[0].Работает);
{ВнешняяОбработка.АнализSQLСервера.Форма.Форма.Форма(80)}:База1СПриИзмененииНаСервере(ТолькоТекущая,НоваяБаза);
{ВнешняяОбработка.АнализSQLСервера.Форма.Форма.Форма(73)}:База1СПриИзмененииНаКлиенте(Истина);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
10. ZAOSTG 208 04.11.25 12:27 Сейчас в теме
(9) Проблема еще актуальна?
12. ZAOSTG 208 09.04.26 17:19 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация