Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запросик

Запросик
Я
   sdfqwe
 
24.12.12 - 14:59
1С 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
        КОНЕЦ) КАК ДатаУвольнения
ПОМЕСТИТЬ Периоды
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния В (ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу), ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))

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

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

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