Имя: Пароль:
1C
 
помогите с грамотным запросом о кадровом переводе сотрудника
0 aser_1488
 
28.01.20
10:02
Друзья, подскажите, пожалуйста, как решить данную задачу с наименьшей нагрузкой на систему.
есть такой запрос, который выдает информацию о кадровом переводе сотрудника, от меня требуют чтоб в результате была информация не только о подразделении в которое перешел сотрудник, но и подразделении ИЗ которого он перешел. как это осуществить?


Функция ТекстЗапросаКадровыйПеревод()
    Возврат "ВЫБРАТЬ
            |    КадровыйПеревод.Сотрудник.Код КАК СотрудникКод,
            |    КадровыйПеревод.Номер КАК Номер,
            |    КадровыйПеревод.Дата КАК Дата,
            |    КадровыйПеревод.Сотрудник КАК Сотрудник,
            |    КадровыйПеревод.ДатаНачала КАК ДатаДвижения,
            |    ВЫБОР
            |        КОГДА КадроваяИсторияСотрудников.ДолжностьПоШтатномуРасписанию ЕСТЬ NULL
            |            ТОГДА КадроваяИсторияСотрудниковПенсионеры.ДолжностьПоШтатномуРасписанию
            |        ИНАЧЕ КадроваяИсторияСотрудников.ДолжностьПоШтатномуРасписанию
            |    КОНЕЦ КАК ТекущаяДолжность,
            |    ВЫБОР
            |        КОГДА КадроваяИсторияСотрудников.Подразделение ЕСТЬ NULL
            |            ТОГДА КадроваяИсторияСотрудниковПенсионеры.Подразделение
            |        ИНАЧЕ КадроваяИсторияСотрудников.Подразделение
            |    КОНЕЦ КАК ТекущееПодразделение
            |ИЗ
            |    Документ.КадровыйПеревод КАК КадровыйПеревод
            |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
            |        ПО (КадроваяИсторияСотрудников.Регистратор = КадровыйПеревод.Ссылка)
            |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.БИТ_КадроваяИсторияСотрудниковПенсионеры КАК КадроваяИсторияСотрудниковПенсионеры
            |        ПО (КадроваяИсторияСотрудниковПенсионеры.Регистратор = КадровыйПеревод.Ссылка)
            |ГДЕ
            |    КадровыйПеревод.Проведен = ИСТИНА
            |    И НАЧАЛОПЕРИОДА(КадровыйПеревод.ДатаНачала, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)
            |
            |ОБЪЕДИНИТЬ ВСЕ
            |
            |ВЫБРАТЬ РАЗЛИЧНЫЕ
            |    КадровыйПереводСпискомСотрудники.Сотрудник.Код,
            |    КадровыйПереводСписком.Номер,
            |    КадровыйПереводСписком.Дата,
            |    КадровыйПереводСпискомСотрудники.Сотрудник,
            |    КадровыйПереводСпискомСотрудники.ДатаНачала,
            |    КадроваяИсторияСотрудников.ДолжностьПоШтатномуРасписанию,
            |    КадроваяИсторияСотрудников.Подразделение
            |ИЗ
            |    Документ.КадровыйПереводСписком.Сотрудники КАК КадровыйПереводСпискомСотрудники
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПереводСписком КАК КадровыйПереводСписком
            |        ПО КадровыйПереводСпискомСотрудники.Ссылка = КадровыйПереводСписком.Ссылка
            |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
            |        ПО (КадроваяИсторияСотрудников.Регистратор = КадровыйПереводСписком.Ссылка)
            |            И (КадроваяИсторияСотрудников.Сотрудник = КадровыйПереводСпискомСотрудники.Сотрудник)
            |ГДЕ
            |    КадровыйПереводСписком.Проведен = ИСТИНА
            |    И НАЧАЛОПЕРИОДА(КадровыйПереводСписком.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)";
КонецФункции
1 dka80
 
28.01.20
10:05
Левое соединение в регистром кадровая история (сейчас не рекомендуется использовать этот регистр) или кадровая история интервальный по дате перевода > период регистра, далее максимум по период регистра, далее все это снова соединяеш с регистром кадровая история или кадровая история интервальный по максимум(период)=период регистра и сотрудник=сотрудник.
Но я бы воспользовался программным интерфейсом, получил данные на дату перевода, а затем данные на дату, предшествующую переводу.
2 aser_1488
 
28.01.20
16:31
(1) а почему не рекомендуется использовать этот регистр?
3 piter3
 
28.01.20
16:32
(2) Все меняется быстро и после обновления ты можешь получит тыкву
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.