Где в 1С 8.3 живёт бывшая точка актуальности итогов и как ею управлять

· 9 мин

Содержание

Точка актуальности (ТА) в 1С — это дата, до которой программа хранит заранее рассчитанные итоги регистров. В 1С:Предприятии 7.7 ею управляли через Операции → Управление оперативными итогами. В 1С 8.3 отдельной ТА нет: её роль выполняет период рассчитанных итогов, который задают в форме Все функции → Стандартные → Управление итогами.

Типичная ситуация: бухгалтер жалуется, что оборотно-сальдовая ведомость за текущий месяц строится минуту, а за прошлый год — за секунды. Администратор открывает управление итогами и видит, что период рассчитанных итогов застыл два года назад. После переноса на конец прошлого месяца отчёт снова строится быстро. Дальше — как устроен этот механизм и что с ним делать на практике.

Точка актуальности итогов: откуда термин и что он означает сейчас

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

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

В 8.3 принцип тот же, но механизм другой:

  • 📦 Итоги хранятся помесячно для регистров накопления остатков и для регистров бухгалтерии.
  • 📅 Период рассчитанных итогов — граница, до которой эти месячные итоги рассчитаны и поддерживаются.
  • ⚡ Текущие итоги — остатки «на сейчас», платформа поддерживает их постоянно, независимо от периода.
  • 🔍 Запрос на дату после периода платформа считает так: итоги на период плюс движения после него.
1С 7.71С 8.3
НазваниеТочка актуальности (ТА)Период рассчитанных итогов
Где управлятьОперации → Управление оперативными итогамиВсе функции → Стандартные → Управление итогами
Что хранитсяИтоги на положение ТАМесячные итоги до периода + текущие итоги
Для каких регистровОперативные регистрыРегистры накопления остатков, регистры бухгалтерии

Регистры оборотов, сведений и расчёта периода рассчитанных итогов не имеют. Для оборотного регистра платформа хранит итоги по-своему, и переносить там нечего.

Как платформа формирует и сдвигает период итогов

Сам по себе период рассчитанных итогов не движется. Его переносит администратор вручную, регламентное задание или код. Если никто этого не делает, граница стоит на месте месяцами.

Что происходит при работе с регистром:

  1. Документ проводится текущей датой, позже периода. Платформа пишет движения и обновляет текущие итоги. Месячные итоги после периода не трогает.
  2. Документ проводится задним числом, раньше периода. Платформа пересчитывает месячные итоги от даты документа до периода. Чем дальше вперёд стоит граница, тем больше работы.
  3. Отчёт строится на дату после периода. Берутся итоги на период, к ним прибавляются все движения после него. Чем дальше граница позади, тем больше движений читает запрос.
  4. Отчёт строится на дату до периода. Берётся ближайший месячный итог и досчитываются движения внутри месяца.

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

Как выбрать дату границы

Конец прошлого месяца подходит большинству баз, но есть исключения:

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

Логика простая: граница должна стоять сразу за тем периодом, который уже никто не правит. Тогда платформа почти не пересчитывает итоги при проведении и почти не досчитывает движения при отчётах.

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

Точка актуальности в распределённой информационной базе

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

Что из этого следует:

  • 🔁 Регламентное задание переноса итогов нужно в каждом узле. Настроили только в центре — магазины и филиалы через год начнут тормозить.
  • 🗂️ Пришедшие по обмену документы задним числом пересчитывают итоги в принимающем узле так же, как документы, проведённые там вручную.
  • 🖥️ Файловые узлы выполняют регламентные задания, только пока в базе открыт сеанс пользователя. Узел, который открывают раз в неделю, переносит границу так же редко.
  • ⚖️ Расхождения остатков между узлами чаще объясняются тем, что обмен ещё не дошёл или пришёл с ошибкой, а не периодом итогов. Сначала проверьте, что все пакеты загружены.

Не путайте период рассчитанных итогов с датой запрета изменения данных. Дата запрета — бухгалтерское ограничение, она не даёт править закрытый период. Период итогов — техническая настройка скорости, на права пользователей не влияет.

Как посмотреть и перенести период рассчитанных итогов

Через стандартную обработку «Управление итогами»

  1. Включите команду «Все функции»: Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”».
  2. Откройте Все функции → Стандартные → Управление итогами.
  3. В списке регистров найдите колонку с периодом итогов. Здесь же видно, включено ли использование итогов.
  4. Выделите регистры, выберите команду установки периода и укажите конец прошлого месяца.
  5. Дождитесь завершения. На большой базе перенос границы вперёд на год может занять минуты.

Нужны права администратора. Монопольный режим для переноса периода не требуется, но делать это лучше вне пиковой нагрузки.

Через «Администрирование» в типовых конфигурациях

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть своя обработка: Администрирование → Обслуживание, ссылка «Управление итогами и агрегатами». Там же настраивается регламентное задание «Установка периода рассчитанных итогов». Оно раз в месяц само сдвигает границу.

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

Кодом

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

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

Перенос для одного регистра на конец прошлого месяца:

КонецПрошлогоМесяца = НачалоМесяца(ТекущаяДатаСеанса()) - 1;
РегистрыНакопления.ТоварыНаСкладах.УстановитьПериодРассчитанныхИтогов(КонецПрошлогоМесяца);
РегистрыБухгалтерии.Хозрасчетный.УстановитьПериодРассчитанныхИтогов(КонецПрошлогоМесяца);

Имена регистров здесь — из Бухгалтерии 3.0. В другой конфигурации подставьте свои.

Сбои, которые связывают с точкой актуальности

Часть проблем действительно идёт от итогов, часть только похожа. Разобрать по симптому:

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

Пересчёт итогов делают двумя способами:

  • 🔧 Без монопольного режима — в «Управлении итогами» командой пересчёта по выбранным регистрам. Пользователи могут работать, но запись в эти регистры будет ждать.
  • 🧰 Через Конфигуратор — Администрирование → Тестирование и исправление, флажок «Пересчёт итогов». Нужен монопольный режим.

Монопольный режим означает, что все пользователи должны выйти из базы. Их несохранённые данные пропадут, если завершить сеансы принудительно. Предупредите людей заранее и запускайте проверку вечером или в выходной.

Период итогов при обновлении конфигурации

Обычное обновление релиза период рассчитанных итогов не сбрасывает. Граница остаётся там, где была.

Иначе обстоит дело, если обновление меняет структуру регистра: добавляет измерение или ресурс, меняет признак использования итогов. Тогда при обновлении конфигурации базы данных платформа реструктурирует таблицы и перестраивает итоги. На базе в десятки гигабайт это заметная часть времени обновления.

Что сделать до и после:

  1. Перед обновлением сделайте резервную копию базы : выгрузку .dt или копию средствами СУБД.
  2. Если период итогов стоит далеко позади, перенесите его заранее. Меньше движений после границы — быстрее последующие отчёты.
  3. После обновления сверьте пару ключевых остатков: остатки на складе, сальдо по 60 и 62 счетам.
  4. При расхождениях выполните пересчёт итогов по затронутым регистрам.

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

Пример: восстановили базу из копии, а остатки не сходятся

Ситуация. Склад работает в Бухгалтерии 3.0, клиент-серверный вариант. 18 числа база повреждена, восстановили выгрузку .dt от 15 числа. Документы за 16–18 число кладовщик вбил заново. Период рассчитанных итогов перед сбоем стоял на конце прошлого месяца.

Через день бухгалтер видит, что остаток по одной номенклатуре в ведомости по счёту 41 отличается от карточки счёта.

Порядок действий:

  1. Проверьте, всё ли введено. Сравните список документов за 16–18 число с первичкой. Пропущенная накладная — самая частая причина.
  2. Проверьте период итогов. Откройте «Управление итогами» и посмотрите границу по регистру бухгалтерии. Если она не на конце прошлого месяца, верните её туда.
  3. Пересчитайте итоги регистра бухгалтерии через «Управление итогами» вне рабочего времени.
  4. Сформируйте ведомость повторно и сравните с карточкой счёта.
  5. Если расхождение осталось, запустите Тестирование и исправление в Конфигураторе с флажком «Пересчёт итогов» и, при необходимости, проверкой логической целостности.

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

Частые вопросы

Можно ли поставить период итогов на будущую дату?
Технически можно, но смысла нет. Каждый документ текущей датой окажется раньше границы, и платформа будет пересчитывать месячные итоги при каждом проведении.
Влияет ли период рассчитанных итогов на суммы в отчётах?
Нет. Он влияет только на скорость. Остатки на любую дату получаются одинаковыми при любом положении границы, если итоги не повреждены.
Чем период итогов отличается от агрегатов?
Агрегаты — дополнительные таблицы для ускорения отчётов по оборотным регистрам. Период рассчитанных итогов касается регистров остатков и бухгалтерии. Это разные механизмы, хотя настраиваются в одной обработке.
Кто должен следить за периодом итогов — бухгалтер или администратор?
Администратор или специалист по сопровождению 1С. Бухгалтеру достаточно знать симптом: отчёты на свежие даты стали заметно медленнее, чем на старые.
Нужно ли переносить период итогов в файловой базе?
Нужно, если база живёт больше года. Механизм итогов в файловом и клиент-серверном варианте одинаковый, и отставшая граница замедляет отчёты в обоих.