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