Администрирование · 12 мин
Как отключить расчет итогов в 1С
Как отключить расчет итогов в 1С для регистров накопления и бухгалтерии: настройка режима получения итогов, отключение текущих итогов, влияние на скорость проведения документов.
Расчет итогов в 1С — это механизм, при котором платформа поддерживает предварительно рассчитанные остатки по регистрам накопления и бухгалтерии. Эти итоги ускоряют формирование отчетов, но замедляют запись и проведение документов, поскольку при каждом движении система обновляет таблицы итогов. В базах с большим объемом документов это становится заметным источником тормозов.
Отключение расчета итогов — штатная возможность платформы 1С:Предприятие 8. Она применяется, когда актуальные остатки «на текущий момент» не нужны в реальном времени, а отчеты строятся по историческим периодам. Правильная настройка позволяет ускорить проведение документов и снизить нагрузку на сервер СУБД без потери данных.
Важно понимать: отключается не само хранение движений, а режим их агрегирования. Данные документов остаются в таблицах регистров, меняется только способ получения остатков. Ниже разобраны варианты настройки, их последствия и порядок безопасного выполнения.
Что такое итоги в 1С и зачем их отключают
Для регистров накопления вида «Остатки» и регистров бухгалтерии платформа хранит две группы таблиц: таблицу движений и таблицы итогов. Итоги — это агрегированные остатки по измерениям на начало каждого месяца плюс текущие остатки на «сейчас». Когда отчет запрашивает остаток на дату, платформа берет ближайший рассчитанный итог и досчитывает остаток по движениям.
Проблема в том, что поддержание итогов стоит ресурсов. При каждом проведении документа система блокирует и обновляет записи итогов, а при восстановлении последовательностей и перепроведении за закрытые периоды — пересчитывает их полностью. В крупных базах это приводит к блокировкам, длительному проведению и росту размера базы.
Отключение итогов оправдано в нескольких ситуациях: регистр используется только для аналитических отчетов за прошлые периоды, оперативные остатки получают другими способами, либо регистр вообще является архивным. Также отключение текущих итогов — стандартный прием оптимизации регистров, по которым остаток «на сейчас» не запрашивается.
Какие варианты отключения итогов существуют
Платформа предлагает не один, а несколько уровней управления итогами, и важно не перепутать их. Полное отключение и частичное отключение дают разный эффект и разные ограничения.
Первый вариант — отключение использования текущих итогов. Итоги на границы месяцев продолжают рассчитываться, а вот актуальный остаток «прямо сейчас» платформа больше не поддерживает. Это самый безопасный и распространенный режим оптимизации: отчеты за прошлые периоды работают как раньше, а проведение ускоряется.
Второй вариант — полное отключение использования итогов. Регистр хранит только движения, любые остатки вычисляются на лету суммированием движений. Для больших регистров такие запросы выполняются медленно, поэтому режим подходит для редко используемых или архивных регистров.
Третий вариант касается регистров бухгалтерии: там можно отдельно управлять итогами по счетам, субконто и корреспонденциям, а также отключать итоги по оборотам между счетами, если они не используются в отчетах.
Сравнение вариантов
Подходит для большинства рабочих регистров: месячные итоги сохраняются, отчеты за периоды работают, проведение ускоряется. Ограничение — медленное получение остатка на текущий момент.
Подходит для архивных и редко используемых регистров. Максимальное ускорение записи, но любые запросы остатков идут полным сканированием движений.
Подходит, когда нужно отключить только неиспользуемые разрезы (например, итоги по корреспонденциям счетов). Требует анализа, какие отчеты реально применяются.
Отключение итогов через конфигуратор
Основной способ настройки — конфигуратор. Откройте конфигурацию, найдите нужный регистр накопления в дереве объектов и откройте палитру свойств. Для регистра накопления вида «Остатки» доступно свойство «Режим получения итогов». Значение «Текущие итоги и итоги по периодам» соответствует полному режиму, значение «Итоги по периодам» отключает поддержку текущих остатков.
Дополнительное управление доступно через кнопку «Итоги» в форме свойств регистра или через меню «Администрирование — Поддержка и обслуживание» в режиме предприятия (в типовых конфигурациях пункт может называться «Регламентные операции» или находиться в разделе настройки параметров учета). Там же выполняется пересчет итогов и установка периода рассчитанных итогов.
После изменения свойства в конфигураторе потребуется обновление конфигурации базы данных. На больших регистрах реструктуризация может занять заметное время, поэтому выполняйте обновление в нерабочие часы и при наличии свежей резервной копии.
- 1Сделайте резервную копию базы или убедитесь, что актуальный бэкап существует.
- 2Откройте конфигуратор, найдите нужный регистр накопления в дереве конфигурации.
- 3Откройте палитру свойств и установите «Режим получения итогов» в значение «Итоги по периодам».
- 4Обновите конфигурацию базы данных, дождитесь окончания реструктуризации.
- 5Проверьте работу ключевых отчетов и проведение документов по этому регистру.
Отключение итогов программно
Те же операции выполняются кодом на встроенном языке, что удобно для массовой настройки или регламентных операций. Используются методы менеджера регистра накопления.
РегистрыНакопления.ТоварыНаСкладах.УстановитьИспользованиеТекущихИтогов(Ложь);
РегистрыНакопления.ТоварыНаСкладах.УстановитьИспользованиеИтогов(Ложь);
Первый вызов отключает текущие итоги, второй — итоги полностью. Симметрично существуют методы получения текущего состояния: ПолучитьИспользованиеТекущихИтогов() и ПолучитьИспользованиеИтогов(). Перед изменением полезно зафиксировать исходные значения, чтобы при необходимости вернуть настройки обратно.
Обратите внимание: включение итогов обратно потребует их пересчета, который на больших таблицах выполняется долго. Поэтому экспериментировать с переключением на рабочей базе в разгар дня не стоит.
РегистрыНакопления.ТоварыНаСкладах.УстановитьИспользованиеТекущихИтогов(Ложь);
Сообщить(РегистрыНакопления.ТоварыНаСкладах.ПолучитьИспользованиеТекущихИтогов());Последствия и ограничения после отключения
Главное последствие отключения текущих итогов — запросы остатков на текущий момент начинают выполняться медленнее. Если в конфигурации есть проверки остатков при проведении (контроль отрицательных остатков, резервирование, подбор товара), они могут замедлиться или перестать работать корректно, если разработчик опирался на мгновенные текущие остатки.
Виртуальные таблицы «Остатки» без указания периода при отключенных итогах фактически превращаются в выборку по всем движениям. Отчеты, построенные на таких таблицах без отбора по периоду, станут тяжелыми. Проверьте типовые и собственные отчеты до отключения, а не после.
Для регистров бухгалтерии отключение итогов по отдельным разрезам влияет на стандартные отчеты: оборотно-сальдовая ведомость, анализ счета, карточка счета используют разные виды итогов. Отключив итоги по субконто, вы сломаете отчеты с группировкой по контрагентам или номенклатуре.
Проверка результата и типичные ошибки
После изменения настроек проверьте три вещи: скорость проведения документов, корректность отчетов за прошлые периоды и поведение отчетов, запрашивающих текущие остатки. Сравнение времени проведения до и после дает объективную картину эффекта.
Полезно также проверить фактическое состояние итогов программно: ПолучитьИспользованиеТекущихИтогов() должно вернуть Ложь. Если реструктуризация прервалась, настройка могла не примениться, хотя в конфигураторе значение изменено.
Отдельная проверка — размер базы и наличие регламентных операций пересчета итогов. После отключения текущих итогов старые рассчитанные данные не удаляются мгновенно; при необходимости выполните пересчет итогов через штатные средства администрирования.
Как проверить результат
ПолучитьИспользованиеТекущихИтогов() возвращает Ложь
Метод возвращает Истина — изменение не применилось
Время проведения сократилось или не изменилось
Проведение стало медленнее — вероятно, где-то запрашиваются текущие остатки
Данные совпадают с контрольными значениями до изменения
Отчет пустой или выполняется очень долго
Отрицательные остатки по-прежнему отслеживаются
Документы проводятся в минус без сообщений
Когда отключать итоги не стоит
Если база небольшая, документов немного и жалоб на скорость проведения нет, отключение итогов не даст заметного эффекта, а ограничения по текущим остаткам добавит. Оптимизация имеет смысл только при реальной проблеме с производительностью.
Не отключайте итоги по регистрам, участвующим в оперативном учете в реальном времени: касса, банк, складские остатки с онлайн-контролем. Для таких регистров выигрыш в записи обернется проигрышем в каждом запросе остатка.
Если цель — ускорить закрытие месяца или перепроведение, рассмотрите альтернативы: сдвиг периода рассчитанных итогов, отключение итогов только на время массовой загрузки с последующим включением, использование режима разделения итогов. Часто эти меры решают задачу без постоянных ограничений.
Как выбрать действие
Подводя итог: отключение расчета итогов — рабочий инструмент оптимизации 1С, но применять его нужно осознанно, с анализом зависимостей, тестированием на копии и обязательной резервной копией перед реструктуризацией.
Что важно запомнить
Отключение итогов ускоряет запись движений, но замедляет получение текущих остатков. Предпочтительный режим — отключение только текущих итогов с сохранением итогов по периодам. Все изменения выполняйте на копии базы, в нерабочее время и с проверкой отчетов после применения.
Частые вопросы
Пропадут ли данные регистра после отключения итогов?
Нет. Отключается только механизм агрегирования остатков. Таблица движений документов остается нетронутой, и все данные доступны через запросы по движениям или виртуальные таблицы с расчетом на лету.
Можно ли отключить итоги только на время загрузки данных?
Да, это распространенная практика. Перед массовой загрузкой программно отключите использование итогов, выполните загрузку, затем включите итоги обратно — платформа пересчитает их. На больших объемах пересчет может занять продолжительное время.
Почему после включения итогов обратно база «подвисла»?
При включении итогов платформа выполняет их полный пересчет по всем движениям регистра. На крупных таблицах это длительная операция с блокировками. Планируйте включение на нерабочее время и не прерывайте процесс принудительно.
Влияет ли отключение итогов на регистры сведений?
Нет. Механизм итогов существует только у регистров накопления и регистров бухгалтерии. Регистры сведений и расчета такой настройки не имеют, и к ним описанные действия неприменимы.
Как узнать, какие отчеты пострадают от отключения текущих итогов?
Проще всего протестировать на копии: отключите итоги и прогоните основные отчеты. Дополнительно можно проанализировать тексты запросов конфигурации на использование виртуальных таблиц «Остатки» без указания периода — именно такие обращения замедляются сильнее всего.
Нужно ли отключать итоги в файловой базе?
Механизм работает одинаково, но в файловых базах выигрыш обычно менее заметен из-за другой архитектуры доступа к данным. Решение принимайте по результатам замера времени проведения до и после на копии базы.