Администрирование · 11 мин
Технологический анализ в 1С 8: что это и как его провести
Что такое технологический анализ в 1С 8, какие инструменты используются: технологический журнал, замеры производительности, анализ блокировок и запросов.
Технологический анализ в 1С 8 — это комплекс действий по диагностике работы информационной базы: сбору и разбору технологического журнала, замерам производительности, анализу запросов к СУБД, блокировок и ошибок платформы. Его цель — найти конкретные причины медленной работы, зависаний, взаимоблокировок и аварийных завершений, а не гадать, «кто виноват»: сервер, сеть, код или пользователи.
Термин не является официальным названием отдельного механизма платформы. На практике под технологическим анализом понимают работу с инструментами, которые 1С предоставляет «из коробки»: технологический журнал (ТЖ), консоль запросов и план запроса, замеры производительности в конфигураторе, счётчики нагрузки кластера, а также средства СУБД — планы выполнения, статистика ожиданий, мониторинг блокировок.
К такому анализу прибегают, когда пользователи жалуются на «тормоза», проведение документов занимает минуты вместо секунд, периодически возникают взаимоблокировки или база «падает» без видимой причины. Правильно проведённый анализ даёт воспроизводимую картину: какой запрос, на каком объекте метаданных, под какой нагрузкой создаёт проблему.
Из чего состоит технологический анализ
Анализ строится вокруг нескольких источников данных. Первый — технологический журнал: текстовые логи, в которые платформа пишет события по заданным фильтрам (вызовы СУБД, исключения, блокировки, длительные операции). Второй — замеры производительности в конфигураторе, которые показывают, сколько времени занимает каждая строка кода. Третий — инструменты СУБД: планы запросов, динамические представления MS SQL Server или pg_stat-таблицы PostgreSQL.
Дополнительно используют консоль кластера серверов 1С: она показывает текущие сеансы, соединения, загрузку рабочих процессов. В типовых конфигурациях на базе БСП есть встроенные инструменты — например, оценка производительности (замеры времени выполнения ключевых операций) и журнал регистрации с детализацией ошибок.
Когда технологический анализ действительно нужен
Не каждая жалоба на скорость требует полного цикла диагностики. Поводом для полноценного анализа служат повторяющиеся проблемы: стабильно медленное проведение конкретного документа, регулярные взаимоблокировки в часы пик, рост времени регламентных операций по мере накопления данных, необъяснимые разрывы соединений.
Если проблема разовая и объяснима (например, одновременно запустили свёртку базы и перепроведение), достаточно точечного замера. Но если «тормозит всё и у всех» неделями — без технологического журнала и анализа планов запросов причину почти никогда не находят: интуитивные догадки в таких ситуациях ошибаются чаще, чем попадают.
Как выбрать действие
Настройка технологического журнала
Технологический журнал включается файлом logcfg.xml, который размещают в каталоге conf сервера 1С (или в каталоге conf рядом с исполняемыми файлами конкретной версии платформы). В файле задаётся каталог логов и список событий с условиями. Платформа начинает писать логи в течение минуты после появления корректного файла — перезапуск служб не требуется.
Типовой минимальный набор для диагностики производительности: события DBMSSQL (или DBPOSTGRS для PostgreSQL) с порогом длительности, EXCP для исключений, TLOCK, TTIMEOUT и TDEADLOCK для блокировок. Порог длительности задаётся в микросекундах: значение 1000000 соответствует одной секунде — события быстрее порога в журнал не попадут.
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_logs" history="24">
<event><eq property="name" value="DBMSSQL"/></event>
<event><eq property="name" value="EXCP"/></event>
<event><eq property="name" value="TDEADLOCK"/></event>
<property name="all"/>
</log>
</config>Ограничивайте объём записи: параметр history задаёт время хранения логов в часах, без него каталог будет расти до заполнения диска. Для первичной диагностики достаточно 24–72 часов записи, захватывающих периоды пиковой нагрузки.
Разбор результатов: что искать в логах
Логи ТЖ пишутся в файлы формата .log, разбитые по часам и процессам (rphost, ragent, rmngr). Читать их вручную тяжело, поэтому применяют специализированные инструменты разбора или хотя бы поиск по ключевым словам: Duration, TDEADLOCK, EXCP.
Для событий запросов к СУБД ключевые поля — длительность (Duration), текст запроса (Sql) и контекст (Context — какой код конфигурации инициировал запрос). Если один и тот же запрос всплывает многократно с большой длительностью — это кандидат на оптимизацию: индекс, переписывание запроса, изменение логики кода.
Для взаимоблокировок событие TDEADLOCK показывает, какие сеансы и ресурсы столкнулись. Практический вывод почти всегда один: транзакции обращаются к одним и тем же данным в разном порядке, либо слишком широкие диапазоны блокируются при проведении. Дальше анализируют уже код конкретных документов.
Как проверить результат
В каталоге появились подкаталоги с файлами .log в течение 1–2 минут после размещения logcfg.xml
Каталог пуст: проверьте путь, права доступа службы агента и синтаксис XML
В логах только нужные типы событий, объём растёт умеренно
Логи растут на гигабайты в час — фильтры не сработали
Длительность события заметно снизилась при повторном замере под той же нагрузкой
Длительность не изменилась или проблема переехала в другое место
Замеры производительности и анализ запросов
Замер производительности запускается из конфигуратора: Отладка → Замер производительности. После воспроизведения проблемной операции платформа показывает таблицу: сколько раз вызывалась каждая строка кода и сколько времени она заняла суммарно и чистыми. Это самый быстрый способ отделить «медленный запрос» от «медленного цикла в коде».
Частая находка на замерах — запросы в цикле: код обходит табличную часть и на каждую строку выполняет запрос. Платформа честно покажет тысячи вызовов одной строки. Решение — собрать данные одним запросом с временной таблицей. Вторая типовая находка — обращения к СУБД, которые занимают 90% времени операции: тогда дальше смотрят план запроса средствами СУБД.
- 1Зафиксируйте симптом: какая операция, у кого, в какое время, сколько длится
- 2Проверьте загрузку сервера СУБД и кластера 1С в момент проблемы
- 3Сделайте замер производительности на воспроизводимой операции
- 4Если проблема плавающая — включите ТЖ с фильтрами на длительные запросы и блокировки
- 5Найдите запрос или участок кода с максимальной длительностью
- 6Проанализируйте план запроса: сканирования вместо поиска по индексу, нехватка индексов
- 7Внесите точечное исправление и повторите замер под сопоставимой нагрузкой
Типичные ошибки при проведении анализа
Главная ошибка — начинать оптимизацию до диагностики: пересоздавать индексы, обновлять платформу, менять настройки СУБД «на всякий случай». Без зафиксированной исходной точки невозможно понять, помогло ли изменение, а параллельные правки смешивают эффекты.
Вторая ошибка — анализировать логи вне контекста нагрузки. Запрос, который выполняется 2 секунды ночью и 30 секунд днём при полной загрузке — это проблема конкуренции за ресурсы, а не самого запроса. Третья — забыть выключить ТЖ после диагностики: логи продолжают расти и однажды заполнят диск, что приведёт уже к настоящему отказу.
Ограничения и когда привлекать специалистов
Базовый цикл — включить ТЖ, сделать замер, найти длительный запрос — доступен администратору с опытом работы с платформой. Но есть границы: тонкая настройка СУБД (изменение уровней изоляции, перестройка индексной стратегии на больших базах), анализ дампов аварийных завершений, оптимизация кода типовых конфигураций с учётом обновлений требуют профильного опыта.
Рискованные действия, которые не стоит выполнять на рабочей базе без резервной копии и плана отката: массовое пересоздание индексов, изменение схемы данных, правка запросов в типовых модулях, смена настроек СУБД. Любое изменение проверяйте сначала на копии базы с сопоставимым объёмом данных — на тестовой базе в 100 МБ проблема боевой базы в 200 ГБ просто не воспроизведётся.
Что важно запомнить
Технологический анализ в 1С 8 — это диагностика через технологический журнал, замеры производительности и планы запросов. Порядок всегда один: зафиксировать симптом, собрать данные с фильтрами, найти конкретный запрос или участок кода, исправить точечно и проверить замером. Диагностика до изменений, а не после.
Частые вопросы
Чем технологический журнал отличается от журнала регистрации?
Журнал регистрации фиксирует прикладные события: кто вошёл, какой документ изменил, какие ошибки возникли на уровне логики. Технологический журнал пишет низкоуровневые события платформы: тексты запросов к СУБД, длительность, блокировки, исключения с дампами. Для анализа производительности нужен именно ТЖ, журнал регистрации полезен как контекст — кто и что делал в момент проблемы.
Нужно ли перезапускать сервер 1С после создания logcfg.xml?
Нет. Платформа периодически проверяет наличие файла конфигурации и начинает запись логов в течение примерно минуты. Если логи не появились, проверяйте расположение файла, права доступа учётной записи службы агента к каталогу логов и корректность XML — ошибка синтаксиса молча отключает запись.
Замедляет ли технологический журнал работу системы?
При разумных фильтрах влияние небольшое: запись идёт только по выбранным событиям. Заметная нагрузка возникает при записи всех событий без порогов длительности на загруженном сервере или при размещении логов на медленном диске. Поэтому фильтры, лимит истории и отдельный диск для логов — обязательный минимум.
Можно ли провести технологический анализ в файловой базе?
Частично. Технологический журнал и замеры производительности работают и в файловом варианте, но события запросов к СУБД и блокировок там ограничены, а многие проблемы файлового режима связаны с сетевым доступом к файлу базы. Для файловых баз чаще помогают замеры кода и проверка сети и антивирусных исключений.
Что делать, если взаимоблокировки повторяются после оптимизации запросов?
Ускорение запросов сокращает окно конфликта, но не устраняет причину, если транзакции блокируют ресурсы в разном порядке. Нужен анализ кода проведения конкурирующих документов: унификация порядка записи данных, сокращение транзакций, управляемые блокировки на критичных участках. Иногда помогает включение версионирования на уровне СУБД, но это решение требует тестирования на копии.
Как понять, что проблема в сервере, а не в конфигурации?
Признаки инфраструктурной проблемы: замедление затрагивает все операции сразу, коррелирует с загрузкой дисков или памяти сервера, длительные события в ТЖ разрознены и не повторяются по запросам. Признаки проблемы в конфигурации: стабильно медленные конкретные операции, повторяющиеся длительные запросы с одним контекстом. Начинать стоит с мониторинга ресурсов сервера параллельно со сбором ТЖ.