Каталог решений - Как в ЗУП 3.0 правильно получить тариф/оклад по сотруднику

Как в ЗУП 3.0 правильно получить тариф/оклад по сотруднику

Как в ЗУП 3.0 правильно получить тариф/оклад по сотруднику

В наличии

Речь пойдет о том, как в новой редакции получить тариф/оклад сотрудника на заданную дату. Этот самый тариф нам очень часто нужен для вывода в отчетах чисто информативно. Проблема в том, что в 1С ЗУП 3.0 не очевидно, какое из плановых начислений является основным.

Категория:

Описание

Сегодня я расскажу тебе, дорогой мой читатель, одну очень увлекательную сказку, а, может, и не сказку…

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

.

 

 

При этом основным называлось то, у которого реквизит «ВидВремени» был равен «Начисление за работу полную смену в пределах нормы времени».

Теперь такого нет, в 1С Зарплата и Управление персонало 3.0 мы легко можем повесить человеку два «основных» начисления. Тут теперь вообще нет такого понятия, как основное/не основное. Сделали это не спроста, на практике бывают хитрые случаи, когда у человека одновременно и тариф по часам и оклад и тариф для сдельной оплаты труда. Это редкость, но такое бывает и структура данных в ЗУП 3.0 этому не мешает.

Так вот, получается, что у человека есть куча плановых начислений, и понять, кто из них основное мы не можем. Как это все настроить, чтобы оно потом корректно считалос — совсем другая история. Наша задача заполнить в шапке абстрактного отчета по сотруднику «оклад/тариф». Хотя, почему абстрактного, в расчетном листке в заголовке как раз он и выводится.

Первая засада с выбором наичсления решается следующим образом: у вида расчета есть поле «РеквизитДопУпорядочивания», у кого он меньше, тот и будет главным.

Этот реквизит не видим пользователю, он определяет порядок вывода видов расчета в расчетке (по нему идет сортировка). Правится его значение в форме списка выидов расчета с помощью стрелочек

 

Но это не все. Найдя плановое начисление с самым маленьким «порядком», Вы не узнаете его размер. Теперь в ЗУП 3.0 размеры показателей лежат в отдельном регистре сведений. Раньше конфой было ограничено их количество шестью. Теперь их может быть много, и глядя в регистр сведений «ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников» нифига не понятно, кто из них главный.

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

  {loadposition position-14}

Ниже привожу рабочий текст запроса, который возвращает все что нужно

ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПлановыеНачисленияСрезПоследних.Сотрудник КАК Сотрудник,

ПлановыеНачисленияСрезПоследних.Начисление КАК Начисление,
ВЫБОР
КОГДА ПлановыеНачисленияСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
ИЛИ ПлановыеНачисленияСрезПоследних.ДействуетДо > КОНЕЦПЕРИОДА(&Период, ДЕНЬ)
И &Период <> ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ПлановыеНачисленияСрезПоследних.Используется
ИНАЧЕ ПлановыеНачисленияСрезПоследних.ИспользуетсяПоОкончании
КОНЕЦ КАК Используется
ПОМЕСТИТЬ ВТПлановыеНачисленияСрезПоследних
ИЗ
РегистрСведений.ПлановыеНачисления.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК ПлановыеНачисленияСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПлановыеНачисленияСрезПоследних.Сотрудник КАК Сотрудник,
ПлановыеНачисленияСрезПоследних.Начисление КАК Начисление,
Начисления.РеквизитДопУпорядочивания КАК Порядок,
ЕСТЬNULL(НачисленияПоказатели.Показатель, ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)) КАК ОсновнойПоказатель
ПОМЕСТИТЬ ВТПлановыеНачисленияСотрудниковСПоказателем
ИЗ
ВТПлановыеНачисленияСрезПоследних КАК ПлановыеНачисленияСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления КАК Начисления
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
ПО Начисления.Ссылка = НачисленияПоказатели.Ссылка
И (НачисленияПоказатели.ОсновнойПоказатель)
ПО ПлановыеНачисленияСрезПоследних.Начисление = Начисления.Ссылка
ГДЕ
ПлановыеНачисленияСрезПоследних.Используется
ИНДЕКСИРОВАТЬ ПО
Сотрудник,
Порядок,
Начисление
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПлановыеНачисленияСотрудников.Сотрудник КАК Сотрудник,
МИНИМУМ(ПлановыеНачисленияСотрудников.Порядок) КАК Порядок
ПОМЕСТИТЬ ВТПорядокОсновныхНачислений
ИЗ
ВТПлановыеНачисленияСотрудниковСПоказателем КАК ПлановыеНачисленияСотрудников
СГРУППИРОВАТЬ ПО
ПлановыеНачисленияСотрудников.Сотрудник
ИНДЕКСИРОВАТЬ ПО
Сотрудник,
Порядок
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТПлановыеНачисленияСотрудниковСПоказателем.Сотрудник,
ВТПлановыеНачисленияСотрудниковСПоказателем.Начисление,
ВТПлановыеНачисленияСотрудниковСПоказателем.ОсновнойПоказатель,
ВЫБОР
КОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение
КОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ДействуетДо < &период
ТОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ЗначениеПоОкончании
ИНАЧЕ ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение
КОНЕЦ КАК ТарифОклад
ИЗ
ВТПорядокОсновныхНачислений КАК ВТПорядокОсновныхНачислений
ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыеНачисленияСотрудниковСПоказателем КАК ВТПлановыеНачисленияСотрудниковСПоказателем
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних
ПО ВТПлановыеНачисленияСотрудниковСПоказателем.Сотрудник = ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Сотрудник
И ВТПлановыеНачисленияСотрудниковСПоказателем.ОсновнойПоказатель = ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель
ПО ВТПорядокОсновныхНачислений.Сотрудник = ВТПлановыеНачисленияСотрудниковСПоказателем.Сотрудник
И ВТПорядокОсновныхНачислений.Порядок = ВТПлановыеНачисленияСотрудниковСПоказателем.Порядок


 

has been added to your cart:
Оформление заказа