Не с первого раза срабатывает сообщение о пересечении отпусков (ЗУП 2.5)
Коллеги, привет!
Документ "Отпуска организаций".
При первичном проведении документа не срабатывает сообщение о пересечении отпусков, если оно имеется, но при повторном, оно отрабатывает.
Возможно у вас будут советы или рекомендации в рамках данной темы. Спасибо!
Прилагаю запрос, который находится в модуле объекта документа:
Документ "Отпуска организаций".
При первичном проведении документа не срабатывает сообщение о пересечении отпусков, если оно имеется, но при повторном, оно отрабатывает.
Возможно у вас будут советы или рекомендации в рамках данной темы. Спасибо!
Прилагаю запрос, который находится в модуле объекта документа:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТЧРаботникиОрганизации.НомерСтроки КАК НомерСтроки,
ТЧРаботникиОрганизации.Сотрудник,
ТЧРаботникиОрганизации.Сотрудник.Наименование,
ТЧРаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо,
ТЧРаботникиОрганизации.ДатаНачала,
ТЧРаботникиОрганизации.ДатаОкончания,
ТЧРаботникиОрганизации.ДатаНачалаДоп,
ТЧРаботникиОрганизации.НапомнитьПоЗавершении,
ТЧРаботникиОрганизации.ОсвобождатьСтавку,
ТЧРаботникиОрганизации.ВидДополнительногоОтпуска,
ТЧРаботникиОрганизации.ПричинаОтсутствия,
ВЫБОР
КОГДА ДанныеПоРаботникуДоНазначения.ПериодЗавершения <= ТЧРаботникиОрганизации.ДатаНачала
И ДанныеПоРаботникуДоНазначения.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ДанныеПоРаботникуДоНазначения.ПодразделениеОрганизацииЗавершения
ИНАЧЕ ДанныеПоРаботникуДоНазначения.ПодразделениеОрганизации
КОНЕЦ КАК ПодразделениеОрганизации,
ВЫБОР
КОГДА ДанныеПоРаботникуДоНазначения.ПериодЗавершения <= ТЧРаботникиОрганизации.ДатаНачала
И ДанныеПоРаботникуДоНазначения.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ДанныеПоРаботникуДоНазначения.ДолжностьЗавершения
ИНАЧЕ ДанныеПоРаботникуДоНазначения.Должность
КОНЕЦ КАК Должность,
ВЫБОР
КОГДА ДанныеПоРаботникуДоНазначения.ПериодЗавершения <= ТЧРаботникиОрганизации.ДатаНачала
И ДанныеПоРаботникуДоНазначения.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ДанныеПоРаботникуДоНазначения.ЗанимаемыхСтавокЗавершения
ИНАЧЕ ДанныеПоРаботникуДоНазначения.ЗанимаемыхСтавок
КОНЕЦ КАК ЗанимаемыхСтавок,
ПересекающиесяСтроки.КонфликтнаяСтрокаНомер,
ИмеющиесяСостояния.Состояние КАК КонфликтноеСостояние,
ИмеющиесяСостояния.Регистратор КАК КонфликтныйДокумент,
ВЫБОР
КОГДА ТЧРаботникиОрганизации.Сотрудник.Организация = &ГоловнаяОрганизация
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ КАК ОшибкаНеСоответствиеСотрудникаИОрганизации,
ТЧРаботникиОрганизации.бит_Административный,
ТЧРаботникиОрганизации.РабочийГодС
ИЗ
Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ТЧРаботникиОрганизации
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ТЧРаботникиОрганизации.НомерСтроки КАК НомерСтроки,
МАКСИМУМ(Работники.Период) КАК Период
ИЗ
Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ТЧРаботникиОрганизации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Работники
ПО (Работники.Период <= ТЧРаботникиОрганизации.ДатаНачала)
И ТЧРаботникиОрганизации.Сотрудник = Работники.Сотрудник
ГДЕ
ТЧРаботникиОрганизации.Ссылка = &ДокументСсылка
И НЕ ТЧРаботникиОрганизации.Сторно
СГРУППИРОВАТЬ ПО
ТЧРаботникиОрганизации.НомерСтроки) КАК ДатыПоследнихДвиженийРаботников
ПО ТЧРаботникиОрганизации.НомерСтроки = ДатыПоследнихДвиженийРаботников.НомерСтроки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ДанныеПоРаботникуДоНазначения
ПО (ДанныеПоРаботникуДоНазначения.Период = ДатыПоследнихДвиженийРаботников.Период)
И ТЧРаботникиОрганизации.Сотрудник = ДанныеПоРаботникуДоНазначения.Сотрудник
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ТЧРаботникиОрганизации.НомерСтроки КАК НомерСтроки,
МИНИМУМ(ТЧРаботникиОрганизации2.НомерСтроки) КАК КонфликтнаяСтрокаНомер
ИЗ
Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ТЧРаботникиОрганизации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ТЧРаботникиОрганизации2
ПО (ТЧРаботникиОрганизации2.Ссылка = &ДокументСсылка)
И ТЧРаботникиОрганизации.НомерСтроки <> ТЧРаботникиОрганизации2.НомерСтроки
И ТЧРаботникиОрганизации.ДатаНачала <= ТЧРаботникиОрганизации2.ДатаНачала
И ТЧРаботникиОрганизации.Сотрудник = ТЧРаботникиОрганизации2.Сотрудник
И (ВЫБОР
КОГДА ТЧРаботникиОрганизации.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ИСТИНА
КОГДА ТЧРаботникиОрганизации.НапомнитьПоЗавершении
ТОГДА ИСТИНА
ИНАЧЕ ТЧРаботникиОрганизации.ДатаОкончания >= ТЧРаботникиОрганизации2.ДатаНачала
КОНЕЦ)
И ТЧРаботникиОрганизации.Сторно = ТЧРаботникиОрганизации2.Сторно
ГДЕ
ТЧРаботникиОрганизации.Ссылка = &ДокументСсылка
И НЕ ТЧРаботникиОрганизации.Сторно
СГРУППИРОВАТЬ ПО
ТЧРаботникиОрганизации.НомерСтроки) КАК ПересекающиесяСтроки
ПО ТЧРаботникиОрганизации.НомерСтроки = ПересекающиесяСтроки.НомерСтроки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК ИмеющиесяСостояния
ПО ТЧРаботникиОрганизации.ДатаНачала = ИмеющиесяСостояния.Период
И ТЧРаботникиОрганизации.Ссылка <> ИмеющиесяСостояния.Регистратор
И ТЧРаботникиОрганизации.Сотрудник = ИмеющиесяСостояния.Сотрудник
ГДЕ
ТЧРаботникиОрганизации.Ссылка = &ДокументСсылка
И НЕ ТЧРаботникиОрганизации.Сторно
УПОРЯДОЧИТЬ ПО
НомерСтроки
Показать
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот