Почему тормозит оборотно-сальдовая ведомость в 1С:Бухгалтерия и как это исправить?

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

Каждый практикующий специалист 1С рано или поздно сталкивается с ситуацией, когда стандартные и ранее быстро работающие отчеты начинают «зависать». Одной из наиболее критичных проблем является медленная работа Оборотно-сальдовой ведомости (ОСВ) в конфигурации Бухгалтерия предприятия КОРП, редакция 3.0. Симптомы могут проявляться следующим образом: система крайне долго реагирует на выбор счета, сам отчет формируется неестественно медленно, а при попытке открыть настройки отчета интерфейс полностью зависает.

В этой статье мы подробно разберем причины возникновения данной проблемы на клиент-серверных базах под управлением MS SQL Server и рассмотрим эффективные практические способы ее решения.

В чем причина падения производительности ОСВ?

Для того чтобы понять, почему зависает отчет, проанализируем поведение Системы компоновки данных (СКД). В типовых конфигурациях 1С, включая «Бухгалтерию предприятия», активно используется механизм «Характеристик». Этот механизм позволяет динамически расширять аналитику объектов (например, справочников Номенклатура или Контрагенты) без изменения структуры метаданных конфигурации.

Когда пользователь открывает Оборотно-сальдовую ведомость, выбирает счет субконто или заходит в настройки отчета, СКД выполняет опрос метаданных для построения дерева доступных полей. В этот момент происходят следующие процессы:

  1. Опрос механизма характеристик: СКД пытается определить, какие дополнительные реквизиты и сведения сопоставлены с используемыми субконто. Если таблицы дополнительных реквизитов перегружены, этот опрос вызывает длительную задержку интерфейса еще до начала непосредственного выполнения запроса к регистру бухгалтерии.
  2. Сложные левые соединения (LEFT JOIN) СУБД: Свойства и значения хранятся по схеме Entity-Attribute-Value (EAV). При формировании отчета платформа выполняет левое соединение основных таблиц с таблицами дополнительных сведений и реквизитов. На больших объемах данных планировщик MS SQL Server может построить неоптимальный план запроса (например, использовать ресурсоемкий Nested Loops вместо Hash Match), что приводит к лавинообразному падению производительности.
  3. Логическая целостность и «битые» ссылки: При регулярной работе пользователей, удалении или изменении объектов в информационной базе могут оставаться потерянные (мусорные) записи в регистре сведений Дополнительные сведения. Наличие таких «сиротских» записей существенно замедляет выполнение SQL-запросов.
  4. Влияние RLS (ограничение доступа на уровне записей): Если в информационной базе активирован механизм RLS, то наложение условий ограничения прав поверх сложных запросов с левыми соединениями таблиц характеристик создает критическую нагрузку на процессор сервера СУБД.

Способ 1. Очистка неиспользуемых дополнительных реквизитов и сведений (Решение автора)

Практика показывает, что наиболее частым виновником тормозов является переполнение и замусоривание таблиц свойств БСП (Библиотеки стандартных подсистем). Проблему медленного выбора счета и формирования ОСВ удается успешно решить очисткой следующих объектов метаданных:

Рекомендация по очистке: Перед проведением очистки обязательно выполните резервное копирование информационной базы. Проанализируйте, какие дополнительные свойства действительно используются в учете. Все устаревшие, помеченные на удаление или неиспользуемые свойства и значения необходимо физически удалить из базы данных через стандартную обработку «Удаление помеченных объектов».

Способ 2. Очистка «битых» ссылок и проверка логической целостности

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

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

После удаления потерянных записей СУБД будет значительно быстрее обрабатывать запросы при сопоставлении характеристик СКД.

Способ 3. Перенос тяжелой аналитики в реальные реквизиты

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

Рассмотрим более надежный архитектурный подход:

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

Способ 4. Регламентное обслуживание СУБД MS SQL Server

Не забывайте о том, что для баз данных под нагрузкой стандартных автоматических механизмов СУБД бывает недостаточно. Если вы используете клиент-серверный вариант работы, настройте регулярный Maintenance Plan (План обслуживания) на уровне MS SQL Server.

Для оптимизации работы запросов ОСВ критически важно настроить выполнение следующих процедур:

Регулярно выполняя данные регламентные операции и поддерживая чистоту таблиц дополнительных сведений, вы обеспечите стабильную и быструю работу Оборотно-сальдовой ведомости и других отчетов на базе СКД.

← На главную