|
УПП. При расчете ЗП подставляется старый оклад/тариф | ☑ | ||
---|---|---|---|---|
0
егаис
05.10.23
✎
20:26
|
Доброго дня.
Релиз 1.3.212.2 В начале года был перенос данных в базу УПП. Данные занесены через документ переноса данных. Регистры: периоды работы работников по основному месту работы, плановые начисления, кадровая история по юрикам. В сентябре делается документ кадрового перемещения, где увеличивается оклад сотруднику. При расчете ЗП показатель берется до изменения окладов. В регистре плановых начислений новый оклад имеется. При анализе ошибки было выявлено, что подзапрос ниже возвращает 2 строки с показателем ОКЛАД, а не по срезу! |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ПлановыеНачисленияРаботников.Период, | ПлановыеНачисленияРаботников.Сотрудник КАК Сотрудник, | ПлановыеНачисленияРаботников.Сотрудник.Физлицо КАК ФизЛицо, .. далее описаны разные показатели |ПОМЕСТИТЬ ЗаписиПлановыхНачислений |ИЗ | РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних( | &парамНачало, | Организация = &Организация | И Сотрудник В | (ВЫБРАТЬ | СписокРаботников.Сотрудник | ИЗ | ВТСписокРаботников КАК СписокРаботников)) КАК ПлановыеНачисленияРаботников | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников | ПО (СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник) | И (ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ДействиеЗавершения <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить) | ИНАЧЕ ПлановыеНачисленияРаботников.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить) | КОНЕЦ) Не пойму, как срез может вернуть 2 записи проверял значения по коду, типу, на пустое значение, все идентично. Там ниже в запросе объекдинения (всего 3), но добавил для проверки в каждый запрос поля от 1 до 3 Дубль тянется именно с первого запроса, что в теме. Хелп! |
|||
1
егаис
05.10.23
✎
20:29
|
записи отличаются только полями "период" и "действие"
01.01.23 начать Оклад по часам 20 000 01.09.23 изменить Оклад по часам 25 000 все остальное сходится (( |
|||
2
егаис
05.10.23
✎
20:30
|
при расчете ЗП показатель ставить 20 000
Не знаю, можно конечно костыль прикрутить и отсортировать по периоду убывания, видимо берет первую запись, но хотелось бы разобраться |
|||
3
егаис
05.10.23
✎
20:31
|
в ВТСписокРаботников он один, запрос крутил по всякому
|
|||
4
Гена
гуру
06.10.23
✎
06:23
|
У меня только 200.2
Проверил - всё нормально. Правда, у меня Бендер принят приказом. Попробуйте всё-таки завести своему плохишу приказ о приёме как положено. |
|||
5
DirectorGora
06.10.23
✎
07:52
|
(0) УПП наверное как 7.7 будет жить еще 20 лет))
|
|||
6
DirectorGora
06.10.23
✎
07:54
|
(0) в объединениях Вы используете "ОБЪЕДИНИТЬ" или "ОБЪЕДИНИТЬ ВСЕ"?
|
|||
7
егаис
06.10.23
✎
07:58
|
(4) было слияние компаний, движения через регистры
(6) ОБЪЕДИНИТЬ Вот полный подзапрос |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ""1"" КАК ПроверкаОткудаДанные, | ПлановыеНачисленияРаботников.Период, | ПлановыеНачисленияРаботников.Сотрудник КАК Сотрудник, | ПлановыеНачисленияРаботников.Сотрудник.Физлицо КАК ФизЛицо, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ДействиеЗавершения | ИНАЧЕ ПлановыеНачисленияРаботников.Действие | КОНЕЦ КАК Действие, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ВидРасчетаЗавершения | ИНАЧЕ ПлановыеНачисленияРаботников.ВидРасчета | КОНЕЦ КАК ВидРасчета, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель1Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель1 | КОНЕЦ КАК Показатель1, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель2Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель2 | КОНЕЦ КАК Показатель2, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель3Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель3 | КОНЕЦ КАК Показатель3, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель4Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель4 | КОНЕЦ КАК Показатель4, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель5Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель5 | КОНЕЦ КАК Показатель5, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Показатель6Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Показатель6 | КОНЕЦ КАК Показатель6, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта1Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта1 | КОНЕЦ КАК Валюта1, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта2Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта2 | КОНЕЦ КАК Валюта2, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта3Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта3 | КОНЕЦ КАК Валюта3, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта4Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта4 | КОНЕЦ КАК Валюта4, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта5Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта5 | КОНЕЦ КАК Валюта5, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.Валюта6Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.Валюта6 | КОНЕЦ КАК Валюта6, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд1Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд1 | КОНЕЦ КАК ТарифныйРазряд1, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд2Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд2 | КОНЕЦ КАК ТарифныйРазряд2, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд3Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд3 | КОНЕЦ КАК ТарифныйРазряд3, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд4Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд4 | КОНЕЦ КАК ТарифныйРазряд4, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд5Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд5 | КОНЕЦ КАК ТарифныйРазряд5, | ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд6Завершения | ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд6 | КОНЕЦ КАК ТарифныйРазряд6 |ПОМЕСТИТЬ ЗаписиПлановыхНачислений |ИЗ | РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних( | &парамНачало, | Организация = &Организация | И Сотрудник В | (ВЫБРАТЬ | СписокРаботников.Сотрудник | ИЗ | ВТСписокРаботников КАК СписокРаботников)) КАК ПлановыеНачисленияРаботников | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников | ПО (СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник) | И (ВЫБОР | КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало | ТОГДА ПлановыеНачисленияРаботников.ДействиеЗавершения <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить) | ИНАЧЕ ПлановыеНачисленияРаботников.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить) | КОНЕЦ) | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ""2"", | ПлановыеНачисленияРаботников.Период, | ПлановыеНачисленияРаботников.Сотрудник, | ПлановыеНачисленияРаботников.Сотрудник.Физлицо, | ПлановыеНачисленияРаботников.Действие, | ПлановыеНачисленияРаботников.ВидРасчета, | ПлановыеНачисленияРаботников.Показатель1, | ПлановыеНачисленияРаботников.Показатель2, | ПлановыеНачисленияРаботников.Показатель3, | ПлановыеНачисленияРаботников.Показатель4, | ПлановыеНачисленияРаботников.Показатель5, | ПлановыеНачисленияРаботников.Показатель6, | ПлановыеНачисленияРаботников.Валюта1, | ПлановыеНачисленияРаботников.Валюта2, | ПлановыеНачисленияРаботников.Валюта3, | ПлановыеНачисленияРаботников.Валюта4, | ПлановыеНачисленияРаботников.Валюта5, | ПлановыеНачисленияРаботников.Валюта6, | ПлановыеНачисленияРаботников.ТарифныйРазряд1, | ПлановыеНачисленияРаботников.ТарифныйРазряд2, | ПлановыеНачисленияРаботников.ТарифныйРазряд3, | ПлановыеНачисленияРаботников.ТарифныйРазряд4, | ПлановыеНачисленияРаботников.ТарифныйРазряд5, | ПлановыеНачисленияРаботников.ТарифныйРазряд6 |ИЗ | РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботников | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников | ПО (СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник) | И (ПлановыеНачисленияРаботников.Организация = &Организация) | И (ПлановыеНачисленияРаботников.Период > &парамНачало) | И (ПлановыеНачисленияРаботников.Период <= &парамКонец) | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ""3"", | ПлановыеНачисленияРаботников.ПериодЗавершения, | ПлановыеНачисленияРаботников.Сотрудник, | ПлановыеНачисленияРаботников.Сотрудник.Физлицо, | ПлановыеНачисленияРаботников.ДействиеЗавершения, | ПлановыеНачисленияРаботников.ВидРасчетаЗавершения, | ПлановыеНачисленияРаботников.Показатель1Завершения, | ПлановыеНачисленияРаботников.Показатель2Завершения, | ПлановыеНачисленияРаботников.Показатель3Завершения, | ПлановыеНачисленияРаботников.Показатель4Завершения, | ПлановыеНачисленияРаботников.Показатель5Завершения, | ПлановыеНачисленияРаботников.Показатель6Завершения, | ПлановыеНачисленияРаботников.Валюта1Завершения, | ПлановыеНачисленияРаботников.Валюта2Завершения, | ПлановыеНачисленияРаботников.Валюта3Завершения, | ПлановыеНачисленияРаботников.Валюта4Завершения, | ПлановыеНачисленияРаботников.Валюта5Завершения, | ПлановыеНачисленияРаботников.Валюта6Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд1Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд2Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд3Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд4Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд5Завершения, | ПлановыеНачисленияРаботников.ТарифныйРазряд6Завершения |ИЗ | РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботников | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников | ПО (СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ВременныеПлановыеНачисленияРаботников | ПО ПлановыеНачисленияРаботников.Организация = ВременныеПлановыеНачисленияРаботников.Организация | И ПлановыеНачисленияРаботников.Сотрудник = ВременныеПлановыеНачисленияРаботников.Сотрудник | И ПлановыеНачисленияРаботников.ВидРасчетаИзмерение = ВременныеПлановыеНачисленияРаботников.ВидРасчетаИзмерение | И ПлановыеНачисленияРаботников.Период < ВременныеПлановыеНачисленияРаботников.Период | И ПлановыеНачисленияРаботников.ПериодЗавершения >= ВременныеПлановыеНачисленияРаботников.Период |ГДЕ | ПлановыеНачисленияРаботников.Организация = &Организация | И ПлановыеНачисленияРаботников.ПериодЗавершения >= &парамНачало | И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамКонец | И ВременныеПлановыеНачисленияРаботников.Сотрудник ЕСТЬ NULL | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | ВидРасчета, | ТарифныйРазряд1, | ТарифныйРазряд2, | ТарифныйРазряд3, | ТарифныйРазряд4, | ТарифныйРазряд5, | ТарифныйРазряд6 ПроверкаОткудаДанные во всех строках "1" |
|||
8
DirectorGora
06.10.23
✎
08:11
|
(7) Попробуйте все показатели в первом запросе сделать через ВЫРАЗИТЬ.
|
|||
9
егаис
06.10.23
✎
08:11
|
хм
для примера ввел по одному сотруднику документ "Ввод сведений о плановых начислениях", убрав его в переносе. Все заработало как надо. При этом записи в регистре плановых начислений идентичны тем, что были в переносе. Но есть нюанс, стал заполнен реквизит (не измерение, и не рерсус) "Первичный документ". Но не факт что в этом причина. В общем направление понятно, всех перекину в документ. |
|||
10
егаис
06.10.23
✎
08:12
|
(8) да, возможно и в типизации проблема, но блин ,срез, Карл!. Срез возвращает 2 записи!
Спасибо за участие, перенесу всех через документ |
|||
11
DirectorGora
06.10.23
✎
08:13
|
(8) Причет ВЫРАЗИТЬ надо сделать для всех итоговых показателей, а не внутренне-промежуточных
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |