8.х ЗУП Помогите составить запрос

Тема в разделе ""1С:Зарплата и управление персоналом ЗУП"", создана пользователем NetWorm, 24 июн 2015.

  1. TopicStarter Overlay
    NetWorm
    Offline

    NetWorm Опытный в 1С

    Регистрация:
    6 авг 2010
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    Суть такая: нужно получить последнюю не временную должность сотрудника.
    Из РС РаботникиОрганизации выбрать на дату среза данные, но исключить документы КадровоеПеремещениеОрг с галкой индексации з/п и исключить временные перемещения (где указана по нему ДатаПо) и ситуации когда должность откуда и куда совпадают в перемещении. У сотрудника как могут так и не могут быть перемещения.

    Начало запроса набросал, но с отборами не соображу как сделать:
    Код:
    ЗапросПоСотруднику.Текст =
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |   Работники.Сотрудник,
        |   Работники.Период КАК ДатаКадровогоСобытия,
        |   ВЫБОР
        |     КОГДА Работники.ПериодЗавершения <= &ДатаСреза
        |         И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        |       ТОГДА Работники.ПодразделениеОрганизацииЗавершения
        |     ИНАЧЕ Работники.ПодразделениеОрганизации
        |   КОНЕЦ КАК ПодразделениеОрганизации,
        |   ВЫБОР
        |     КОГДА Работники.ПериодЗавершения <= &ДатаСреза
        |         И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        |       ТОГДА Работники.ГрафикРаботыЗавершения
        |     ИНАЧЕ Работники.ГрафикРаботы
        |   КОНЕЦ КАК ГрафикРаботы,
        |   ВЫБОР
        |     КОГДА Работники.ПериодЗавершения <= &ДатаСреза
        |         И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        |       ТОГДА Работники.ЗанимаемыхСтавокЗавершения
        |     ИНАЧЕ Работники.ЗанимаемыхСтавок
        |   КОНЕЦ КАК ЗанимаемыхСтавок,
        |   ВЫБОР
        |     КОГДА Работники.ПериодЗавершения <= &ДатаСреза
        |         И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        |       ТОГДА Работники.ДолжностьЗавершения
        |     ИНАЧЕ Работники.Должность
        |   КОНЕЦ КАК Должность,
        |   Должности.Б_ПереводКатегория КАК Категория,
        |   Работники.ПервичныйДокумент КАК Регистратор
        |ИЗ
        |   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, ) КАК Работники
        |   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДолжностиОрганизаций КАК Должности
        |     ПО Работники.Должность = Должности.Ссылка
        |ГДЕ
        |   Работники.Сотрудник = &СотрудникОрг";
    
    1С:Предприятие 8.3 (8.3.6.2041)
    Зарплата и Управление Персоналом, редакция 2.5 (2.5.91.1)
    Последнее редактирование: 24 июн 2015
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну а в чем проблема эти условия прописать в виртуальной таблице
    --- Объединение сообщений, 25 июн 2015 ---
    Что то вроде вот этого
    Код:
    ВЫБРАТЬ
        РаботникиОрганизацийСрезПоследних.Сотрудник,
        РаботникиОрганизацийСрезПоследних.Должность
    ИЗ
        РегистрСведений.РаботникиОрганизаций.СрезПоследних(
                КОНЕЦПЕРИОДА(&датаСреза, ДЕНЬ),
                (НЕ Регистратор.ИндексацияЗаработка
                    ИЛИ Регистратор.ИндексацияЗаработка ЕСТЬ NULL )
                    И ПериодЗавершения = &ПустаяДата
                    И ПодразделениеОрганизации <> ПодразделениеОрганизацииЗавершения) КАК РаботникиОрганизацийСрезПоследних
    NetWorm нравится это.
  3. TopicStarter Overlay
    NetWorm
    Offline

    NetWorm Опытный в 1С

    Регистрация:
    6 авг 2010
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    Спасибо, Draco, основная проблема в том, что я не умею в подобные конструкции. Буду пробовать.

Поделиться этой страницей