РегистрРасчетаНаборЗаписей.<Имя регистра расчета>

Типы · <Calculation register name>

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

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

Рег = РегистрыРасчета.ОсновныеНачисленияСотрудниковОрганизации;
НаборЗаписейДляПроверки = Рег.СоздатьНаборЗаписей();
НаборЗаписейДляПроверки.Отбор.Регистратор.Значение = Ссылка;
ТипОснНачислений = Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрг");
Для Каждого Начисление из Начисления Цикл
    Если ТипЗнч(Начисление.ВидРасчета) = ТипОснНачислений Тогда
        Движение = НаборЗаписейДляПроверки.Добавить();
        Движение.ПериодРегистрации = ПериодРегистрации;
        Движение.ВидРасчета = Начисление.ВидРасчета;
        Движение.ПериодДействияНачало = Начисление.ДатаНачала;
        Движение.ПериодДействияКонец = Начисление.ДатаОкончания;
        Движение.ФизЛицо = Начисление.ФизЛицо;
        Движение.Приказ = Начисление.Приказ;
        Движение.Организация = Организация;
        Движение.ГрафикРаботы = Начисление.ГрафикРаботы;
        Движение.ВидУчетаВремени = Перечисления.ВидыУчетаВремени.ПоДням;
    Иначе
    КонецЕсли;
КонецЦикла;
НаборЗаписейДляПроверки.Записать();
Полное описание, параметры и ограничения

РегистрРасчетаНаборЗаписей.<Имя регистра расчета> (CalculationRegisterRecordSet.<Calculation register name>)

РегистрРасчетаНаборЗаписей.<Имя регистра расчета> (CalculationRegisterRecordSet.<Calculation register name>)

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

Элементы коллекции:
РегистрРасчетаЗапись.<Имя регистра расчета>
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс записи (нумерация с 0).

Свойства:
ДополнительныеСвойства (AdditionalProperties)
Записывать (Write)
ОбменДанными (DataExchange)
Отбор (Filter)
ЭтотОбъект (ThisObject)

Методы:
Вставить (Insert)
Выбран (Selected)
Выгрузить (Unload)
ВыгрузитьКолонки (UnloadColumns)
ВыгрузитьКолонку (UnloadColumn)
Добавить (Add)
Загрузить (Load)
ЗагрузитьКолонку (LoadColumn)
Записать (Write)
Индекс (IndexOf)
Итог (Total)
Количество (Count)
Метаданные (Metadata)
Модифицированность (Modified)
Очистить (Clear)
Получить (Get)
ПолучитьДополнение (GetAddition)
ПолучитьФактическийПериодДействия (GetAdjustedEffectivePeriod)
ПолучитьФорму (GetForm)
ПроверитьЗаполнение (CheckFilling)
Прочитать (Read)
Сдвинуть (Move)
Удалить (Delete)
УстановитьАктивность (SetActive)

События:
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
ПередЗаписью (BeforeWrite)
ПриЗаписи (OnWrite)

Описание:

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

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

Сервер, толстый клиент, внешнее соединение.
Данный объект может быть сериализован в/из XML. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: CalculationRegisterRecordSet.<Имя регистра расчета>.

Пример:

// Начисления - сформированная таблица значений начислений

Рег = РегистрыРасчета.ОсновныеНачисленияСотрудниковОрганизации;
НаборЗаписейДляПроверки = Рег.СоздатьНаборЗаписей();
НаборЗаписейДляПроверки.Отбор.Регистратор.Значение = Ссылка;
ТипОснНачислений = Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрг");
Для Каждого Начисление из Начисления Цикл
Если ТипЗнч(Начисление.ВидРасчета) = ТипОснНачислений Тогда
Движение = НаборЗаписейДляПроверки.Добавить();
// свойства

Движение.ПериодРегистрации = ПериодРегистрации;
Движение.ВидРасчета = Начисление.ВидРасчета;
Движение.ПериодДействияНачало = Начисление.ДатаНачала;
Движение.ПериодДействияКонец = Начисление.ДатаОкончания;
// измерения

Движение.ФизЛицо = Начисление.ФизЛицо;
Движение.Приказ = Начисление.Приказ;
Движение.Организация = Организация;
// реквизиты поддержки графика

Движение.ГрафикРаботы = Начисление.ГрафикРаботы;
Движение.ВидУчетаВремени = Перечисления.ВидыУчетаВремени.ПоДням;
Иначе
// обработка других начислений

// ...

КонецЕсли;
КонецЦикла;
НаборЗаписейДляПроверки.Записать();

См. также:
РегистрРасчетаМенеджер.<Имя регистра расчета>, метод СоздатьНаборЗаписей
РегистрРасчетаНаборЗаписей.<Имя регистра расчета>, свойство ЭтотОбъект

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

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

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

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

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

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

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

Полный серверный общий модуль собственной учебной конфигурации. Набор в памяти и собственная плановая ссылка; объект документа не создаётся. Без расчёта зарплаты; запуск в 1С не проверен.

Подготовка

  1. Создайте новую пустую файловую базу с именем корня УчебныеНаборыРасчета85. Это отдельный учебный стенд, не ЗУП, КА2, УНФ, УТ или БП. Других документов, регистров и справочников в нём не должно быть.

  2. Создайте план видов расчёта УчебныеВиды85: тип кода Строка, длина кода 10, наименования 100; использование периода действия выключено, зависимость от видов расчёта Не использовать. Реквизиты и табличные части не добавляйте.

  3. В предопределённых видах плана создайте УчебноеНачисление с кодом DEMO и наименованием Учебная сумма. Не задавайте зависимости или вытесняющие виды. Это вид учебного расчёта, не формула зарплаты.

  4. Создайте документ УчебныйРегистратор85 без реквизитов и табличных частей. Создайте регистр расчёта УчебныеСуммы85: периодичность Месяц, план УчебныеВиды85; период действия и базовый период выключены; график и перерасчёты не задавайте. На вкладке Движения собственного документа отметьте только этот регистр.

  5. Добавьте в регистр измерение МеткаОперации: Строка(80), Проверка заполнения — Выдавать ошибку; единственный ресурс Сумма: Число(15,2). Других измерений, ресурсов и реквизитов не добавляйте. Обновите конфигурацию учебной базы, чтобы создать предопределённый вид.

  6. Оставьте модули документа и набора пустыми, без подписок на события. Создайте серверный общий модуль УчебныеЗаписиРасчета с флагом Сервер, без Привилегированный. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из своей серверной команды учебной обработки.

  7. ПолучитьСсылку своего менеджера с новым UUID формирует непустое ссылочное значение собственного типа. Объект документа не создаётся и не записывается; непустая ссылка не доказывает существование документа. Наборы меняются только в памяти; вызовов Записать нет. Отдельный урок чтения ограничен своими новыми плановыми ссылками.

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

Процедура ВыполнитьПример() Экспорт
    Набор = СоздатьСвойНабор();
    Набор.Получить(1).Сторно = Истина;
    Сообщить(Набор.Итог("Сумма") = 800);
    Сообщить(ПосчитатьУчебнуюСумму(Набор) = 700);
    Набор.УстановитьАктивность(Ложь);
    Сообщить(НЕ Набор.Получить(0).Активность И НЕ Набор.Получить(1).Активность);
    Сообщить(Набор.Итог("Сумма") = 800);
    Сообщить(ПосчитатьУчебнуюСумму(Набор) = 0);
    Набор.УстановитьАктивность(Истина);
    Сообщить(Набор.Получить(0).Активность И Набор.Получить(1).Активность);
    Сообщить(ПосчитатьУчебнуюСумму(Набор) = 700);
КонецПроцедуры

Процедура ПроверитьУчебнуюСхему()
    Если Метаданные.Документы.Количество() <> 1 ИЛИ Метаданные.ПланыВидовРасчета.Количество() <> 1 ИЛИ Метаданные.РегистрыРасчета.Количество() <> 1 ИЛИ Метаданные.Справочники.Количество() <> 0 ИЛИ Метаданные.РегистрыСведений.Количество() <> 0 ИЛИ Метаданные.РегистрыНакопления.Количество() <> 0 ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 0 Тогда
        ВызватьИсключение "Нужна отдельная пустая учебная конфигурация УчебныеНаборыРасчета85";
    КонецЕсли;
    План = Метаданные.ПланыВидовРасчета.Найти("УчебныеВиды85");
    Регистр = Метаданные.РегистрыРасчета.Найти("УчебныеСуммы85");
    Документ = Метаданные.Документы.Найти("УчебныйРегистратор85");
    Если План = Неопределено ИЛИ Регистр = Неопределено ИЛИ Документ = Неопределено Тогда
        ВызватьИсключение "Не найдены три собственных объекта учебной схемы";
    КонецЕсли;
    Если План.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
        ИЛИ План.ДлинаКода <> 10 ИЛИ План.ДлинаНаименования <> 100
        ИЛИ План.ИспользованиеПериодаДействия
        ИЛИ План.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.НеИспользовать
        ИЛИ План.Реквизиты.Количество() <> 0 ИЛИ План.ТабличныеЧасти.Количество() <> 0
        ИЛИ Документ.Реквизиты.Количество() <> 0 ИЛИ Документ.ТабличныеЧасти.Количество() <> 0 Тогда
        ВызватьИсключение "План видов или документ отличаются от подготовки";
    КонецЕсли;
    Если Регистр.Периодичность <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраРасчета.Месяц
        ИЛИ Регистр.ПериодДействия ИЛИ Регистр.БазовыйПериод
        ИЛИ Регистр.ПланВидовРасчета <> План
        ИЛИ Регистр.Измерения.Количество() <> 1 ИЛИ Регистр.Ресурсы.Количество() <> 1
        ИЛИ Регистр.Реквизиты.Количество() <> 0 ИЛИ Регистр.Перерасчеты.Количество() <> 0 Тогда
        ВызватьИсключение "Регистр должен быть помесячным, без периодов действия, базы и перерасчетов";
    КонецЕсли;
    Метка = Регистр.Измерения.Найти("МеткаОперации");
    Сумма = Регистр.Ресурсы.Найти("Сумма");
    Если Метка = Неопределено ИЛИ Сумма = Неопределено Тогда
        ВызватьИсключение "Нужны собственные поля МеткаОперации и Сумма";
    КонецЕсли;
    Если Метка.Тип.Типы().Количество() <> 1 ИЛИ НЕ Метка.Тип.СодержитТип(Тип("Строка"))
        ИЛИ Метка.Тип.КвалификаторыСтроки.Длина <> 80
        ИЛИ Метка.ПроверкаЗаполнения <> ПроверкаЗаполнения.ВыдаватьОшибку
        ИЛИ Сумма.Тип.Типы().Количество() <> 1 ИЛИ НЕ Сумма.Тип.СодержитТип(Тип("Число"))
        ИЛИ Сумма.Тип.КвалификаторыЧисла.Разрядность <> 15
        ИЛИ Сумма.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти <> 2 Тогда
        ВызватьИсключение "Типы полей и проверка заполнения отличаются от подготовки";
    КонецЕсли;
КонецПроцедуры

Функция СоздатьСвоюСсылкуРегистратора()
    ПлановаяСсылка = Документы.УчебныйРегистратор85.ПолучитьСсылку(Новый УникальныйИдентификатор);
    Если ТипЗнч(ПлановаяСсылка) <> Тип("ДокументСсылка.УчебныйРегистратор85") Или ПлановаяСсылка.Пустая() Тогда
        ВызватьИсключение "Нужна собственная непустая плановая ссылка регистратора";
    КонецЕсли;
    Возврат ПлановаяСсылка;
КонецФункции

Процедура ЗаполнитьСвоюЗапись(Запись, СвояСсылка, Метка, Сумма)
    Запись.Регистратор = СвояСсылка;
    Запись.ПериодРегистрации = Дата(2026, 10, 3);
    Запись.ВидРасчета = ПланыВидовРасчета.УчебныеВиды85.УчебноеНачисление;
    Запись.Активность = Истина;
    Запись.Сторно = Ложь;
    Запись.МеткаОперации = Метка;
    Запись.Сумма = Сумма;
КонецПроцедуры

Функция СоздатьСвойНабор()
    ПроверитьУчебнуюСхему();
    СвояСсылка = СоздатьСвоюСсылкуРегистратора();
    Набор = РегистрыРасчета.УчебныеСуммы85.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(СвояСсылка);
    ЗаполнитьСвоюЗапись(Набор.Добавить(), СвояСсылка, "Книга", 750);
    ЗаполнитьСвоюЗапись(Набор.Добавить(), СвояСсылка, "Ручка", 50);
    Возврат Набор;
КонецФункции

Функция ПосчитатьУчебнуюСумму(СвойНабор)
    Сумма = 0;
    Для Каждого Запись Из СвойНабор Цикл
        Если Запись.Активность Тогда
            Если Запись.Сторно Тогда
                Сумма = Сумма - Запись.Сумма;
            Иначе
                Сумма = Сумма + Запись.Сумма;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Сумма;
КонецФункции

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

  1. Поставить флаг Сторно только у собственной ручки 50. Значение ресурса остаётся положительным 50.

  2. Сравнить простой итог 800 с явно написанным учебным правилом: активная обычная книга +750, активная сторнирующая ручка −50, результат 700.

  3. УстановитьАктивность(Ложь) изменяет флаг всех двух записей. Наш отдельный фильтр даст 0, числовой Итог продолжит давать 800.

  4. Включить активность обратно и проверить 700. Ни период, ни вытеснение, ни зарплата этим алгоритмом не рассчитаны.

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

  1. Семь сообщений Истина. Условная сумма 700 → 0 → 700, простой итог ресурса всегда 800.

  2. Все флаги изменены только у собственных строк незаписанного набора.

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

Разобрано, почему сумма значений, признак сторно и алгоритм отбора — разные операции.

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

  1. ПосчитатьУчебнуюСумму — собственная функция урока, не метод платформы и не производственный алгоритм.

  2. Не считайте выставление Сторно автоматическим изменением знака Сумма.

  3. Фактический период действия и получение базы не демонстрируются: соответствующие механизмы выключены.

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

Создать две записи расчётного регистра и отличить сумму от начисления

Вид расчёта и период — поля записи. Итог числового ресурса 750+50 не является алгоритмом зарплаты или остатком базы.

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

Полный серверный общий модуль собственной учебной конфигурации. Набор в памяти и собственная плановая ссылка; объект документа не создаётся. Без расчёта зарплаты; запуск в 1С не проверен.

Подготовка

  1. Создайте новую пустую файловую базу с именем корня УчебныеНаборыРасчета85. Это отдельный учебный стенд, не ЗУП, КА2, УНФ, УТ или БП. Других документов, регистров и справочников в нём не должно быть.

  2. Создайте план видов расчёта УчебныеВиды85: тип кода Строка, длина кода 10, наименования 100; использование периода действия выключено, зависимость от видов расчёта Не использовать. Реквизиты и табличные части не добавляйте.

  3. В предопределённых видах плана создайте УчебноеНачисление с кодом DEMO и наименованием Учебная сумма. Не задавайте зависимости или вытесняющие виды. Это вид учебного расчёта, не формула зарплаты.

  4. Создайте документ УчебныйРегистратор85 без реквизитов и табличных частей. Создайте регистр расчёта УчебныеСуммы85: периодичность Месяц, план УчебныеВиды85; период действия и базовый период выключены; график и перерасчёты не задавайте. На вкладке Движения собственного документа отметьте только этот регистр.

  5. Добавьте в регистр измерение МеткаОперации: Строка(80), Проверка заполнения — Выдавать ошибку; единственный ресурс Сумма: Число(15,2). Других измерений, ресурсов и реквизитов не добавляйте. Обновите конфигурацию учебной базы, чтобы создать предопределённый вид.

  6. Оставьте модули документа и набора пустыми, без подписок на события. Создайте серверный общий модуль УчебныеЗаписиРасчета с флагом Сервер, без Привилегированный. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из своей серверной команды учебной обработки.

  7. ПолучитьСсылку своего менеджера с новым UUID формирует непустое ссылочное значение собственного типа. Объект документа не создаётся и не записывается; непустая ссылка не доказывает существование документа. Наборы меняются только в памяти; вызовов Записать нет. Отдельный урок чтения ограничен своими новыми плановыми ссылками.

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

Процедура ВыполнитьПример() Экспорт
    Набор = СоздатьСвойНабор();
    Сообщить(Набор.Количество() = 2);
    Сообщить(Набор.Итог("Сумма") = 800);
    Сообщить(Набор.Метаданные().Имя = "УчебныеСуммы85");
    Первая = Набор.Получить(0);
    Сообщить(ТипЗнч(Первая) = Тип("РегистрРасчетаЗапись.УчебныеСуммы85"));
    Сообщить(Первая.ПериодРегистрации = Дата(2026, 10, 1));
    Сообщить(Первая.МеткаОперации = "Книга" И Первая.Сумма = 750);
    Сообщить(Первая.ВидРасчета = ПланыВидовРасчета.УчебныеВиды85.УчебноеНачисление);
    Сообщить(Первая.Активность И НЕ Первая.Сторно);
    Сообщить(ТипЗнч(Первая.НомерСтроки) = Тип("Число"));
    Сообщить("Модифицированность своего набора: " + Строка(Набор.Модифицированность()));
КонецПроцедуры

Процедура ПроверитьУчебнуюСхему()
    Если Метаданные.Документы.Количество() <> 1 ИЛИ Метаданные.ПланыВидовРасчета.Количество() <> 1 ИЛИ Метаданные.РегистрыРасчета.Количество() <> 1 ИЛИ Метаданные.Справочники.Количество() <> 0 ИЛИ Метаданные.РегистрыСведений.Количество() <> 0 ИЛИ Метаданные.РегистрыНакопления.Количество() <> 0 ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 0 Тогда
        ВызватьИсключение "Нужна отдельная пустая учебная конфигурация УчебныеНаборыРасчета85";
    КонецЕсли;
    План = Метаданные.ПланыВидовРасчета.Найти("УчебныеВиды85");
    Регистр = Метаданные.РегистрыРасчета.Найти("УчебныеСуммы85");
    Документ = Метаданные.Документы.Найти("УчебныйРегистратор85");
    Если План = Неопределено ИЛИ Регистр = Неопределено ИЛИ Документ = Неопределено Тогда
        ВызватьИсключение "Не найдены три собственных объекта учебной схемы";
    КонецЕсли;
    Если План.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
        ИЛИ План.ДлинаКода <> 10 ИЛИ План.ДлинаНаименования <> 100
        ИЛИ План.ИспользованиеПериодаДействия
        ИЛИ План.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.НеИспользовать
        ИЛИ План.Реквизиты.Количество() <> 0 ИЛИ План.ТабличныеЧасти.Количество() <> 0
        ИЛИ Документ.Реквизиты.Количество() <> 0 ИЛИ Документ.ТабличныеЧасти.Количество() <> 0 Тогда
        ВызватьИсключение "План видов или документ отличаются от подготовки";
    КонецЕсли;
    Если Регистр.Периодичность <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраРасчета.Месяц
        ИЛИ Регистр.ПериодДействия ИЛИ Регистр.БазовыйПериод
        ИЛИ Регистр.ПланВидовРасчета <> План
        ИЛИ Регистр.Измерения.Количество() <> 1 ИЛИ Регистр.Ресурсы.Количество() <> 1
        ИЛИ Регистр.Реквизиты.Количество() <> 0 ИЛИ Регистр.Перерасчеты.Количество() <> 0 Тогда
        ВызватьИсключение "Регистр должен быть помесячным, без периодов действия, базы и перерасчетов";
    КонецЕсли;
    Метка = Регистр.Измерения.Найти("МеткаОперации");
    Сумма = Регистр.Ресурсы.Найти("Сумма");
    Если Метка = Неопределено ИЛИ Сумма = Неопределено Тогда
        ВызватьИсключение "Нужны собственные поля МеткаОперации и Сумма";
    КонецЕсли;
    Если Метка.Тип.Типы().Количество() <> 1 ИЛИ НЕ Метка.Тип.СодержитТип(Тип("Строка"))
        ИЛИ Метка.Тип.КвалификаторыСтроки.Длина <> 80
        ИЛИ Метка.ПроверкаЗаполнения <> ПроверкаЗаполнения.ВыдаватьОшибку
        ИЛИ Сумма.Тип.Типы().Количество() <> 1 ИЛИ НЕ Сумма.Тип.СодержитТип(Тип("Число"))
        ИЛИ Сумма.Тип.КвалификаторыЧисла.Разрядность <> 15
        ИЛИ Сумма.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти <> 2 Тогда
        ВызватьИсключение "Типы полей и проверка заполнения отличаются от подготовки";
    КонецЕсли;
КонецПроцедуры

Функция СоздатьСвоюСсылкуРегистратора()
    ПлановаяСсылка = Документы.УчебныйРегистратор85.ПолучитьСсылку(Новый УникальныйИдентификатор);
    Если ТипЗнч(ПлановаяСсылка) <> Тип("ДокументСсылка.УчебныйРегистратор85") Или ПлановаяСсылка.Пустая() Тогда
        ВызватьИсключение "Нужна собственная непустая плановая ссылка регистратора";
    КонецЕсли;
    Возврат ПлановаяСсылка;
КонецФункции

Процедура ЗаполнитьСвоюЗапись(Запись, СвояСсылка, Метка, Сумма)
    Запись.Регистратор = СвояСсылка;
    Запись.ПериодРегистрации = Дата(2026, 10, 3);
    Запись.ВидРасчета = ПланыВидовРасчета.УчебныеВиды85.УчебноеНачисление;
    Запись.Активность = Истина;
    Запись.Сторно = Ложь;
    Запись.МеткаОперации = Метка;
    Запись.Сумма = Сумма;
КонецПроцедуры

Функция СоздатьСвойНабор()
    ПроверитьУчебнуюСхему();
    СвояСсылка = СоздатьСвоюСсылкуРегистратора();
    Набор = РегистрыРасчета.УчебныеСуммы85.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(СвояСсылка);
    ЗаполнитьСвоюЗапись(Набор.Добавить(), СвояСсылка, "Книга", 750);
    ЗаполнитьСвоюЗапись(Набор.Добавить(), СвояСсылка, "Ручка", 50);
    Возврат Набор;
КонецФункции

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

  1. Проверить свою схему до создания объектов.

  2. Создать свою непустую плановую ссылку ПолучитьСсылку своего менеджера с новым UUID; проверить конкретный тип и поставить ссылку в отбор набора и в каждую запись. Объект документа не создаётся.

  3. Добавить две полностью заполненные строки Книга=750 и Ручка=50, указав собственный предопределённый вид.

  4. Для помесячного регистра 03.10.2026 приводится к 01.10.2026. Индекс 0 и НомерСтроки — разные понятия.

  5. Посчитать ресурс в памяти, показать фактическую модифицированность, ничего не записывать.

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

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

  2. Документ и движения не появились в базе.

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

Полная техническая задача: собственная схема, типизированный вид расчёта, период и две строки в памяти.

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

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

  2. Итог не вызывает формулу расчёта и не проверяет наличие выплат.

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

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

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

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

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

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