Иллюстрированный самоучитель по языку системы 1С:Предприятие

Методы журнала расчетов

ВвестиПерерасчетНаОсновании

Вводит перерасчет текущей записи журнала расчетов на основании произвольного документа.

Синтаксис:

ВвестиПерерасчетНаОсновании(<Документ>)

Англоязычный синоним:

InsertRecalcByReason

Параметры:

<Документ> Документ, на основании которого вводится запись (или записи) в журнал расчетов.

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

Число: 1 – если операция успешно выполнена; 0 – в противном случае.

Описание:

Метод предназначен для ввода строк-перерасчетов в журнал расчетов на основании произвольного документа. Как правило, используется в модуле документа, но может использоваться и в модуле вида расчета. Метод вводит полную копию текущей записи в журнал расчетов, не заполняя лишь атрибут Результат и вводя в качестве документа-основания параметр <Документ>.

В отличие от метода ВвестиПерерасчет (который вводит записи журнала на основании того документа, в модуле которого используется метод), данный метод вводит записи-перерасчеты, задавая для них произвольный документ-основание.

Записи-перерасчеты могут вводиться только для записей одного из прошлых расчетных периодов. Невозможно ввести перерасчет записи, которая в свою очередь является перерасчетом. При этом система позволяет вводить несколько записей-перерасчетов в разных расчетных периодах для одной и той же записи журнала.

Пример:

Процедура ПровестиПерерасчет(Док)

//Группа расчетов "оплата по среднему"

ОС = ГруппаРасчетов.ОплатаПоСреднему;

// перерасчет по журналу "зарплата"

ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");

// дата, начиная с которой нужно перерасчитывать и начисления

ДатаНачислений = ЖрнЗарплата.КонецПериодаПоДате(Начало) + 1;

// выделим все записи ЖР по сотруднику

ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Док.Сотрудник,

ЖрнЗарплата.НачалоПериодаПоДате(Док.Начало),

Минимум(Док.Окончание, ЖрнЗарплата.НачалоТекущегоПериода() - 1));

Сч = 1;

Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл

Если ((ЖрнЗарплата.ВидРасч.ВходитВГруппу(ОС) = 1) И

(ЖрнЗарплата.ДатаНачала < ДатаНачислений)) Тогда

ЖрнЗарплата.ВвестиПерерасчетНаОсновании(Док);

КонецЕсли;

КонецЦикла;

КонецПроцедуры

См. также: Перерасчет, ВвестиПерерасчет.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.