Предпоследняя запись из РС Срез последних
Добрый день! ЗУП КОРП 3.1. Отчет на СКД. Необходимо получить актуальную должность из Регистра сведений "КадроваяИсторияСотрудниковСрезПоследних" на дату отчета. И все бы хорошо, если бы не временный перевод.
Например, Сотрудника переводят с 01.04.22 по 01.09.22 с должности "Инженер" на должность "Ведущий инженер".
В РС следующие записи:
Период Событие Должность Действует до
01.07.16 Прием Инженер
01.04.22 Перевод Ведущий инженер 02.09.22
Т.е. актуальной должностью на дату отчета 31.12.2022 должна быть "Инженер". А при текущем запросе выводит "Ведущий инженер". Помогите решить данную проблему! Заранее спасибо!
Текст запроса:
Например, Сотрудника переводят с 01.04.22 по 01.09.22 с должности "Инженер" на должность "Ведущий инженер".
В РС следующие записи:
Период Событие Должность Действует до
01.07.16 Прием Инженер
01.04.22 Перевод Ведущий инженер 02.09.22
Т.е. актуальной должностью на дату отчета 31.12.2022 должна быть "Инженер". А при текущем запросе выводит "Ведущий инженер". Помогите решить данную проблему! Заранее спасибо!
Текст запроса:
ВЫБРАТЬ
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Период КАК Период,
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник КАК Сотрудник,
ВЫБОР
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ИспользуетсяПоОкончании
ТОГДА ИСТИНА
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ДействуетДо > &КонецПериода
И НЕ ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ИспользуетсяПоОкончании
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ КАК Булево,
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
СУММА(ВЫБОР
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ВидЕжегодногоОтпуска.Наименование = "Основной"
ТОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.КоличествоДнейВГод
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоДнейОсн,
СУММА(ВЫБОР
КОГДА НЕ ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ВидЕжегодногоОтпуска.Наименование = "Основной"
ТОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.КоличествоДнейВГод
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоДнейДоп,
КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация,
СУММА(ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.КоличествоДнейВГод) КАК КоличествоДнейВсего,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
ГОД(&КонецПериода) КАК ГрафикГод,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель КАК ПодразделениеРодитель,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Код КАК ПодразделениеКод,
КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК ГоловнаяОрганизация
ПОМЕСТИТЬ ВТ_ПоложенныеВидыЕжегодныхОтпусков
ИЗ
РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(&КонецПериода, ) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода, ) КАК КадроваяИсторияСотрудниковСрезПоследних
ПО ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
СГРУППИРОВАТЬ ПО
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник,
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Период,
ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник.ФизическоеЛицо,
ВЫБОР
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ИспользуетсяПоОкончании
ТОГДА ИСТИНА
КОГДА ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ДействуетДо > &КонецПериода
И НЕ ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ИспользуетсяПоОкончании
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ,
КадроваяИсторияСотрудниковСрезПоследних.Организация,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Родитель,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Код,
КадроваяИсторияСотрудниковСрезПоследних.Должность,
КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Период КАК Период,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Сотрудник КАК Сотрудник,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.КоличествоДнейОсн КАК КоличествоДнейОсн,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.КоличествоДнейДоп КАК КоличествоДнейДоп,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Организация КАК Организация,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.КоличествоДнейВсего КАК КоличествоДнейВсего,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Подразделение КАК Подразделение,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.ГрафикГод КАК ГрафикГод,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.ПодразделениеРодитель КАК ПодразделениеРодитель,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Должность КАК Должность,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.ФизическоеЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ ВТСотрудники
ИЗ
ВТ_ПоложенныеВидыЕжегодныхОтпусков КАК ВТ_ПоложенныеВидыЕжегодныхОтпусков
ГДЕ
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Булево
{ГДЕ
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Организация.*,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Сотрудник.* КАК Сотрудник,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Сотрудник.Код КАК ТабельныйНомер,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.Сотрудник.ГоловнаяОрганизация.*,
ВТ_ПоложенныеВидыЕжегодныхОтпусков.ФизическоеЛицо.*}
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ДАТАВРЕМЯ(1, 1, 1) КАК Период,
ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
"" КАК ТабельныйНомер,
ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо,
ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация,
ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
ДАТАВРЕМЯ(1, 1, 1) КАК ДатаУвольнения,
ВЫРАЗИТЬ("" КАК СТРОКА) КАК ФИОПолные
ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
ИЗ
ВТСотрудники КАК ВТСотрудники
ГДЕ
"ТолькоРазрешенные" = ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Сотрудники.Сотрудник.Код КАК ТабельныйНомер,
Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
Сотрудники.Подразделение КАК Подразделение,
Сотрудники.Должность КАК Должность,
ВЫБОР
КОГДА Представления_КадровыеДанныеСотрудников.ДатаУвольнения <= &КонецПериода
ТОГДА Представления_КадровыеДанныеСотрудников.ДатаУвольнения
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ КАК ДатаУвольнения,
Представления_КадровыеДанныеСотрудников.ФИОПолные КАК ФИОПолные,
Сотрудники.Сотрудник КАК Сотрудник,
Сотрудники.ГрафикГод КАК ГодГрафика,
Сотрудники.КоличествоДнейОсн КАК КоличествоДнейОсн,
Сотрудники.КоличествоДнейДоп КАК КоличествоДнейДоп,
Сотрудники.Организация КАК Организация,
Сотрудники.КоличествоДнейВсего КАК КоличествоДнейВсего,
Сотрудники.ПодразделениеРодитель КАК ПодразделениеДляШапки
{ВЫБРАТЬ
Организация.*,
ТабельныйНомер,
ФизическоеЛицо.*,
ГоловнаяОрганизация.*,
Подразделение.*,
ПодразделениеДляШапки.*,
Должность.*,
ДатаУвольнения,
ФИОПолные,
Сотрудник.*,
ГодГрафика,
КоличествоДнейОсн,
КоличествоДнейДоп,
КоличествоДнейВсего}
ИЗ
ВТСотрудники КАК Сотрудники
ЛЕВОЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
ПО Сотрудники.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник
И Сотрудники.Период = Представления_КадровыеДанныеСотрудников.Период
{ГДЕ
Сотрудники.Организация.*,
Сотрудники.Сотрудник.*,
Представления_КадровыеДанныеСотрудников.ТабельныйНомер,
Представления_КадровыеДанныеСотрудников.ФизическоеЛицо.*,
Представления_КадровыеДанныеСотрудников.ГоловнаяОрганизация.*,
Представления_КадровыеДанныеСотрудников.Подразделение.*,
Представления_КадровыеДанныеСотрудников.Должность.*,
Представления_КадровыеДанныеСотрудников.ДатаУвольнения,
Представления_КадровыеДанныеСотрудников.ФИОПолные}
ПоказатьПо теме из базы знаний
Найденные решения
(1)В первом приближении:
Проблемы могут быть в запросе, формирующем Представления_КадровыеДанныеСотрудников.
Сам запрос формируется в дебрях общих модулей, необходимо искать, начиная с "ПриКомпоновкеРезультата" в модуле отчета.
...........
ПОМЕСТИТЬ ВТ_ПоложенныеВидыЕжегодныхОтпусков
ИЗ
РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(&КонецПериода, ) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода, ДействуетДо >= &КонецПериода) КАК КадроваяИсторияСотрудниковСрезПоследних
ПО ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
.................
Проблемы могут быть в запросе, формирующем Представления_КадровыеДанныеСотрудников.
Сам запрос формируется в дебрях общих модулей, необходимо искать, начиная с "ПриКомпоновкеРезультата" в модуле отчета.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)В первом приближении:
Проблемы могут быть в запросе, формирующем Представления_КадровыеДанныеСотрудников.
Сам запрос формируется в дебрях общих модулей, необходимо искать, начиная с "ПриКомпоновкеРезультата" в модуле отчета.
...........
ПОМЕСТИТЬ ВТ_ПоложенныеВидыЕжегодныхОтпусков
ИЗ
РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(&КонецПериода, ) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода, ДействуетДо >= &КонецПериода) КАК КадроваяИсторияСотрудниковСрезПоследних
ПО ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
.................
Проблемы могут быть в запросе, формирующем Представления_КадровыеДанныеСотрудников.
Сам запрос формируется в дебрях общих модулей, необходимо искать, начиная с "ПриКомпоновкеРезультата" в модуле отчета.
(3) Спасибо, помогло! Чучь-чуть только дополнила условие.
ПОМЕСТИТЬ ВТ_ПоложенныеВидыЕжегодныхОтпусков
ИЗ
РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(&КонецПериода, ) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(
&КонецПериода,
ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
ИЛИ ДействуетДо >= &КонецПериода) КАК КадроваяИсторияСотрудниковСрезПоследних
ПО ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот