Получает дополнительные данные, позволяющие выполнить сторнирование записей прошлых периодов регистрации при вводе текущего набора записей. Данные получаются в виде таблицы значений со следующей структурой: все предопределенные поля записи регистра расчета кроме регистратора и номера записи, все измерения, ресурсы и реквизиты, а также дополнительные поля - период регистрации сторнирования, дата начала сторнирования и дата окончания сторнирования. Дополнение - это данные, которые система "предлагает" добавить в текущий набор записей для того, чтобы текущие записи набора в результате сохранения имели максимальный фактический период действия за счет сторнирования (если это необходимо) записей прошлых периодов регистрации. Предлагаемые дополнительные сторно-записи формируются на основании периодов действия записей регистра расчета и правил конкуренции за период действия, задаваемых списками вытесняемых видов расчета в плане видов расчета регистра. Необходимость получить дополнение возникает при попытке ввести учетную запись с периодом действия, который уже "занят" введенной ранее учетной записью, период регистрации которой меньше, чем период регистрации вводимой учетной записи. В полученной таблице значений поля заполнены данными сторнируемых записей (уже существующих в регистре расчета) и, кроме того, дополнительными данными: период регистрации сторно - период регистрации, в котором система рекомендует зарегистрировать сторно-запись, дата начала и дата окончания периода сторниро
Синтаксис
ПолучитьДополнение()Примеры платформы
РегистрНачисления = "ОсновныеНачисленияСотрудниковОрганизаций";
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДокументСсылка" , Ссылка);
Запрос.Текст = "
|ВЫБРАТЬ
| Дата,
| ПериодРегистрации,
| Организация,
| Ссылка
|ИЗ
| Документ." + Метаданные().Имя + "
|ГДЕ
| Ссылка = &ДокументСсылка
|";
ВыборкаПоШапкеДокумента = Запрос.Выполнить().Выбрать();
Выборка = СформироватьЗапросПоНалогам().Выбрать();
Пока Выборка.Следующий() Цикл
ПроверкаЗаполнения(ВыборкаПоШапкеДокумента, Выборка, Отказ);
Если НЕ Отказ Тогда
Движение = Движения.НДФЛИсчисленный13.Добавить();
КонецЕсли;
КонецЦикла;
Если НЕ Отказ Тогда
СторноЗаписи = Движения[РегистрНачисления].ПолучитьДополнение();
Для каждого Строка Из СторноЗаписи Цикл
Движение = Движения[ИмяРегистра].Добавить();
Движение.Регистратор = ВыборкаПоШапкеДокумента.Ссылка;
Движение.График = Строка.График;
Движение.Размер = Строка.Размер;
КонецЦикла;
КонецЕсли;
НаборДвиженийРегистра = Движения[РегистрНачисления];
НаборДвиженийРегистра.Записать();Полное описание, параметры и ограничения
РегистрРасчетаНаборЗаписей.<Имя регистра расчета>.ПолучитьДополнение (CalculationRegisterRecordSet.<Calculation register name>.GetAddition)
РегистрРасчетаНаборЗаписей.<Имя регистра расчета> (CalculationRegisterRecordSet.<Calculation register name>)
ПолучитьДополнение (GetAddition)
Доступен, начиная с версии 8.0.
Синтаксис:
ПолучитьДополнение()
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Получает дополнительные данные, позволяющие выполнить сторнирование записей прошлых периодов регистрации при вводе текущего набора записей. Данные получаются в виде таблицы значений со следующей структурой: все предопределенные поля записи регистра расчета кроме регистратора и номера записи, все измерения, ресурсы и реквизиты, а также дополнительные поля - период регистрации сторнирования, дата начала сторнирования и дата окончания сторнирования.
Дополнение - это данные, которые система "предлагает" добавить в текущий набор записей для того, чтобы текущие записи набора в результате сохранения имели максимальный фактический период действия за счет сторнирования (если это необходимо) записей прошлых периодов регистрации. Предлагаемые дополнительные сторно-записи формируются на основании периодов действия записей регистра расчета и правил конкуренции за период действия, задаваемых списками вытесняемых видов расчета в плане видов расчета регистра.
Необходимость получить дополнение возникает при попытке ввести учетную запись с периодом действия, который уже "занят" введенной ранее учетной записью, период регистрации которой меньше, чем период регистрации вводимой учетной записи.
В полученной таблице значений поля заполнены данными сторнируемых записей (уже существующих в регистре расчета) и, кроме того, дополнительными данными: период регистрации сторно - период регистрации, в котором система рекомендует зарегистрировать сторно-запись, дата начала и дата окончания периода сторнирования - период, который система рекомендует ввести в качестве периода действия сторно-записи.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
// код располагается в модуле документа
РегистрНачисления = "ОсновныеНачисленияСотрудниковОрганизаций";
Запрос = Новый Запрос;
// Установим параметры запроса
Запрос.УстановитьПараметр("ДокументСсылка" , Ссылка);
Запрос.Текст = "
|ВЫБРАТЬ
| Дата,
| ПериодРегистрации,
| Организация,
| Ссылка
|ИЗ
| Документ." + Метаданные().Имя + "
|ГДЕ
| Ссылка = &ДокументСсылка
|";
ВыборкаПоШапкеДокумента = Запрос.Выполнить().Выбрать();
Выборка = СформироватьЗапросПоНалогам().Выбрать();
Пока Выборка.Следующий() Цикл
// проверим очередную строку табличной части
ПроверкаЗаполнения(ВыборкаПоШапкеДокумента, Выборка, Отказ);
Если НЕ Отказ Тогда
// зарегистрируем в регистре сведений
Движение = Движения.НДФЛИсчисленный13.Добавить();
// формирование свойств
// ...
// формирование измерений
// ...
КонецЕсли;
КонецЦикла;
Если НЕ Отказ Тогда
// Получим дополнительные записи, имеющие признак сторно,
// которые необходимо добавить в текущий набор для того,
// чтобы в результате сохранения получился максимальный
// фактический период действия
СторноЗаписи = Движения[РегистрНачисления].ПолучитьДополнение();
Для каждого Строка Из СторноЗаписи Цикл
Движение = Движения[ИмяРегистра].Добавить();
// формирование свойств
Движение.Регистратор = ВыборкаПоШапкеДокумента.Ссылка;
// ...
// формирование измерений
// ...
// формирование ресурсов
// ...
// формирование реквизитов
Движение.График = Строка.График;
Движение.Размер = Строка.Размер;
// ...
КонецЦикла;
КонецЕсли;
// записать сформированные движения
НаборДвиженийРегистра = Движения[РегистрНачисления];
НаборДвиженийРегистра.Записать();
См. также:
ПланВидовРасчетаОбъект.<Имя плана видов расчета>, свойство ВытесняющиеВидыРасчета
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить дополнение набора расчета по своему документу
Дополнение приходит от реального набора записей и содержит данные для сторнирования, не результат расчета зарплаты.
Где и как запускать
Сервер собственной учебной базы; также толстый клиент или внешнее соединение, если это разрешено указанным API.
Подготовка
Только собственная учебная конфигурация. Все указанные имена сначала создайте в Конфигураторе; объекты рабочей базы не заменяйте. Здесь код не запускается.
Создайте свой документ УчебноеНачисление и регистр расчета УчебныеНачисления с поддержкой периода действия. Заранее вручную подготовьте учебные записи и ситуацию вытеснения, если требуется непустое дополнение.
&НаСервереБезКонтекста
Процедура ПоказатьУчебноеДополнение()
Документ = Документы.УчебноеНачисление.НайтиПоНомеру("001", Дата(2026, 1, 1));
Если Не ЗначениеЗаполнено(Документ) Тогда
ВызватьИсключение "Учебный документ не найден";
КонецЕсли;
Набор = РегистрыРасчета.УчебныеНачисления.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Документ);
Набор.Прочитать();
Дополнение = Набор.ПолучитьДополнение();
Для Каждого СтрокаДополнения Из Дополнение Цикл
Сообщить("Период регистрации: " + Строка(СтрокаДополнения.ПериодРегистрации));
КонецЦикла;
Сообщить("Строк дополнения: " + Строка(Дополнение.Количество()));
КонецПроцедурыРазбор по шагам
Установите отбор на собственный регистратор.
Прочитайте его набор и получите дополнение.
Переберите фактические строки и покажите периоды.
Как проверить результат
Набор не читается без отбора для всей базы.
Пустое дополнение показывается как 0, а не подставленная сторнирующая строка.
Ожидаемый результат
Показаны настоящие дополнительные данные выбранного учебного набора.
На что обратить внимание
Метод не записывает сторно самостоятельно. Без подготовленной ситуации прошлых периодов результат может быть пустым.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.