Запрос на получение заключенных и не заключенных договоров МОЛ

1. user1816391 12.12.22 11:48 Сейчас в теме
Здравствуйте, стояла задача на создание отчета, который выводил бы заключенные договора МОЛ и сотрудников, у которых они не заключены.
Чтобы узнать, какая должность имеет материальную ответственность, есть документ "Назначение должностей мол", в котором нужно выбрать подразделение и должности из этих подразделений, у которых есть МОЛ.
Далее составляется договор МОЛ уже именно на сотрудника, отчет делаю вот таким запросом.

ВЫБРАТЬ
	ВЫБОР
		КОГДА СЭ_ДоговорыМОЛ.Период ЕСТЬ NULL
			ТОГДА "НЕ ЗАКЛЮЧЕН"
		ИНАЧЕ СЭ_ДоговорыМОЛ.Период
	КОНЕЦ КАК Период, 	
	    ЕСТЬNULL(КадроваяИсторияСотрудниковСрезПоследних.Сотрудник, "НЕКОРРЕКТНО ВВЕДЕННЫЕ ДАННЫЕ") КАК Сотрудник,
        ЕСТЬNULL(КадроваяИсторияСотрудниковСрезПоследних.Должность, "НЕКОРРЕКТНО ВВЕДЕННЫЕ ДАННЫЕ") КАК Должность,	
	СЭ_ДоговорыМОЛ.ВидМатериальнойОтветственности КАК ВидМатериальнойОтветственности,
	ЕСТЬNULL(КадроваяИсторияСотрудниковСрезПоследних.Подразделение, СЭ_ДолжностиМОЛСрезПоследних.Подразделение) КАК Подразделение,
	ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
	КадровыйПеревод.ДатаНачала КАК ДатаНачала
ИЗ
	РегистрСведений.СЭ_ДолжностиМОЛ.СрезПоследних КАК СЭ_ДолжностиМОЛСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СЭ_ДоговорыМОЛ КАК СЭ_ДоговорыМОЛ
			ПО (СЭ_ДоговорыМОЛ.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник)
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
			ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
			ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод КАК КадровыйПеревод
			ПО КадроваяИсторияСотрудниковСрезПоследних.Регистратор = КадровыйПеревод.Ссылка
		ПО СЭ_ДолжностиМОЛСрезПоследних.Должность = КадроваяИсторияСотрудниковСрезПоследних.Должность
			И СЭ_ДолжностиМОЛСрезПоследних.Подразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение
ГДЕ
	(СЭ_ДоговорыМОЛ.Период <= &Дата 
			ИЛИ СЭ_ДоговорыМОЛ.Период ЕСТЬ NULL)
Показать

Проблема состоит в том, что если сотрудник перевелся в другое подразделение, то он исчезает из предыдущего МОЛ (в отчете), что верно, но при создании нового МОЛ (на новое подразделение) на сотрудников данного подразделения, то они не выводятся в отчете, а только тот сотрудник, который перевёлся, хотя на него (в новом подразделении), ещё не составлен ни договор, ни назначение должности.
По теме из базы знаний
Найденные решения
13. RustamZz 12.12.22 12:23 Сейчас в теме
(12) Период <= &Дата
user1816391; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 12.12.22 12:02 Сейчас в теме
(1) В
РегистрСведений.СЭ_ДоговорыМОЛ
нужно что бы было подразделение и по нему соединиться.
3. user1816391 12.12.22 12:07 Сейчас в теме
(2)могли бы написать, как именно это должно выглядеть?
4. RustamZz 12.12.22 12:10 Сейчас в теме
(3)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СЭ_ДоговорыМОЛ КАК СЭ_ДоговорыМОЛ
 ПО (СЭ_ДоговорыМОЛ.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) и (СЭ_ДоговорыМОЛ.Подразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение)
user1816391; +1 Ответить
5. user1816391 12.12.22 12:11 Сейчас в теме
(4) всё равно не выводит нужных
6. RustamZz 12.12.22 12:18 Сейчас в теме
(5) Не вижу больше ошибок в запросе
user1816391; +1 Ответить
7. user1816391 12.12.22 12:18 Сейчас в теме
(4) заметил, что если вписывать сотрудника в договор мол, то он исчезает из отчета, а если нет, то есть
8. RustamZz 12.12.22 12:19 Сейчас в теме
(7) Из-за условия
ГДЕ
(СЭ_ДоговорыМОЛ.Период <= &Дата
ИЛИ СЭ_ДоговорыМОЛ.Период ЕСТЬ NULL)
user1816391; +1 Ответить
12. user1816391 12.12.22 12:22 Сейчас в теме
(8)странно, как тогда других выводит
13. RustamZz 12.12.22 12:23 Сейчас в теме
(12) Период <= &Дата
user1816391; +1 Ответить
9. ZergKRSK 130 12.12.22 12:20 Сейчас в теме
(7) условие ГДЕ надо перенести в связь по левому соединению
10. user1816391 12.12.22 12:22 Сейчас в теме
11. ZergKRSK 130 12.12.22 12:22 Сейчас в теме
(10) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СЭ_ДоговорыМОЛ КАК СЭ_ДоговорыМОЛ
14. user1816391 12.12.22 12:25 Сейчас в теме
Оставьте свое сообщение

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