Бывает, что необходимо посчитать зарплату за прошлый период в текущем расчетном периоде. При чем расчитать зарплату только тем, кому по той или иной причине она не была начислена в положенное время. Это особенно важно, если расчет производится по всему предприятию или по какому-либо подразделению. В ЗУП-е же (по крайней мере в конфигурации с бюджетными доработками фирмы АРБИС) расчет за прошлый период производится всем сотрудникам независимо от того была раньше начислена зарплата или нет.
Для решения данной ситуации предлагаю слегка подправить модуль документа НачислениеЗарплатыРаботникамОрганизаций:
// АВТОЗАПОЛНЕНИЕ ТЧ "Начисления", "ДополнительныеНачисления" и "ДоговорыНаВыполнениеРабот" Если ВидОперации = Перечисления.ВидыОперацийНачислениеЗарплатыРаботникамОрганизаций.ПолныйРасчет ... Иначе Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ОсновныеНачисления.Сотрудник КАК Сотрудник, | ОсновныеНачисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации |ПОМЕСТИТЬ ВТОсновныеНачисления |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДвиженияРаботников КАК ТаблицаДвиженийРаботников | ПО ОсновныеНачисления.Сотрудник = ТаблицаДвиженийРаботников.Сотрудник |ГДЕ //| ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации // ХА | (ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации ИЛИ ОсновныеНачисления.ПериодРегистрации = НАЧАЛОПЕРИОДА(&парамНачало,ДЕНЬ)) // ХА
Т.е. надо добавить дополнительное условие ИЛИ ОсновныеНачисления.ПериодРегистрации = НАЧАЛОПЕРИОДА(&парамНачало,ДЕНЬ). В этом запросе ищутся былые начисления зарплаты и если таковые по тому или иному сотруднику найдены, то данному сотру зарплата в текущем периоде (&парамПериодРегистрации) начисляться уже не будет. А так как мы начисляем за прошлый период, то соответственно ОсновныеНачисления.ПериодРегистрации у нас будет меньше чем текущий период начисления (&парамПериодРегистрации). При простом условии ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации программа естественно не видела старых начислений и начисляла всем сотрудникам зарплату во второй раз.
Если я Вам помог, то меня можно поблагодарить.
Отправить комментарий