Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите сделать правильный запрос
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Общий раздел > Корзина
martynovalena
ЗУП Зарплата и Управление Персоналом, редакция 2.5 (2.5.123.1) 1С:Предприятие 8.3 (8.3.10.2299)

Доработать ЗУП: при оформлении приказа о командировке сотрудника требуется проверка - не отсутствует ли он на работе про причинам отпуска, больничного и т.д.

Я только учусь работать с запросами

ВЫБРАТЬ РАЗЛИЧНЫЕ
       |    КомандировкиОрганизацийРаботникиОрганизации.Сотрудник,
       |    КомандировкиОрганизацийРаботникиОрганизации.НомерСтроки,
       |    КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала,
       |    КомандировкиОрганизацийРаботникиОрганизации.ДатаОкончания
       |ПОМЕСТИТЬ ВТПериодКПроверке
       |ИЗ
       |    Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации
       |ГДЕ
       |    КомандировкиОрганизацийРаботникиОрганизации.Ссылка = &Ссылка
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ПериодЗавершения, ДЕНЬ, -1) КАК ПериодКонец,
       |    ВТПериодКПроверке.НомерСтроки КАК НомерСтроки,
       |    СостояниеРаботниковОрганизаций.Регистратор,
       |    СостояниеРаботниковОрганизаций.Сотрудник,
       |    СостояниеРаботниковОрганизаций.Период,
       |    СостояниеРаботниковОрганизаций.ПериодЗавершения
       |ПОМЕСТИТЬ ДругиеПричины
       |ИЗ
       |    ВТПериодКПроверке КАК ВТПериодКПроверке
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
       |        ПО ВТПериодКПроверке.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
       |            И (ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ПериодЗавершения, ДЕНЬ, -1) >= ВТПериодКПроверке.ДатаНачала)
       |            И (СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ПособиеПриДолечивании))
       |            И ВТПериодКПроверке.ДатаОкончания >= СостояниеРаботниковОрганизаций.Период
       |            И (СостояниеРаботниковОрганизаций.Регистратор <> &Ссылка)
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ ПЕРВЫЕ 1
       |    СостояниеРаботниковОрганизаций.Сотрудник,
       |    СостояниеРаботниковОрганизаций.Регистратор,
       |    СостояниеРаботниковОрганизаций.Состояние,
       |    СостояниеРаботниковОрганизаций.Период КАК Период
       |ПОМЕСТИТЬ Заболевшие
       |ИЗ
       |    ВТПериодКПроверке КАК ВТПериодКПроверке
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
       |        ПО ВТПериодКПроверке.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
       |            И ВТПериодКПроверке.ДатаОкончания >= СостояниеРаботниковОрганизаций.Период
       |ГДЕ
       |    СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Заболевание)
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    НеявкиИБолезниОрганизацийРаботникиОрганизации.Сотрудник,
       |    Заболевшие.Период КАК НачалоБол,
       |    ВЫБОР
       |        КОГДА НеявкиИБолезниОрганизацийРаботникиОрганизации.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
       |                    И НеявкиИБолезниОрганизацийРаботникиОрганизации.ДатаНачала <= ВТПериодКПроверке.ДатаОкончания
       |                ИЛИ НеявкиИБолезниОрганизацийРаботникиОрганизации.ПричинаОтсутствия = NULL
       |            ТОГДА НеявкиИБолезниОрганизацийРаботникиОрганизации.ДатаНачала
       |    КОНЕЦ КАК ДатаНачалаРаботы,
       |    НеявкиИБолезниОрганизацийРаботникиОрганизации.Ссылка КАК РегистраторБол
       |ПОМЕСТИТЬ Больные
       |ИЗ
       |    ВТПериодКПроверке КАК ВТПериодКПроверке
       |        ЛЕВОЕ СОЕДИНЕНИЕ Заболевшие КАК Заболевшие
       |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.НеявкиИБолезниОрганизаций.РаботникиОрганизации КАК НеявкиИБолезниОрганизацийРаботникиОрганизации
       |            ПО Заболевшие.Регистратор = НеявкиИБолезниОрганизацийРаботникиОрганизации.Ссылка
       |        ПО ВТПериодКПроверке.Сотрудник = Заболевшие.Сотрудник
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ РАЗЛИЧНЫЕ
       |    ВТПериодКПроверке.НомерСтроки КАК НомерСтроки,
       |    ВТПериодКПроверке.Сотрудник,
       |    ВТПериодКПроверке.ДатаНачала,
       |    ВТПериодКПроверке.ДатаОкончания,
       |    Больные.НачалоБол,
       |    Больные.ДатаНачалаРаботы,
       |    Больные.РегистраторБол,
       |    ДругиеПричины.Период,
       |    ДругиеПричины.ПериодКонец,
       |    ДругиеПричины.Регистратор
      |ИЗ
       |    ВТПериодКПроверке КАК ВТПериодКПроверке
       |        ЛЕВОЕ СОЕДИНЕНИЕ Больные КАК Больные
       |        ПО ВТПериодКПроверке.Сотрудник = Больные.Сотрудник
       |        ЛЕВОЕ СОЕДИНЕНИЕ ДругиеПричины КАК ДругиеПричины
       |        ПО ВТПериодКПроверке.Сотрудник = ДругиеПричины.Сотрудник
       |
       |СГРУППИРОВАТЬ ПО
       |    ВТПериодКПроверке.НомерСтроки,
       |    ВТПериодКПроверке.Сотрудник,
       |    ВТПериодКПроверке.ДатаНачала,
       |    ВТПериодКПроверке.ДатаОкончания,
       |    Больные.НачалоБол,
       |    Больные.ДатаНачалаРаботы,
       |    Больные.РегистраторБол,
       |    ДругиеПричины.Период,
       |    ДругиеПричины.ПериодКонец,
       |    ДругиеПричины.Регистратор"
logist
В предыдущей теме стало скучно?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.