Каждый практикующий специалист 1С рано или поздно сталкивается с ситуацией, когда стандартные и ранее быстро работающие отчеты начинают «зависать». Одной из наиболее критичных проблем является медленная работа Оборотно-сальдовой ведомости (ОСВ) в конфигурации Бухгалтерия предприятия КОРП, редакция 3.0. Симптомы могут проявляться следующим образом: система крайне долго реагирует на выбор счета, сам отчет формируется неестественно медленно, а при попытке открыть настройки отчета интерфейс полностью зависает.
В этой статье мы подробно разберем причины возникновения данной проблемы на клиент-серверных базах под управлением MS SQL Server и рассмотрим эффективные практические способы ее решения.
Для того чтобы понять, почему зависает отчет, проанализируем поведение Системы компоновки данных (СКД). В типовых конфигурациях 1С, включая «Бухгалтерию предприятия», активно используется механизм «Характеристик». Этот механизм позволяет динамически расширять аналитику объектов (например, справочников Номенклатура или Контрагенты) без изменения структуры метаданных конфигурации.
Когда пользователь открывает Оборотно-сальдовую ведомость, выбирает счет субконто или заходит в настройки отчета, СКД выполняет опрос метаданных для построения дерева доступных полей. В этот момент происходят следующие процессы:
Nested Loops вместо Hash Match), что приводит к лавинообразному падению производительности.Дополнительные сведения. Наличие таких «сиротских» записей существенно замедляет выполнение SQL-запросов.Практика показывает, что наиболее частым виновником тормозов является переполнение и замусоривание таблиц свойств БСП (Библиотеки стандартных подсистем). Проблему медленного выбора счета и формирования ОСВ удается успешно решить очисткой следующих объектов метаданных:
ДополнительныеРеквизитыИСведения;ЗначенияСвойствОбъектов (в интерфейсе — Дополнительные значения);ДополнительныеСведения.Рекомендация по очистке: Перед проведением очистки обязательно выполните резервное копирование информационной базы. Проанализируйте, какие дополнительные свойства действительно используются в учете. Все устаревшие, помеченные на удаление или неиспользуемые свойства и значения необходимо физически удалить из базы данных через стандартную обработку «Удаление помеченных объектов».
Чтобы исключить влияние некорректных связей в таблицах базы данных, необходимо регулярно проводить процедуру тестирования и исправления. Выполним следующие шаги:
После удаления потерянных записей СУБД будет значительно быстрее обрабатывать запросы при сопоставлении характеристик СКД.
Если бизнес-процессы предприятия требуют постоянного использования большого количества дополнительных свойств для номенклатуры или контрагентов, стандартный механизм дополнительных реквизитов БСП становится узким горлышком системы.
Рассмотрим более надежный архитектурный подход:
Обычные реквизиты хранятся в физических колонках основных таблиц СУБД. Они могут быть легко проиндексированы программными средствами. При формировании отчетов СУБД обращается к ним напрямую без сложных соединений через промежуточные таблицы свойств, что повышает скорость работы ОСВ в десятки раз.
Не забывайте о том, что для баз данных под нагрузкой стандартных автоматических механизмов СУБД бывает недостаточно. Если вы используете клиент-серверный вариант работы, настройте регулярный Maintenance Plan (План обслуживания) на уровне MS SQL Server.
Для оптимизации работы запросов ОСВ критически важно настроить выполнение следующих процедур:
DBCC FREEPROCCACHE): Позволяет СУБД сбросить неоптимальные планы запросов и построить их заново на основе актуальной статистики.Регулярно выполняя данные регламентные операции и поддерживая чистоту таблиц дополнительных сведений, вы обеспечите стабильную и быструю работу Оборотно-сальдовой ведомости и других отчетов на базе СКД.