Не с первого раза срабатывает сообщение о пересечении отпусков (ЗУП 2.5)

1. user1304317 20.04.20 14:33 Сейчас в теме
Коллеги, привет!
Документ "Отпуска организаций".
При первичном проведении документа не срабатывает сообщение о пересечении отпусков, если оно имеется, но при повторном, оно отрабатывает.
Возможно у вас будут советы или рекомендации в рамках данной темы. Спасибо!

Прилагаю запрос, который находится в модуле объекта документа:

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

УПОРЯДОЧИТЬ ПО
	НомерСтроки
Показать
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот