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

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

ЗаписатьРасчетНаОсновании

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

Синтаксис:

ЗаписатьРасчетНаОсновании(<Основание>, <Объект>, <ВидРасчета>, <ДатаНачала>,
<ДатаОконч>, <Результат>)

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

EnterCalculationByReason

Параметры:

<Основание> Документ, на основании которого вводится запись (или записи) в журнал расчетов.
<Объект> Объект расчета – элемент справочника, заданного при конфигурировании журнала расчетов.
<ВидРасчета> Вид вводимого расчета – ссылка на агрегатный объект "Вид Расчета".
<ДатаНачала> Необязательный параметр. Дата начала действия вводимого расчета. По умолчанию – дата начала текущего периода журнала расчетов.
<ДатаОконч> Необязательный параметр. Дата окончания действия вводимого расчета. По умолчанию – дата окончания текущего периода журнала расчетов.
<Результат> Необязательный параметр. Результат расчета. По умолчанию – ноль.

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

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

Описание:

Метод предназначен для ввода строк в журнал расчетов. Работает так же, как и метод ЗаписатьРасчет, но при этом реквизит Документ вводимых строк журнала расчетов заполняется значением параметра <Основание>. Использование метода ЗаписатьРасчетНаОсновании – один из способов непосредственно установить родительские отношения между любым документом и вводимыми записями журнала расчетов.

Данный метод отличается от метода ВвестиРасчетНаОсновании тем, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приоритет, а не меньший либо равный, как в случае с методом ВвестиРасчетНаОсновании. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет "сам себя".

При записи невытесняющего расчета ввод новых записей также происходит "осмотрительно" – новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подразумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Важно
Метод ЗаписатьРасчетНаОсновании можно применять только для тех объектов, которые созданы функцией СоздатьОбъект. Это значит, например, что его нельзя использовать непосредственно (без точки) в форме журнала расчетов или в модуле видов расчета
.

Пример:

Процедура Перерасчет(Группа, Сотрудник, Основание, Начало, Окончание) Экспорт

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

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

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

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

Сч = 1;

Пока (Сч < 50...) Цикл

Если (Расчеты[Сч].ВходитВГруппу(ВсеУд)=1) Тогда

ЖР.ЗаписатьРасчетНаОсновании(Основание, Сотрудник, Расчеты[Сч],

Начала[Сч], Окончания[Сч], 0);

Иначе

ЖР.ВвестиРасчетНаОсновании(Основания[Сч], Сотрудник, Расчеты[Сч],

Начала[Сч], Окончания[Сч], 0);

КонецЕсли;

Сч = Сч + 1;

КонецЦикла;

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

См. также: ВвестиРасчетНаОсновании.

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