Многие администраторы 1С сталкиваются с парадоксальной ситуацией: в файловом варианте закрытие месяца проходит за считанные минуты, тогда как на мощном сервере с MS SQL Server расчет себестоимости «висит» часами, потребляя при этом весь объем оперативной памяти. Рассмотрим, как проанализировать эту проблему и какие шаги предпринять.
Прежде чем приступать к глубокому анализу кода 1С, необходимо исключить проблемы на уровне инфраструктуры. Разберем основные точки контроля:
Parameter Sniffing). Регулярное обновление статистики и очистка кэша процедур помогают «забыть» плохие планы.Autogrowth для базы данных. Значение в 1 Мб — это критическая ошибка, которая вызывает постоянные блокировки при расширении файлов базы во время транзакций. Установите фиксированный шаг (например, 256 Мб или 1024 Мб).Для поддержания производительности настроим регламентные задания в MS SQL Server Management Studio. Рассмотрим типичный набор действий для поддержания БД в тонусе:
REBUILD, если меньше 30% — достаточно REORGANIZE.Если обслуживание SQL не принесло результата, переходим к диагностике на стороне платформы 1С. Рассмотрим методы:
Замер производительности в Конфигураторе параллельно для файловой и серверной базы. Сравните, какие именно модули и процедуры потребляют больше всего времени в серверном варианте.DBMSSQL. Вы сможете увидеть текст конкретных SQL-запросов, генерируемых платформой. Если запрос выполняется аномально долго, это даст понимание, какая именно часть алгоритма себестоимости дает сбой.Важно помнить, что если база типовая, а проблема носит массовый характер, причина может скрываться во внутренней ошибке кода разработчика. В случае с УТ 11.4 нередко встречаются ошибки в алгоритмах расчета, которые исправляются через Обновление конфигурации.
Алгоритм действий при подозрении на ошибку в коде:
dt-файлом (если размер базы позволяет) или логами технологического журнала.Тестирование и исправление (ТИИ) с включенными опциями проверки логической и ссылочной целостности, чтобы исключить влияние повреждений самой базы данных.Чтобы закрытие месяца не блокировало работу пользователей, следуйте правилам:
Предварительного расчета себестоимости. Он позволяет распределить нагрузку на сервер в течение дня и не дожидаться многочасового процесса в конце месяца.Помните: Если расчет себестоимости «съедает» 64 Гб памяти на небольшой базе в 1.7 Гб — это явный признак либо неоптимального плана выполнения запроса (из-за отсутствия статистики), либо алгоритмической ошибки в конфигурации. Взаимодействие с техподдержкой и мониторинг логов — ваш главный инструмент в таких ситуациях.