РегистрРасчетаНаборЗаписей.<Имя регистра расчета>.ПолучитьДополнение (CalculationRegisterRecordSet.<Имя регистра расчета>.GetAddition)

Синтаксис:

ПолучитьДополнение()

Возвращаемое значение:

Тип: ТаблицаЗначений.

Описание:

Получает дополнительные данные, позволяющие выполнить сторнирование записей прошлых периодов регистрации при вводе текущего набора записей. Данные получаются в виде таблицы значений со следующей структурой: все предопределенные поля записи регистра расчета кроме регистратора и номера записи, все измерения, ресурсы и реквизиты, а также дополнительные поля - период регистрации сторнирования, дата начала сторнирования и дата окончания сторнирования.
Дополнение - это данные, которые система "предлагает" добавить в текущий набор записей для того, чтобы текущие записи набора в результате сохранения имели максимальный фактический период действия за счет сторнирования (если это необходимо) записей прошлых периодов регистрации. Предлагаемые дополнительные сторно-записи формируются на основании периодов действия записей регистра расчета и правил конкуренции за период действия, задаваемых списками вытесняемых видов расчета в плане видов расчета регистра.
Необходимость получить дополнение возникает при попытке ввести учетную запись с периодом действия, который уже "занят" введенной ранее учетной записью, период регистрации которой меньше, чем период регистрации вводимой учетной записи.
В полученной таблице значений поля заполнены данными сторнируемых записей (уже существующих в регистре расчета) и, кроме того, дополнительными данными: период регистрации сторно - период регистрации, в котором система рекомендует зарегистрировать сторно-запись, дата начала и дата окончания периода сторнирования - период, который система рекомендует ввести в качестве периода действия сторно-записи.

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

Сервер, толстый клиент, внешнее соединение.

Пример:

// код располагается в модуле документа
РегистрНачисления = "ОсновныеНачисленияСотрудниковОрганизаций";

Запрос = Новый Запрос;
// Установим параметры запроса
Запрос.УстановитьПараметр("ДокументСсылка" , Ссылка);

Запрос.Текст = "
|ВЫБРАТЬ 
|    Дата, 
|    ПериодРегистрации, 
|    Организация, 
|    Ссылка 
|ИЗ 
|    Документ."
 + Метаданные().Имя + "
|ГДЕ 
|    Ссылка = &ДокументСсылка
|"
;

ВыборкаПоШапкеДокумента = Запрос.Выполнить().Выбрать();
Выборка = СформироватьЗапросПоНалогам().Выбрать();
Пока 
Выборка.Следующий() Цикл 
    // проверим очередную строку табличной части
    ПроверкаЗаполнения(ВыборкаПоШапкеДокумента, Выборка, Отказ);

    Если 
НЕ Отказ Тогда
        // зарегистрируем в регистре сведений
        Движение = Движения.НДФЛИсчисленный13.Добавить();
        // формирование свойств
        // ...           
        // формирование измерений
        // ...
    КонецЕсли;
КонецЦикла
;

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

См. также:

ПланВидовРасчетаОбъект, свойство ВытесняющиеВидыРасчета

    

1C:Enterprise Developer's Community