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