Какую дату ставить в периоде итогов, чтобы база не тормозила

· 9 мин

Содержание

Период рассчитанных итогов (ПРИ) в 1С 8.3 — это дата, до которой платформа хранит помесячные итоги регистров накопления остатков и регистров бухгалтерии. Правильная установка такая: конец прошлого месяца, а в типовых конфигурациях это делает регламентное задание, вручную — через Администрирование → Обслуживание → Корректировка данных → Управление итогами и агрегатами или стандартную обработку «Управление итогами».

Ставить ПРИ далеко в прошлое плохо: отчёты на текущие даты начинают считать остатки по движениям за годы. Ставить в будущее тоже плохо: каждый новый документ обновляет итоги за все месяцы вперёд, и проведение замедляется. Механизм общий для платформы, поэтому всё ниже работает одинаково в БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на 8.3.

Как 1С хранит итоги регистров

У регистра есть две основные таблицы: таблица движений и таблица итогов. Движения — это строки, которые пишет документ при проведении. Итоги — заранее посчитанные остатки по комбинациям измерений, чтобы не складывать движения при каждом запросе.

Итоги хранятся в двух видах:

  • 📅 Помесячные итоги — остаток на конец каждого месяца, от начала учёта до периода рассчитанных итогов.
  • ⚡ Текущие (актуальные) итоги — остаток «на сейчас», с учётом всех движений, включая будущие даты.

Когда отчёт просит остаток на произвольную дату, платформа берёт ближайшую опорную точку и досчитывает от неё движения. Опорой может быть помесячный итог или текущий итог, из которого вычитаются движения после нужной даты. Чем ближе опора к запрошенной дате, тем меньше движений нужно прочитать.

Что делает дата ПРИ

Период рассчитанных итогов — граница, после которой помесячные итоги не ведутся. Платформа округляет его до конца месяца: если указать 15.09, итоги будут рассчитаны по 30.09.

Поведение при записи движений:

Дата движенияЧто обновляет платформа
Позже ПРИ (текущий месяц)Только текущие итоги
Раньше ПРИ (задним числом)Итоги за месяц движения, за все месяцы до ПРИ и текущие итоги

Отсюда главный вывод. Документ текущего месяца проводится быстро, если ПРИ стоит на конце прошлого месяца. Документ, проведённый на два года назад, тянет за собой пересчёт 24 помесячных строк по каждой комбинации измерений.

Каких регистров это касается

  • 📦 Регистры накопления вида «Остатки» — товары на складах, взаиморасчёты, резервы.
  • 📒 Регистры бухгалтерии — хозрасчётный регистр в БП и ERP.
  • 📊 Оборотные регистры накопления хранят обороты, а не остатки. Для них важнее агрегаты, ПРИ там роли не играет.
  • 📋 Регистры сведений имеют свои итоги — срезы первых и последних. Периода рассчитанных итогов у них нет, только включение и пересчёт итогов.

Где в 1С 8.3 установить период рассчитанных итогов

Есть три способа. Результат у них одинаковый, разница в удобстве и правах.

СпособГдеКому подходит
Обработка конфигурацииАдминистрирование → Обслуживание → Корректировка данных → Управление итогами и агрегатамиБухгалтеру-администратору типовой базы
Стандартная обработка платформыВсе функции → Стандартные → Управление итогамиЛюбая конфигурация, включая самописные
Встроенный языкМетоды менеджера регистраРазработчику, для регламентных заданий

В старых релизах типовых конфигураций раздел назывался Администрирование → Поддержка и обслуживание, внутри та же группа «Корректировка данных».

Для всех способов нужно право «Управление итогами». В типовых ролях оно есть у «Администратора системы» и «Полных прав».

Через «Все функции»

Если пункта «Все функции» нет в главном меню, включите его: Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”». После этого:

  1. Откройте Все функции → Стандартные → Управление итогами.
  2. Переключитесь в режим полных возможностей — по умолчанию форма открывается в упрощённом виде с типовыми действиями.
  3. Выделите нужные регистры в списке. Можно выделить все.
  4. Выполните команду установки периода рассчитанных итогов и укажите дату.
  5. Дождитесь окончания. На крупной базе это минуты, а не секунды.

В списке видно состояние каждого регистра: включены ли итоги, используются ли текущие итоги, до какой даты рассчитаны, включено ли разделение итогов. С этой проверки и стоит начинать.

Через встроенный язык

У менеджера регистра накопления и регистра бухгалтерии есть методы УстановитьМаксимальныйПериодРассчитанныхИтогов() и ПолучитьМаксимальныйПериодРассчитанныхИтогов(). Пример для всех регистров остатков, который ставит ПРИ на конец прошлого месяца:

ДатаИтогов = НачалоМесяца(ТекущаяДатаСеанса()) - 1;

Для Каждого МетаРегистр Из Метаданные.РегистрыНакопления Цикл
    Если МетаРегистр.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
        Менеджер = РегистрыНакопления[МетаРегистр.Имя];
        Если Менеджер.ПолучитьМаксимальныйПериодРассчитанныхИтогов() < ДатаИтогов Тогда
            Менеджер.УстановитьМаксимальныйПериодРассчитанныхИтогов(ДатаИтогов);
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Для Каждого МетаРегистр Из Метаданные.РегистрыБухгалтерии Цикл
    Менеджер = РегистрыБухгалтерии[МетаРегистр.Имя];
    Если Менеджер.ПолучитьМаксимальныйПериодРассчитанныхИтогов() < ДатаИтогов Тогда
        Менеджер.УстановитьМаксимальныйПериодРассчитанныхИтогов(ДатаИтогов);
    КонецЕсли;
КонецЦикла;

Код выполняется на сервере. Условие с ПолучитьМаксимальныйПериодРассчитанныхИтогов() не даёт случайно сдвинуть ПРИ назад, если кто-то уже поставил его позже.

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

Какую дату выбрать для периода итогов

Базовое правило: конец прошлого месяца. Текущий месяц — самый «горячий», в нём проводят большинство документов, и они не должны трогать помесячные итоги.

Варианты по ситуации:

  • ✅ Обычная работа — конец прошлого месяца, переносить каждый месяц.
  • 🗓 Закрытие квартала или года, много правок задним числом — конец последнего закрытого периода. Например, в октябре вы ещё правите сентябрь и август — ставьте 31.07. Правки за август и сентябрь тогда обновляют только текущие итоги.
  • 🔁 Массовое перепроведение за год — до перепроведения сдвиньте ПРИ на дату перед началом перепроводимого периода, после — верните на конец прошлого месяца.
  • 📚 Архивная база, где ничего не проводят — конец последнего месяца с движениями.

Пример с цифрами. Сегодня 17 октября, ПРИ стоит на 31.12 позапрошлого года. Отчёт «Остатки товаров» на 1 октября должен прочитать движения за 21 месяц или откатиться от текущих итогов. Перенесите ПРИ на 30.09 — и тот же отчёт возьмёт готовый итог без чтения движений.

Не ставьте ПРИ в будущее «с запасом». Если указать конец следующего года, каждый документ текущего месяца будет обновлять итоги ещё за 14 месяцев вперёд. Проведение замедлится, а таблица итогов вырастет без пользы.

Минимальный период итогов

В платформе 8.3 есть и обратная граница — УстановитьМинимальныйПериодРассчитанныхИтогов(). Итоги раньше этой даты не хранятся. Это уменьшает таблицу итогов в базах с длинной историей, если старые периоды никто не открывает. Отчёты за даты раньше минимального периода будут медленнее, поэтому трогать эту настройку стоит только при понятной причине.

Пересчёт итогов: когда нужен и как запустить

Установка ПРИ и пересчёт — разные операции. Установка ПРИ сдвигает границу и досчитывает недостающие месяцы. Пересчёт заново собирает итоги из движений, когда есть подозрение, что они испорчены.

Признаки, что итоги расходятся с движениями:

  • 📉 остаток в отчёте не совпадает с суммой движений по тому же измерению;
  • ❓ отрицательный остаток там, где по документам он положительный;
  • 🔄 после перепроведения документа отчёт не меняется.

Доступные виды пересчёта:

ОперацияЧто делаетНагрузка
Пересчёт текущих итоговПересобирает только актуальные итогиНизкая
Пересчёт итогов за периодПересобирает помесячные итоги за указанные месяцыСредняя
Полный пересчёт итоговПересобирает все итоги регистраВысокая, на больших базах — часы
Тестирование и исправление в КонфигуратореПересчёт итогов вместе с проверкой структурыТребует монопольного доступа

Начинайте с самого лёгкого. Часто хватает пересчёта текущих итогов — расхождение «на сегодня» уходит за секунды.

Порядок полного пересчёта

  1. Сделайте резервную копию базы : выгрузку .dt или бэкап СУБД.
  2. Выберите время, когда в базе нет активной работы: полный пересчёт блокирует таблицы регистра, и проведение документов у пользователей будет ждать.
  3. В «Управлении итогами» выделите только проблемный регистр, а не все.
  4. Запустите пересчёт итогов.
  5. После окончания проверьте отчёт, на котором заметили расхождение.

Пересчёт через Конфигуратор → Администрирование → Тестирование и исправление с флажком «Пересчёт итогов» требует монопольного доступа: всех пользователей нужно вывести из базы, их сеансы будут завершены. Используйте этот путь, если обработка «Управление итогами» не помогла или нужна проверка целостности целиком.

Как ПРИ влияет на скорость и размер базы

Таблица итогов растёт как «число комбинаций измерений × число месяцев». Регистр с 50 000 сочетаний «номенклатура + склад» за 5 лет помесячных итогов — это до 3 млн строк только в итогах. На практике меньше — не каждое сочетание живёт все месяцы, — но порядок такой.

Как настройки отражаются на работе:

НастройкаПроведение документовОтчёты по остаткамРазмер базы
ПРИ на конце прошлого месяцаБыстроБыстроОптимально
ПРИ давно не переносилиБыстроМедленно, растёт с каждым месяцемМеньше
ПРИ в будущемМедленноБыстроБольше
Итоги выключеныБыстрее всегоМедленноИтоги не поддерживаются
Разделение итогов включеноБыстрее при одновременной записиЧуть медленнееБольше

Разделение итогов

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

Выключение итогов при загрузке

При начальной загрузке данных или массовом перепроведении итоги иногда выключают: запись движений идёт быстрее, потому что итоги не обновляются. После загрузки итоги включают обратно, и платформа пересчитывает их. Важный момент: пока итоги выключены, отчёты по остаткам работают медленно, а контроль остатков при проведении нагружает базу. Делайте это в нерабочее время и не оставляйте итоги выключенными «до завтра».

Ошибки при работе с итогами и что с ними делать

Диагностика: выберите симптом

Отдельно про сдвиг ПРИ назад. Это легальная операция, но платформа удаляет помесячные итоги после новой даты. Если затем вернуть ПРИ вперёд, итоги будут досчитаны заново — на большой базе это заметная нагрузка. Двигайте границу назад только под конкретную задачу.

Частые вопросы о периоде рассчитанных итогов

Влияет ли ПРИ на данные в отчётах?
Нет. Он влияет только на скорость. Остаток на любую дату одинаковый при любом ПРИ, если итоги не повреждены.
Нужно ли переносить ПРИ в файловой базе на одного пользователя?
Да, если база живёт больше года. Без переноса отчёты по остаткам постепенно замедляются, хотя на маленьких объёмах это может быть незаметно.
Почему ПРИ отображается концом месяца, хотя я вводил середину?
Помесячные итоги хранятся по месяцам, поэтому платформа округляет дату до конца месяца.
Связан ли ПРИ с датой запрета изменения данных?
Нет, это разные настройки. Дата запрета закрывает период от правок, ПРИ управляет хранением итогов. На практике их удобно держать согласованно: ПРИ не позже даты запрета.
Чем ПРИ отличается от агрегатов?
ПРИ относится к регистрам остатков и регистрам бухгалтерии. Агрегаты — механизм для оборотных регистров накопления, их настраивают на соседней закладке той же обработки.