Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запросик

Запросик
Я
   sdfqwe
 
24.12.12 - 14:59
8.2 ЗУП
Необходимо получить табличку данных запросом:
        "ВЫБРАТЬ
        |    СостояниеРаботниковОрганизаций.Период,
        |    СостояниеРаботниковОрганизаций.Сотрудник,
        |    СостояниеРаботниковОрганизаций.ПериодЗавершения,
        |    РаботникиОрганизацийСрезПоследних.Период КАК ДатаПриема,
        |    РаботникиОрганизацийСрезПервых.Период КАК ДатаУвольнения........... "
 
Соответственно необходимо для каждой строки в регистре Сведений "СостояниеРаботниковОрганизаций" получить дату увольнения и приема Сотрудника.
Как бы это сделать одним лишь запросом без использования внешних ТаблицЗначений?

Достаточно написать в общем или немного кодинга.
Заранее благодарен.
 
 
   ХочуСказать
 
1 - 24.12.12 - 15:02
это же просто
   Axel2009
 
2 - 24.12.12 - 15:03
(0) так наоборот срезпервых - прием
   DrShad
 
3 - 24.12.12 - 15:03
(0) рановато ты в ЗУП полез
   tdm
 
4 - 24.12.12 - 15:04
там вроде есть поля - СостояниеРаботниковОрганизаций.Сотрудник.ДатаУвольнения без второй таблицы
   ХочуСказать
 
5 - 24.12.12 - 15:04
либо нужно что то вроде 
 
Книга знаний: Срез последних на каждую дату в запросе
либо еще проще
   kosts
 
6 - 24.12.12 - 15:07
СостояниеРаботниковОрганизаций.Сотрудник.ДатаПриема,
СостояниеРаботниковОрганизаций.Сотрудник.ДатаУвольнения,
   sdfqwe
 
7 - 24.12.12 - 15:08
(5) Спасибо. Хороший ответ. Телебот отдыхает.
   samozvanec
 
8 - 24.12.12 - 15:40
(2) = Ложь;
   Axel2009
 
9 - 24.12.12 - 16:23
(7) а зачем на каждую дату тебе это писать? у тебя от каждой даты ниче не поменяется, и дата будет одна и таже. зачем усложнять себе жизнь и думать, что ты научился писать срез последних на каждую дату?
   Axel2009
 
10 - 24.12.12 - 16:23
(8) ну поведай почему ложь, то?
 
 Рекламное место пустует
   sidalexsandr
 
11 - 24.12.12 - 16:56
(0) Чем не устраивает Справочник.Сотрудники. Вот тебе запросик:
   sidalexsandr
 
12 - 24.12.12 - 16:56
ВЫБРАТЬ
    СотрудникиОрганизаций.Наименование,
    СотрудникиОрганизаций.Физлицо,
    СотрудникиОрганизаций.Должность,
    СотрудникиОрганизаций.ДатаНачала,
    СотрудникиОрганизаций.ДатаОкончания
ИЗ       
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
   sidalexsandr
 
13 - 24.12.12 - 16:58
Вот лови, через регистр:
ВЫБРАТЬ
   СостояниеРаботниковОрганизаций.Сотрудник,
   СостояниеРаботниковОрганизаций.Сотрудник.ДатаПриемаНаРаботу,
   СостояниеРаботниковОрганизаций.Сотрудник.ДатаУвольнения
ИЗ
    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
   sidalexsandr
 
14 - 24.12.12 - 16:58
(0) Все просто, когда есть консоль запросов.
   sdfqwe
 
15 - 24.12.12 - 17:22
Выкладываю запросик. Убивайте) авось научите уму разуму.
       "ВЫБРАТЬ
        |    СостояниеРаботниковОрганизаций.Сотрудник,
        |    МАКСИМУМ(РаботникиОрганизаций.Период) КАК ДатаПриема
        |ПОМЕСТИТЬ ПериодыПриема
        |ИЗ
        |    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        |        По СостояниеРаботниковОрганизаций.Сотрудник = РаботникиОрганизаций.Сотрудник И
        |            СостояниеРаботниковОрганизаций.Период >= РаботникиОрганизаций.Период
        |ГДЕ
        |    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
        |СГРУППИРОВАТЬ ПО
        |    СостояниеРаботниковОрганизаций.Сотрудник
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////
 
        |ВЫБРАТЬ
        |    СостояниеРаботниковОрганизаций.Сотрудник,
        |    МИНИМУМ(ЕСТЬNULL(РаботникиОрганизаций.Период, ДАТАВРЕМЯ(1,1,1))) КАК ДатаУвольнения
        |ПОМЕСТИТЬ ПериодыУвольнения
        |ИЗ
        |    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        |        По СостояниеРаботниковОрганизаций.Сотрудник = РаботникиОрганизаций.Сотрудник И
        |            СостояниеРаботниковОрганизаций.Период < РаботникиОрганизаций.Период
        |ГДЕ
        |    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
        |СГРУППИРОВАТЬ ПО
        |    СостояниеРаботниковОрганизаций.Сотрудник
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////
 
        |ВЫБРАТЬ
        |    СостояниеРаботниковОрганизаций.Период,
        |    СостояниеРаботниковОрганизаций.Сотрудник,
        |    СостояниеРаботниковОрганизаций.ПериодЗавершения,
        |    ПериодыПриема.ДатаПриема,
        |    ПериодыУвольнений.ДатаУвольнения
        |ИЗ
        |    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПериодыПриема КАК ПериодыПриема
        |        ПО СостояниеРаботниковОрганизаций.Сотрудник = ПериодыПриема.Сотрудник 
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПериодыУвольнений КАК ПериодыУвольнений
        |        ПО СостояниеРаботниковОрганизаций.Сотрудник = ПериодыУвольнений.Сотрудник
        |ГДЕ
        |    ТИПЗНАЧЕНИЯ(СостояниеРаботниковОрганизаций.Регистратор) = ТИП(Документ.ПереносДанных)
        |    И СостояниеРаботниковОрганизаций.Регистратор.Комментарий ПОДОБНО ""ОТК""";
   sdfqwe
 
16 - 24.12.12 - 17:27
(6), (12), (13) Так просто уже давно нельзя( Хитрости ЗУПа.
   sdfqwe
 
17 - 24.12.12 - 17:35
Пользоваться этим запросом стоит только не для Сотрудников а для ФизЛиц. Тему под снос.
   Axel2009
 
18 - 24.12.12 - 17:50
ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник,
    МИНИМУМ(ВЫБОР
            КОГДА РаботникиОрганизаций.ПричинаИзмененияСостояния В (ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу))
                ТОГДА РаботникиОрганизаций.Период
            ИНАЧЕ NULL
        КОНЕЦ) КАК ДатаПриема,
    МАКСИМУМ(ВЫБОР
            КОГДА РаботникиОрганизаций.ПричинаИзмененияСостояния В (ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))
                ТОГДА РаботникиОрганизаций.Период
            ИНАЧЕ NULL
        КОНЕЦ) КАК ДатаУвольнения
ПОМЕСТИТЬ Периоды
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния В (ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу), ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))

СГРУППИРОВАТЬ ПО
    РаботникиОрганизаций.Сотрудник
;

 ////////////////////////////////////////////////////////////////////////////////
 
ВЫБРАТЬ
    СостояниеРаботниковОрганизаций.Период,
    СостояниеРаботниковОрганизаций.Сотрудник,
    СостояниеРаботниковОрганизаций.ПериодЗавершения,
    Периоды.ДатаПриема,
    Периоды.ДатаУвольнения
ИЗ
    РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ Периоды КАК Периоды
        ПО СостояниеРаботниковОрганизаций.Сотрудник = Периоды.Сотрудник
ГДЕ
    ТИПЗНАЧЕНИЯ(СостояниеРаботниковОрганизаций.Регистратор) = ТИП(Документ.ПереносДанных)
    И СостояниеРаботниковОрганизаций.Регистратор.Комментарий ПОДОБНО "ОТК"

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует