d9e5a92d

ЖУРНАЛЫ РАСЧЕТОВ

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

Записи в журнал расчетов


обычно вводятся при проведении документов.

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

ЖЗ.УстановитьРеквизит(Рассчитана,1);

ЖЗ.ВвестиРасчет(ВыбрСотрудник, ВидРасчета.Премия, НачалоМесяца, КонецМесяца, ПремияСотруднику);

или

ЖЗ.ЗаписатьРасчет(ВыбрСотрудник, ВидРасчета.Премия, НачалоМесяца, КонецМесяца, ПремияСотруднику);

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

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

Например, организуем перебор записей с периодом действия в январе.

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

ДатаНач = '01.01.2002';

ДатаКон = '31.01.2002';

ЖЗ.ВыбратьЗаписи(ДатаНач, ДатаКон);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......действия с тек. записью

КонецЦикла;

А теперь организуем перебор записей, введенных в январе.

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

ДатаНач = '01.01.2002';

ЖЗ. ВыбратьПериод(ДатаНач);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

.......действия с тек. записью

КонецЦикла;

Отличие методов ВыбратьЗаписи и ВыбратьПериод проявляется, если запись введена в другом месяце, но период ее действия лежит в январе. Например, в феврале сотруднику выдают премию за январь. Тогда запись будет введена в феврале (период регистрации), но период ее действия - январь. В первый цикл она попадет, а во второй нет.



Посчитаем все начисления текущего сотрудника за январь:

ВсегоНачислено = 0;

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

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

....Если ЖЗ.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 Тогда

..........ВсегоНачислено = ВсегоНачислено + ЖЗ.Результат;

....КонецЕсли;

КонецЦикла;

Теперь рассчитаем все записи текущего сотрудника, введеные в текущем месяце:

ЖЗ.ВыбратьПериодПоОбъекту (ТекСотр, ДатаНач);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

........ЖЗ.Рассчитать();

КонецЦикла;

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

ЖЗ.ВыбратьЗаписиПоДокументу (ВыбрДокумент);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......ЖЗ.Рассчитать();

КонецЦикла;

Рассчитаем все записи по указанному подразделению. В журнале расчетов указана графа отбора Подразделение.

ТекПер = ЖЗ.ТекущийПериод();

ЖЗ.ВыбратьПоЗначению (Подразделение,ВыбрПодразделение, ТекПер, ТекПер);

Пока ЖЗ.ПолучитьЗапись()=1 Цикл

......ЖЗ.Рассчитать();

КонецЦикла;

При отмене проведения документа обычно автоматически удаляются всего его движения, в том числе и введенные записи в журналы расчетов.

Можно также явно удалять записи методом журнала расчетов УдалитьЗапись().

НачалоПериода = ЖЗ.НачалоТекущегоПериода();

КонецПериода = ЖЗ.КонецТекущегоПериода();

ПериодСтрокой = ЖЗ.ОписательПериода(НачМес); //например Январь 2002 г



Содержание раздела