РегистрНакопленияМенеджер.<Имя регистра накопления>.УстановитьИспользованиеТекущихИтогов

Методы · SetPresentTotalsUsing

Устанавливает флаг использования текущих итогов.

Синтаксис

УстановитьИспользованиеТекущихИтогов(<Флаг>)
Полное описание, параметры и ограничения

РегистрНакопленияМенеджер.<Имя регистра накопления>.УстановитьИспользованиеТекущихИтогов (AccumulationRegisterManager.<Accumulation register name>.SetPresentTotalsUsing)

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

УстановитьИспользованиеТекущихИтогов (SetPresentTotalsUsing)

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

Синтаксис:
УстановитьИспользованиеТекущихИтогов(<Флаг>)
Параметры:

<Флаг> (обязательный)
Тип: Булево.
Значение флага использования актуальных итогов.
Возвращаемое значение:
Тип: Булево.

Описание:

Устанавливает флаг использования текущих итогов.

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

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

Примечание:
Используется только для регистра остатков.
Влияет на наличие актуальных итогов. Если использование актуальных итогов выключено, то расчет актуальных остатков будет производиться следующим образом: сначала будут получены остатки на самые поздние хранимые итоги, а потом по движениям за оставшийся период будут получены актуальные остатки.
Позволяет увеличить параллельность при записи наборов записей данного регистра, так как не требуется обновления актуальных итогов.
Использование в версии:

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

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

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

Отдельно переключить текущие итоги собственного регистра остатков

УстановитьИспользованиеТекущихИтогов возвращает Булево. Код проверяет только тип ответа, не считает его старым флагом; состояние заново читается getter.

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

Полный серверный модуль своей новой ПУСТОЙ УчебныеОстатки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 Тогда
        ВызватьИсключение "В собственном регистре уже есть движения: этот пустой административный опыт запрещён";
    КонецЕсли;
    ИсходныйФлаг = Менеджер.ПолучитьИспользованиеТекущихИтогов();
    Если ТипЗнч(ИсходныйФлаг) <> Тип("Булево") Тогда
        ВызватьИсключение "Не получен собственный исходный флаг";
    КонецЕсли;
    ИзменениеНачато = Ложь;
    Попытка
        ИзменениеНачато = Истина;
        ОтветПлатформы = Менеджер.УстановитьИспользованиеТекущихИтогов(Не ИсходныйФлаг);
        Сообщить(ТипЗнч(ОтветПлатформы) = Тип("Булево"));
        Сообщить(Менеджер.ПолучитьИспользованиеТекущихИтогов() = Не ИсходныйФлаг);
        Менеджер.УстановитьИспользованиеТекущихИтогов(ИсходныйФлаг);
        Если Менеджер.ПолучитьИспользованиеТекущихИтогов() <> ИсходныйФлаг Тогда
            ВызватьИсключение "Не подтверждено восстановление собственного флага";
        КонецЕсли;
        ИзменениеНачато = Ложь;
        Сообщить(Менеджер.ПолучитьИспользованиеТекущихИтогов() = ИсходныйФлаг);
    Исключение
        ИсходнаяОшибка = ОписаниеОшибки();
        Если ИзменениеНачато Тогда
            Попытка
                Менеджер.УстановитьИспользованиеТекущихИтогов(ИсходныйФлаг);
                Если Менеджер.ПолучитьИспользованиеТекущихИтогов() <> ИсходныйФлаг Тогда
                    Сообщить("Восстановление собственного флага текущие итоги не подтверждено");
                КонецЕсли;
            Исключение
                Сообщить("Восстановление собственного флага текущие итоги завершилось ошибкой; проверьте учебный стенд");
            КонецПопытки;
        КонецЕсли;
        ВызватьИсключение ИсходнаяОшибка;
    КонецПопытки;
КонецПроцедуры

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

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

  2. Сохранить именно флаг текущих итогов, не флаг общего использования.

  3. Перед вызовом отметить намерение изменения и переключить только эту настройку.

  4. Булев ответ setter не объявлять исходным состоянием; проверить новое состояние независимым getter.

  5. Восстановить прочитанный флаг в обоих исходах, предупреждая о неуспешном восстановлении.

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

  1. Тип ответа Булево и две проверки фактического состояния Истина.

  2. Общее использование итогов этим уроком не переключается.

  3. После нормального завершения исходный флаг текущих итогов восстановлен.

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

Два вида использования итогов и особый возвращаемый тип не смешиваются.

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

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

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

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

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

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

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

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

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

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