Имя: Пароль:
1C
1С v8
ЗУП 2,5
0 lite777
 
19.12.18
13:45
ЗУП 2,5 нужно вывести список сотрудников которые  проработали меньше месяца ,желательно с датой приема и увольнения.
пример обращения к регистру -

Запрос.Текст =
                "    ВЫБРАТЬ  РаботникиОрганизаций.Сотрудник КАК Сотрудник,
                // |РаботникиОрганизаций.Организация,
                 |РаботникиОрганизаций.ПодразделениеОрганизации как ПодразделениеОрганизации ,
                 |РаботникиОрганизаций.Должность   ,
                 |РаботникиОрганизаций.ПериодЗавершения  

                 |ИЗ
                 |РегистрСведений.РаботникиОрганизаций.СрезПоследних(&д2) КАК РаботникиОрганизаций "
                
                + ?(ВыбПодразд=Справочники.ПодразделенияОрганизаций.ПустаяСсылка(), "    ", " ГДЕ
            |РаботникиОрганизаций.ПодразделениеОрганизации = &ВыбПодразд  И
            |РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)   " )
1 Alexandr_U1982
 
19.12.18
13:57
Как определять, что сотрудник отработал меньше месяца?
Если сотрудник принялся на работу 15.11.2018, а уволился 14.12.2018 - это меньше месяца? А если уволился 15.12.2018?
2 Homer
 
19.12.18
14:00
А зачем через регистр? у сотрудники есть реквизиты. С твоим уровнем подойдет.
3 lite777
 
19.12.18
14:11
да с 15 по 14 пусть будет месяц )
4 lite777
 
19.12.18
14:13
Симсон, а чем тебе мой уровень не нравиться ,ты не ГОМЕР ЛИ СИМСОН
5 Alexandr_U1982
 
19.12.18
14:19
Как вариант:

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТПриемНаРаботу.Сотрудник КАК Сотрудник,
    ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема,
    ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения,
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней
ИЗ
    ВТПриемНаРаботу КАК ВТПриемНаРаботу
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения
        ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник
ГДЕ
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) < 30
6 lite777
 
19.12.18
14:22
Да спасибо ,интересный код!
7 Alexandr_U1982
 
20.12.18
12:38
(6) Вот так вот более правильно:
ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Период КАК ДатаПриема
ПОМЕСТИТЬ ВТПриемНаРаботу
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТПриемНаРаботу.Сотрудник КАК Сотрудник,
    ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема,
    ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения,
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней
ИЗ
    ВТПриемНаРаботу КАК ВТПриемНаРаботу
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения
        ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник
ГДЕ
    ВТУвольнения.ДатаУвольнения < ДОБАВИТЬКДАТЕ(ВТПриемНаРаботу.ДатаПриема, МЕСЯЦ, 1)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс