|
Функция получения РК для сотрудника в ЗУП 3 | ☑ | ||
---|---|---|---|---|
0
егаис
03.06.20
✎
07:49
|
Перерыл кажется все БСП ЗУП-ское, не могу найти функцию, которая бы вернула районный коэффициент сотрудника на дату, конечно, с учетом ведения рк по территориям.
|
|||
1
егаис
03.06.20
✎
07:57
|
пока вижу только запрос к РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних с соединением с регистром Территориии
Но все же думаю, что есть универсальная функция |
|||
2
Фрэнки
03.06.20
✎
08:03
|
Не могу сказать, чтоб совсем пристально с этим разобрался, но навскидку впечатление, что РК берут просто как одно из назначенных сотруднику плановых начислений. Т.е. не просто некий показатель, а начисление с показателем. Поэтому универсальной функцией будет запрос по сотрудникам плановых начислений.
|
|||
3
егаис
03.06.20
✎
08:06
|
(2) в плановых нет показателя, и территория там точно не учитывается
|
|||
4
егаис
03.06.20
✎
08:08
|
пока думаю так
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель КАК Показатель, ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение, ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ДействуетДо КАК ДействуетДо, ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Организация КАК Организация ИЗ РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&ТекДата, (Сотрудник = &Сотрудник) и (Показатель = &Показатель) И ((ДействуетДо = ДатаВремя(1,1,1,0,0,0)) ИЛИ (ДействуетДо > &ТекДата))) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних еще надо с РС территорий соединить и взять оттуда, если есть запись |
|||
5
Фрэнки
03.06.20
✎
08:10
|
не хочу ломать голову... надоело.
Но вот так, через запросы с клиентского уровня и сразу на обращения в контексте сервера - это теперь не кошерно |
|||
6
егаис
03.06.20
✎
08:11
|
(5) вот и я о том же, задницей чую, должна быть функция
|
|||
7
Фрэнки
03.06.20
✎
08:12
|
И твой запрос, кстати, тебя же опровергает. При построении таблицы с плановыми начислениями - если до самых потрохов доходить, то регистр там этот же
|
|||
8
егаис
03.06.20
✎
08:43
|
Колхоз-подход, но работает
КадровыеДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, "Территория", Дата); РК = 0; РассчитыватьРКПоПоказателям = Истина; Если КадровыеДанныеСотрудников.Количество() > 0 Тогда ТерриторияСотрудника = КадровыеДанныеСотрудников[0].Территория; Если ТерриторияСотрудника = NULL Тогда ИначеЕсли НЕ ТерриторияСотрудника.Пустая() Тогда РК = (ТерриторияСотрудника.РайонныйКоэффициент - 1)*100; РассчитыватьРКПоПоказателям = Ложь; КонецЕсли; КонецЕсли; Если РассчитыватьРКПоПоказателям Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение |ИЗ | РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних( | &ТекДата, | Сотрудник = &Сотрудник | И Показатель = &Показатель | И (ДействуетДо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | ИЛИ ДействуетДо > &ТекДата)) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних"; Запрос.УстановитьПараметр("Сотрудник", Сотрудник); Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.РайонныйКоэффициент); Запрос.УстановитьПараметр("ТекДата", КонецДня(Дата)); РезультатЗапросаВыборка = Запрос.Выполнить().Выбрать(); Если РезультатЗапросаВыборка.Следующий() Тогда РК = (РезультатЗапросаВыборка.Значение - 1)*100; КонецЕсли; КонецЕсли; |
|||
9
Фрэнки
03.06.20
✎
08:46
|
(8) угу. похоже на рабочий код. Но его можно переписать на встроенные процедуры. С тем же результатом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |