ЗаписатьРасчетНаОсновании
Ввести запись в журнал расчетов на основании произвольного документа.
Синтаксис:
ЗаписатьРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,
<ДатаОконч>, <Результат>)
Англоязычный синоним:
EnterCalculationByReason
Параметры:
<Основание> |
Документ, на основании которого вводится запись (или записи) в журнал расчетов. |
<Объект> |
Объект расчета — элемент справочника, заданного при конфигурировании журнала расчетов. |
<ВидРасчета> |
Вид вводимого расчета — ссылка на агрегатный объект «Вид Расчета». |
<ДатаНачала> |
Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию — дата начала текущего периода журнала расчетов. |
<ДатаОконч> |
Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию — дата окончания текущего периода журнала расчетов. |
<Результат> |
Необязательный параметр. Результат расчета. По умолчанию — ноль. |
Возвращаемое значение:
Число: 1 — если операция успешно выполнена; 0 — в противном случае.
Описание:
Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ЗаписатьРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Использование метода ЗаписатьРасчетНаОсновании — один из способов непосредственно установить родительские отношения между любым документом и вводимыми записями журнала расчетов.
Данный метод отличается от метода ВвестиРасчетНаОсновании тем, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приоритет, а не меньший либо равный, как в случае с методом ВвестиРасчетНаОсновании. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».
При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подразумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.
Важно! Метод ЗаписатьРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета.
Пример:
Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание) Экспорт
// перерасчет по журналу зарплата
ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");
ЖР.ВыбратьЗаписиПоОбъекту(Сотрудник, ЖР.НачалоПериодаПоДате(Начало),
Мин(Окончание, ЖР.НачалоТекущегоПериода() - 1));
Сч = 1;
Пока (Сч < 50...) Цикл
Если (Расчеты[Сч].ВходитВГруппу(ВсеУд)=1) Тогда
ЖР.ЗаписатьРасчетНаОсновании(Основание, Сотрудник, Расчеты[Сч],
Начала[Сч], Окончания[Сч], 0);
Иначе
ЖР.ВвестиРасчетНаОсновании(Основания[Сч], Сотрудник, Расчеты[Сч],
Начала[Сч], Окончания[Сч], 0);
КонецЕсли;
Сч = Сч + 1;
КонецЦикла;
КонецПроцедуры
См. также: ВвестиРасчетНаОсновании