РегистрНакопленияМенеджер.<Имя регистра накопления>.ПересчитатьИтоги

Методы · RecalcTotals

Выполняет полный пересчет итогов регистра накопления.

Синтаксис

ПересчитатьИтоги()

Примеры платформы

Регистры.Остатки.ПересчитатьИтоги();
Полное описание, параметры и ограничения

РегистрНакопленияМенеджер.<Имя регистра накопления>.ПересчитатьИтоги (AccumulationRegisterManager.<Accumulation register name>.RecalcTotals)

РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Accumulation register name>)

ПересчитатьИтоги (RecalcTotals)

Доступен, начиная с версии 8.0.

Синтаксис:
ПересчитатьИтоги()
Описание:

Выполняет полный пересчет итогов регистра накопления.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Пример:

Регистры.Остатки.ПересчитатьИтоги();

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Сравнить три процедуры пересчёта только своего пустого регистра

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

Где и как запускать

Полный серверный модуль своей новой ПУСТОЙ УчебныеОстатки85, платформа 8.5.1.1343. Административные настройки собственного регистра; здесь не запускался.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корневой конфигурации УчебныеОстатки85. Не добавляйте эти объекты в УТ/КА2/УНФ/БП. Режим управления блокировкой данных конфигурации — Управляемый.

  2. Документы → Добавить: УчебноеДвижение85. Номер: Строка длиной 40, автонумерация выключена. Модули объекта и менеджера оставьте пустыми; не добавляйте обработчики, подписки и обязательные пользовательские реквизиты.

  3. Регистры накопления → Добавить: УчебныеОстатки85. Вид регистра Остатки. Единственное измерение КодТовара: Строка 50, индексировать, проверка заполнения Показывать ошибку. Единственный ресурс Количество: Число 12,3, неотрицательное. Дополнительных реквизитов нет.

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

  5. Корневой режим совместимости Не использовать; платформа именно 8.5.1.1343. Единственный регистр — собственный УчебныеОстатки85 вида Остатки, единственный документ — УчебноеДвижение85. База новая пустая, не копия рабочей.

  6. Для этого блока никакие документы и движения не создавайте. Запрос проверяет отсутствие записей своего регистра до административного вызова. Других пользователей, обменов, расширений и фоновых заданий нет.

  7. Создайте серверный общий модуль УчебныеИтогиПримеры. Вставьте весь модуль одного урока, вызовите ВыполнитьПример() Экспорт из собственной серверной команды обработки; обновите конфигурацию БД.

  8. Это операции настройки/обслуживания регистра, не проведение документа. Откат движений не обещает восстановить все настройки/внутренние таблицы итогов.

  9. Урок с границами сознательно меняет диапазон в собственном одноразовом пустом стенде. Он не восстанавливает исходный диапазон и не предназначен для рабочего регистра. Перед таким ручным опытом сохраните резервную копию собственной учебной базы.

  10. При переключении булевых флагов исходное значение читается заранее и восстанавливается при успехе/ошибке. Если восстановление само завершилось ошибкой, код сообщает об этом явно; успешное восстановление не выдумывается.

  11. Примеры здесь не запускались в 1С. Ваши настройки, документы и итоги этим заполнением не изменялись.

  12. У своего УчебныеОстатки85 добавьте макет УчебнаяПамяткаИтогов типа Текстовый документ: первая строка OWN-TOTALS-85, вторая Пустой учебный регистр, не рабочая база. Обновите БД.

Процедура ВыполнитьПример() Экспорт
    Если Метаданные.Документы.Количество() <> 1
        Или Метаданные.РегистрыНакопления.Количество() <> 1
        Или Метаданные.Документы.Найти("УчебноеДвижение85") = Неопределено Тогда
        ВызватьИсключение "Разрешены только собственный учебный документ и регистр";
    КонецЕсли;
    Описание = Метаданные.РегистрыНакопления.Найти("УчебныеОстатки85");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "Сначала создайте собственный учебный регистр";
    КонецЕсли;
    Если Описание.ВидРегистра <> Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки
        Или Описание.Измерения.Количество() <> 1
        Или Описание.Ресурсы.Количество() <> 1
        Или Описание.Реквизиты.Количество() <> 0
        Или Описание.Измерения.Найти("КодТовара") = Неопределено
        Или Описание.Ресурсы.Найти("Количество") = Неопределено Тогда
        ВызватьИсключение "Нужен регистр остатков с КодТовара и Количество";
    КонецЕсли;
    Менеджер = РегистрыНакопления.УчебныеОстатки85;
    Если Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
        ВызватьИсключение "Нужен собственный стенд без старого режима совместимости";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Не вызывайте административный опыт внутри чужой транзакции";
    КонецЕсли;
    Проверка = Новый Запрос;
    Проверка.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Строк
    |ИЗ РегистрНакопления.УчебныеОстатки85";
    Данные = Проверка.Выполнить().Выгрузить();
    Если Данные.Количество() <> 1 Тогда
        ВызватьИсключение "Не получена собственная контрольная строка";
    КонецЕсли;
    Если Данные[0].Строк <> 0 Тогда
        ВызватьИсключение "В собственном регистре уже есть движения: этот пустой административный опыт запрещён";
    КонецЕсли;
    Если Не Менеджер.ПолучитьИспользованиеИтогов() Тогда
        ВызватьИсключение "В собственном пустом стенде должны использоваться итоги";
    КонецЕсли;
    НачалоОпыта = Дата(2026, 9, 1);
    КонецОпыта = Дата(2026, 9, 30, 23, 59, 59);
    Менеджер.ПересчитатьИтогиЗаПериод(НачалоОпыта, КонецОпыта);
    Менеджер.ПересчитатьТекущиеИтоги();
    Менеджер.ПересчитатьИтоги();
    Сообщить(Менеджер.ПолучитьИспользованиеИтогов());
    Сообщить("Три процедуры обслуживания своего ПУСТОГО регистра завершились без исключения");
    Сообщить("Движения не созданы. Ни исправление рабочей базы, ни производительность этим не проверены");
КонецПроцедуры

Разбор по шагам

  1. Проверить собственный регистр Остатки, современную совместимость и ноль движений.

  2. Не допускать чужую транзакцию и выключенное использование итогов.

  3. Задать свой явный сентябрьский период, не оставлять даты пропущенными ради неопределённого полного диапазона.

  4. Вызвать пересчёт за период, затем текущих итогов и полный пересчёт своего пустого регистра.

  5. Процедуры не присваиваются переменной; сообщение об окончании появляется только если исключений не было.

Как проверить результат

  1. Три процедуры завершились без исключения на ручном собственном опыте.

  2. Использование итогов осталось включено.

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

Ожидаемый результат

Различены три административные процедуры и их область применения.

На что обратить внимание

  1. Свойства и методы относятся только к собственному пустому регистру. Нельзя менять проверку имени на рабочий регистр ради опыта.

  2. ПолучитьИспользованиеИтогов и ПолучитьИспользованиеТекущихИтогов — разные настройки. Текущие итоги применимы только к Остатки.

  3. Булево возвращаемое значение метода не объявляется исходным состоянием или измеренным ускорением без отдельного контракта.

  4. Типизированные даты/флаги и явные проверки не являются доказательством запуска в 1С; здесь выполнялись только статические проверки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.