Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как проверить сотрудника на открытый больничный          
martynovalena Подменю пользователя
сообщение 23.10.17, 9:48
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 0 раз
Рейтинг: 0

ЗУП, 2.5 (2.5.123.1)

Мне в результате запроса нужно проверить может ли сотрудник быть отправлен в командировку.

В запросе нужно проверить на наличие у него ,в период командировки, больничного. Сложность в том что больничный может быть еще не закрыт

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



 ! 

Правила: 4,5
 


Сообщение отредактировал logist - 23.10.17, 10:54

martynovalena Подменю пользователя
сообщение 24.10.17, 14:30
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 0 раз
Рейтинг: 0

В чем причина? Я все еще никак не разберусь с этим запросом.

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

Ошибка :Временная Таблица "Заболевшие " уже существует

Сообщение отредактировал Vofka - 25.10.17, 7:29

logist Подменю пользователя
сообщение 24.10.17, 14:54
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(martynovalena @ 24.10.17, 15:30) *
Ошибка :Временная Таблица "Заболевшие " уже существует

Эта временная таблица уже помещена в предыдущем запросе:
Цитата(martynovalena @ 24.10.17, 15:30) *
ПроверкаБольничных.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц;



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 17:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!