ЗУП, 2.5 (2.5.123.1)
Мне в результате запроса нужно проверить может ли сотрудник быть отправлен в командировку.
В запросе нужно проверить на наличие у него ,в период командировки, больничного. Сложность в том что больничный может быть еще не закрыт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| КомандировкиОрганизацийРаботникиОрганизации.НомерСтроки,
| КомандировкиОрганизацийРаботникиОрганизации.Сотрудник,
| КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала,
| КомандировкиОрганизацийРаботникиОрганизации.ДатаОкончания
|ПОМЕСТИТЬ ВТПериодыДляПроверки
|ИЗ
| Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации
|ГДЕ
| КомандировкиОрганизацийРаботникиОрганизации.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СостояниеРаботниковОрганизаций.Регистратор КАК ПервичныйДокумент,
| ВТПериодыДляПроверки.НомерСтроки КАК НомерСтроки,
| СостояниеРаботниковОрганизаций.Сотрудник,
| СостояниеРаботниковОрганизаций.Период КАК ПериодНачало,
| ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ПериодЗавершения, ДЕНЬ, -1) КАК ПериодКонец,
| ВТПериодыДляПроверки.ДатаОкончания
|ИЗ
| РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПериодыДляПроверки КАК ВТПериодыДляПроверки
| ПО СостояниеРаботниковОрганизаций.Сотрудник = ВТПериодыДляПроверки.Сотрудник
| И (ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.ПериодЗавершения, ДЕНЬ, -1) >= ВТПериодыДляПроверки.ДатаНачала)
| И (СостояниеРаботниковОрганизаций.Период <= ВТПериодыДляПроверки.ДатаОкончания)
| И (СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ПособиеПриДолечивании))
| И (СостояниеРаботниковОрганизаций.Регистратор <> &Ссылка)
|
|СГРУППИРОВАТЬ ПО
| ВТПериодыДляПроверки.НомерСтроки,
| СостояниеРаботниковОрганизаций.Регистратор,
| СостояниеРаботниковОрганизаций.Сотрудник,
| СостояниеРаботниковОрганизаций.Период,
| СостояниеРаботниковОрганизаций.ПериодЗавершения,
| ВТПериодыДляПроверки.ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| ПервичныйДокумент
|ИТОГИ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
! | http://pro1c.org.ua/index.php?act=announce&id=2: 4,5 |
В чем причина? Я все еще никак не разберусь с этим запросом.
ПроверкаБольничных= Новый Запрос;
ПроверкаБольничных.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц;
ПроверкаБольничных.Текст=
"ВЫБРАТЬ
| ВТПериодыДляПроверки.Сотрудник,
| ВТПериодыДляПроверки.ДатаНачала,
| ВТПериодыДляПроверки.ДатаОкончания,
| ВТПериодыДляПроверки.НомерСтроки,
| СостояниеРаботниковОрганизаций.Регистратор КАК ПервичныйДокумент,
| СостояниеРаботниковОрганизаций.Период КАК ПериодНачало
|ПОМЕСТИТЬ Заболевшие
|ИЗ
| ВТПериодыДляПроверки КАК ВТПериодыДляПроверки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
| ПО ВТПериодыДляПроверки.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
|ГДЕ
| СостояниеРаботниковОрганизаций.Регистратор ССЫЛКА Документ.НеявкиИБолезниОрганизаций
| И НЕ СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
| И СостояниеРаботниковОрганизаций.Период <= ВТПериодыДляПроверки.ДатаОкончания
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Больные.ПервичныйДокумент КАК ПервичныйДокумент,
| Больные.НомерСтроки КАК НомерСтроки,
| Больные.Сотрудник,
| Больные.ПериодНачало,
| Больные.ДатаОкончания,
| СостояниеРаботниковОрганизаций.Период КАК ПериодКонец,
| Больные.ДатаНачала
|ИЗ
| Заболевшие КАК Больные
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
| ПО Больные.Сотрудник = СостояниеРаботниковОрганизаций.Сотрудник
| И Больные.ПервичныйДокумент = СостояниеРаботниковОрганизаций.Регистратор
|ГДЕ
| СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
| И СостояниеРаботниковОрганизаций.Период > Больные.ПериодНачало
|
|СГРУППИРОВАТЬ ПО
| СостояниеРаботниковОрганизаций.Период,
| Больные.ПериодНачало,
| Больные.Сотрудник,
| Больные.ПервичныйДокумент,
| Больные.ДатаОкончания,
| Больные.НомерСтроки,
| Больные.ДатаНачала
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| ПервичныйДокумент
|ИТОГИ ПО
| НомерСтроки
|АВТОУПОРЯДОЧИВАНИЕ";
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua