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