В процессе эксплуатации систем на базе 1С:Предприятие 8, особенно в таких конфигурациях, как Зарплата и Управление Персоналом 2.5 или Управление производственным предприятием 1.3, специалисты часто сталкиваются с системным сообщением об ошибке обработки представления виртуальных таблиц. Ошибка звучит следующим образом: Использование итогов выключено. Проанализируем, почему возникает эта ситуация, как она связана с производительностью и какими способами можно восстановить работоспособность системы.
Рассмотрим механику работы регистров 1С. В системе существуют физические таблицы, где описывается структура хранения БД в виде дерева конфигурации и хранятся все записи (движения), и виртуальные таблицы (например, Остатки, Обороты, ОстаткиИОбороты), которые позволяют быстро получать агрегированные данные. Чтобы виртуальные таблицы работали мгновенно, 1С использует специальные вспомогательные таблицы итогов.
Проанализируем ситуацию: при массовой загрузке данных (например, через обработку ВыгрузкаЗагрузкаДанныхXML) программисты часто намеренно отключают использование итогов. Это делается для того, чтобы система не тратила ресурсы на пересчет агрегатов при записи каждой строки из миллионов документов. Если после завершения загрузки забыть включить итоги обратно, любой запрос к виртуальной таблице регистра (например, при расчете зарплаты или открытии карточки сотрудника) приведет к аварийному завершению операции. Система просто «не видит» итоговых таблиц и отказывается выполнять динамический расчет «на лету» по всей физической таблице транзакций.
Если проблема возникла после использования этой обработки, разберем, как вернуть систему в штатный режим с ее же помощью. Это самый простой интерактивный способ, не требующий написания кода.
ВыгрузкаЗагрузкаДанныхXML.epf в режиме 1С:Предприятие.После выполнения этого действия система инициирует фоновый процесс активации итоговых таблиц. Важно понимать, что в этот момент может возникнуть значительная нагрузка на дисковую подсистему и процессор сервера БД.
Посмотрим на штатные возможности конфигураций на обычных формах (УПП, ЗУП 2.5, КА 1.1). В них предусмотрена специальная форма для мониторинга состояния регистров.
В современных конфигурациях на базе БСП (ЗУП 3.1, ERP 2.5) данный функционал вынесен в раздел «Администрирование» — «Обслуживание» — «Регламентные операции» — «Управление итогами и агрегатами». Там процесс выглядит аналогично: выбираем регистр и активируем его использование.
Рассмотрим ситуацию, когда нам нужно быстро включить итоги программно, например, через консоль кода или создав небольшую внешнюю обработку. Для этого используются методы менеджеров соответствующих регистров. Выясним, как это выглядит в коде 1С.
Для регистров накопления (предварительно выполнив просмотр реквизитов объекта метаданных) используем следующий фрагмент:
// Включение итогов для конкретного регистра накопления
ИмяРегистра = "ПогашениеЗаймовРаботникамиОрганизаций";
РегистрыНакопления[ИмяРегистра].УстановитьИспользованиеИтогов(Истина);
Если нам нужно включить итоги сразу для всех регистров накопления, применим цикл:
Для Каждого Регистр Из РегистрыНакопления Цикл
Если Не Регистр.ПолучитьИспользованиеИтогов() Тогда
Регистр.УстановитьИспользованиеИтогов(Истина);
Сообщить("Итоги включены для: " + Регистр);
КонецЕсли;
КонецЦикла;
Аналогичным образом проанализируем работу с регистрами бухгалтерии. Метод вызывается точно так же:
// Включение итогов для регистра бухгалтерии (Хозрасчетный)
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Истина);
Важное примечание: Существует также метод УстановитьИспользованиеТекущихИтогов(Истина). Он управляет только самыми актуальными итогами (на текущую дату), в то время как УстановитьИспользованиеИтогов отвечает за общую работоспособность виртуальных таблиц.
Часто после выполнения команд включения итогов пользователи замечают, что отчеты показывают пустые значения или неверные данные. Проанализируем, почему это происходит. Включение итогов — это лишь «флаг» для системы, разрешающий обращение к итоговым таблицам. Но если данные загружались при выключенных итогах, сами таблицы итогов остались пустыми или неактуальными.
В таком случае нам необходимо выполнить полный пересчет итогов. Рассмотрим основные пути решения:
ПересчитатьИтоги(). Для комплексного контроля пригодится обработка «Анализ документов и регистров» — есть готовый инструмент диагностики и выявления поврежденных данных в регистрах.Выясним, как избежать проблем с производительностью при проведении этих регламентных операций — в этом помогут рекомендации по мониторингу производительности 1С и СУБД. Процесс включения и особенно пересчета итогов на больших базах (сотни гигабайт) может занимать длительное время.
Рекомендуется:
Управление итогами. Если рассчитанная дата сильно отстает от текущей, системе приходится довычислять данные из основной таблицы движений, что замедляет работу. Установим актуальную дату итогов (обычно это конец текущего месяца).Таким образом, мы разобрали основные причины возникновения ошибки Использование итогов выключено и изучили все доступные инструменты для ее устранения. Правильное управление итогами является ключом к стабильной и быстрой работе любой конфигурации на платформе 1С:Предприятие 8.