Вопрос по отбору в скд.

1. user1671936 1 07.03.24 14:46 Сейчас в теме
Добрый день. Помогите, пожалуйста, разобраться с отчетом скд. Есть отчет на скд, в нем поле сопоставлен(булево). В консоли запросов выполняю запрос, у всех сотрудников значение поле сопоставлен ложь. При этом если я добавляю это поле в отбор, то отчет выводится пустым, независимо от того, какое значение указать в отборе, истина или ложь. Как только снимаю галочку с данного отбора - отчет выводится нормально. Подскажите, пожалуйста,что не так делаю? 1С:Предприятие 8.3 (8.3.14.2095).
ВЫБРАТЬ
	ВТПром.Организация КАК Организация,
	ВТПром.Сотрудник КАК Сотрудник,
	ВТПром.Сопоставлен КАК Сопоставлен,
	ТИПЗНАЧЕНИЯ(ВТПром.Сопоставлен) КАК ТипЗначенияСопоставлен
ИЗ
	ВТПром КАК ВТПром
По теме из базы знаний
Найденные решения
5. RustamZz 07.03.24 15:14 Сейчас в теме
(4) Добавьте в отбор отчета: СоответствиеЭлементовМО.ЭлементМО Не заполнено
user1671936; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1671936 1 07.03.24 14:53 Сейчас в теме
Прикладываю скрины с настройками
Прикрепленные файлы:
3. RustamZz 07.03.24 15:01 Сейчас в теме
(2) Надо смотреть самый первый запрос именно в нем накладываются условия в СКД
user1671936; +1 Ответить
4. user1671936 1 07.03.24 15:05 Сейчас в теме
(3)
первый запрос
смотрел, в нем и нет этого поля, оно рассчитывается уже в итоговом запросе
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	РабочиеМеста.Ссылка КАК РабочееМесто
ПОМЕСТИТЬ ВТРабочиеМеста
ИЗ
	Справочник.РабочиеМеста КАК РабочиеМеста
;

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

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СотрудникиОрганизаций.Сотрудник.ФизЛицо КАК ФизЛицо,
	МАКСИМУМ(ФизическиеЛицаКонтактнаяИнформация.Представление) КАК Представление
ПОМЕСТИТЬ АдресПоПрописке
ИЗ
	ВТСотрудники КАК СотрудникиОрганизаций
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
		ПО СотрудникиОрганизаций.Сотрудник.ФизЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
ГДЕ
	ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическогоЛица)

СГРУППИРОВАТЬ ПО
	СотрудникиОрганизаций.Сотрудник.ФизЛицо
;

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

СГРУППИРОВАТЬ ПО
	ВложенныйЗапрос.Организация,
	ВложенныйЗапрос.ПодразделениеОрганизации,
	ВложенныйЗапрос.Профессия,
	ВложенныйЗапрос.Сотрудник.ФизЛицо,
	ВложенныйЗапрос.Сотрудник.Наименование,
	ПериодичностьМедосмотровПоФакторамВидамРаботСрезПоследних.ФакторВидРабот,
	ПериодичностьМедосмотровПоФакторамВидамРаботСрезПоследних.Периодичность,
	Т1.Периодичность,
	Т2.Периодичность,
	ВложенныйЗапрос.Сотрудник,
	ПериодичностьМедосмотровПоФакторамВидамРаботСрезПоследних.ФакторВидРабот.ВидПеречняДляМедосмотра,
	ВложенныйЗапрос.Состояние,
	ВложенныйЗапрос.ТипСотрудника,
	ВЫБОР
		КОГДА ПериодичностьМедосмотровПоФакторамВидамРаботСрезПоследних.ФакторВидРабот ЕСТЬ NULL
				ИЛИ ЕСТЬNULL(ЕСТЬNULL(Т1.Периодичность, Т2.Периодичность), ПериодичностьМедосмотровПоФакторамВидамРаботСрезПоследних.Периодичность) = &Никогда
			ТОГДА 0
		ИНАЧЕ 1
	КОНЕЦ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	РезультатыМедосмотровФизЛиц.Регистратор.Организация КАК Организация,
	РезультатыМедосмотровФизЛиц.ФизЛицо КАК ФизЛицо,
	РезультатыМедосмотровФизЛиц.ФакторВидРабот КАК ФакторВидРабот,
	МАКСИМУМ(РезультатыМедосмотровФизЛиц.Период) КАК Период
ПОМЕСТИТЬ ВТРезультатыМОМаксПериод
ИЗ
	РегистрСведений.РезультатыМедосмотровФизЛиц КАК РезультатыМедосмотровФизЛиц
ГДЕ
	РезультатыМедосмотровФизЛиц.Период <= &Период
	И РезультатыМедосмотровФизЛиц.ФизЛицо В
			(ВЫБРАТЬ
				ВТСотрудники.Сотрудник.ФизЛицо
			ИЗ
				ВТСотрудники КАК ВТСотрудники)

СГРУППИРОВАТЬ ПО
	РезультатыМедосмотровФизЛиц.Регистратор.Организация,
	РезультатыМедосмотровФизЛиц.ФизЛицо,
	РезультатыМедосмотровФизЛиц.ФакторВидРабот
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	ВТСотрудники.Организация КАК Организация,
	ВТСотрудники.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
	ВТСотрудники.Сотрудник КАК Сотрудник,
	ВТСотрудники.Профессия КАК Профессия,
	ВТСотрудники.РабочееМесто КАК РабочееМесто,
	ВТСотрудники.Состояние КАК Состояние,
	ВТСотрудники.ТипСотрудника КАК ТипСотрудника,
	ВТФакторыФизлиц.ФакторВидРабот КАК ФакторВидРабот,
	ВТФакторыФизлиц.КоличествоФакторов КАК КоличествоФакторов,
	ИСТИНА КАК Присутствие,
	ВТФакторыФизлиц.ДатаПоПеречнюКонтингентов КАК ДатаПоПеречнюКонтингентов,
	NULL КАК ДатаМедосмотра,
	NULL КАК РезультатМедосмотра,
	NULL КАК ДокументПроведенияМедосмотра
ПОМЕСТИТЬ ВТСводная
ИЗ
	ВТСотрудники КАК ВТСотрудники
		ЛЕВОЕ СОЕДИНЕНИЕ ВТФакторыФизлиц КАК ВТФакторыФизлиц
		ПО ВТСотрудники.Организация = ВТФакторыФизлиц.Организация
			И ВТСотрудники.Сотрудник = ВТФакторыФизлиц.Сотрудник
ГДЕ
	НЕ ВТФакторыФизлиц.Сотрудник.ФизЛицо ЕСТЬ NULL

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВТСотрудники.Организация,
	ВТСотрудники.ПодразделениеОрганизации,
	ВТСотрудники.Сотрудник,
	ВТСотрудники.Профессия,
	ВТСотрудники.РабочееМесто,
	ВТСотрудники.Состояние,
	ВТСотрудники.ТипСотрудника,
	ВТРезультатыМО.ФакторВидРабот,
	0,
	ЛОЖЬ,
	NULL,
	ВТРезультатыМО.Период,
	ЕСТЬNULL(ВТРезультатыМО.РезультатМедосмотра, ЗНАЧЕНИЕ(Перечисление.ВидыРезультатаМедосмотра.ПустаяСсылка)),
	ВТРезультатыМО.Регистратор
ИЗ
	ВТСотрудники КАК ВТСотрудники
		ЛЕВОЕ СОЕДИНЕНИЕ ВТРезультатыМО КАК ВТРезультатыМО
		ПО ВТСотрудники.Организация = ВТРезультатыМО.Регистратор.Организация
			И ВТСотрудники.Сотрудник.ФизЛицо = ВТРезультатыМО.ФизЛицо
ГДЕ
	НЕ ВТРезультатыМО.ФизЛицо ЕСТЬ NULL
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТСводная.Организация КАК Организация,
	ВТСводная.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
	ВТСводная.Сотрудник КАК Сотрудник,
	ВТСводная.Профессия КАК Профессия,
	ВТСводная.Состояние КАК Состояние,
	ВТСводная.ТипСотрудника КАК ТипСотрудника,
	ВТСводная.ФакторВидРабот КАК ФакторВидРабот,
	МАКСИМУМ(ВТСводная.КоличествоФакторов) КАК КоличествоФакторов,
	МАКСИМУМ(ВТСводная.РабочееМесто) КАК РабочееМесто,
	МАКСИМУМ(ВТСводная.Присутствие) КАК Присутствие,
	МАКСИМУМ(ВТСводная.ДатаПоПеречнюКонтингентов) КАК ДатаПоПеречнюКонтингентов,
	МАКСИМУМ(ВТСводная.ДатаМедосмотра) КАК ДатаМедосмотра,
	МАКСИМУМ(ВТСводная.РезультатМедосмотра) КАК РезультатМедосмотра,
	МАКСИМУМ(ВТСводная.ДокументПроведенияМедосмотра) КАК ДокументПроведенияМедосмотра
ПОМЕСТИТЬ ВТИтоговая
ИЗ
	ВТСводная КАК ВТСводная

СГРУППИРОВАТЬ ПО
	ВТСводная.Организация,
	ВТСводная.ПодразделениеОрганизации,
	ВТСводная.Сотрудник,
	ВТСводная.Профессия,
	ВТСводная.Состояние,
	ВТСводная.ТипСотрудника,
	ВТСводная.ФакторВидРабот
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТИтоговая.Организация КАК Организация,
	ВТИтоговая.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
	ВТИтоговая.Сотрудник КАК Сотрудник,
	ВТИтоговая.Профессия КАК Профессия,
	ВТИтоговая.Состояние КАК Состояние,
	ВТИтоговая.ТипСотрудника КАК ТипСотрудника,
	ВТИтоговая.Сотрудник.ФизЛицо КАК КоличествоРаботниковДляМедосмотра,
	ВТИтоговая.Сотрудник.ФизЛицо КАК КоличествоРаботников,
	ВТИтоговая.ФакторВидРабот КАК ФакторВидРабот,
	ВТИтоговая.РабочееМесто КАК РабочееМестоСотрудника,
	ВТИтоговая.КоличествоФакторов КАК КоличествоФакторов,
	ВТИтоговая.ФакторВидРабот.НомерПунктаПолный КАК НомерПункта,
	ВТИтоговая.ФакторВидРабот.ВидПеречняДляМедосмотра КАК ФакторВидРаботВидПеречняДляМедосмотра,
	ВТИтоговая.ФакторВидРабот.Периодичность КАК Периодичность,
	ВТИтоговая.Присутствие КАК ПрисутствиеФактора,
	ВТИтоговая.ДатаПоПеречнюКонтингентов КАК ДатаПоПеречнюКонтингентов,
	ВТИтоговая.ДатаМедосмотра КАК ДатаМедосмотра,
	ВТИтоговая.РезультатМедосмотра КАК РезультатМедосмотра,
	ВТИтоговая.ДокументПроведенияМедосмотра КАК ДокументПроведенияМедосмотра,
	ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ВТИтоговая.ДатаМедосмотра, ДЕНЬ, ВТИтоговая.ФакторВидРабот.Периодичность.День), МЕСЯЦ, ВТИтоговая.ФакторВидРабот.Периодичность.Месяц), ГОД, ВТИтоговая.ФакторВидРабот.Периодичность.Год) КАК ДатаСледующегоМедосмотра,
	РАЗНОСТЬДАТ(&Период, ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ВТИтоговая.ДатаМедосмотра, ДЕНЬ, ВТИтоговая.ФакторВидРабот.Периодичность.День), МЕСЯЦ, ВТИтоговая.ФакторВидРабот.Периодичность.Месяц), ГОД, ВТИтоговая.ФакторВидРабот.Периодичность.Год), ДЕНЬ) КАК ОстолосьДней,
	ЕСТЬNULL(СписокНеПроходящихМедосмотрСрезПоследних.Исключен, ЛОЖЬ) КАК Исключен,
	ВТИтоговая.ФакторВидРабот.ДатаНачалаДействия < &Период
		И (ВТИтоговая.ФакторВидРабот.Действует
			ИЛИ ВТИтоговая.ФакторВидРабот.ДатаПрекращенияДействия >= &Период) КАК Действует,
	НЕ СоответствиеЭлементовМО.ЭлементМО ЕСТЬ NULL
		И НЕ СоответствиеЭлементовМО.ЭлементМО = ЗНАЧЕНИЕ(Справочник.ПереченьПериодичностиМедосмотра.ПустаяСсылка) КАК Сопоставлен,
	АдресПоПрописке.Представление КАК АдресПоПрописке
ИЗ
	ВТИтоговая КАК ВТИтоговая
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеЭлементовМО КАК СоответствиеЭлементовМО
		ПО ВТИтоговая.ФакторВидРабот = СоответствиеЭлементовМО.ЭлементМООтменен
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписокНеПроходящихМедосмотр.СрезПоследних(&Период, ) КАК СписокНеПроходящихМедосмотрСрезПоследних
		ПО ВТИтоговая.Сотрудник = СписокНеПроходящихМедосмотрСрезПоследних.Сотрудник
		ЛЕВОЕ СОЕДИНЕНИЕ АдресПоПрописке КАК АдресПоПрописке
		ПО ВТИтоговая.Сотрудник.ФизЛицо = АдресПоПрописке.ФизЛицо

УПОРЯДОЧИТЬ ПО
	ВТИтоговая.Сотрудник.Наименование,
	ВТИтоговая.ПодразделениеОрганизации.Наименование,
	ВТИтоговая.Профессия.Наименование
Показать
5. RustamZz 07.03.24 15:14 Сейчас в теме
(4) Добавьте в отбор отчета: СоответствиеЭлементовМО.ЭлементМО Не заполнено
user1671936; +1 Ответить
6. user1671936 1 07.03.24 15:19 Сейчас в теме
7. user1671936 1 07.03.24 15:28 Сейчас в теме
(5)Извините, возможно глупый вопрос, но тут ведь будет ложь, в случае если СоответствиеЭлементовМО.ЭлементМО не заполнено (NULL)
НЕ СоответствиеЭлементовМО.ЭлементМО ЕСТЬ NULL
		И НЕ СоответствиеЭлементовМО.ЭлементМО = ЗНАЧЕНИЕ(Справочник.ПереченьПериодичностиМедосмотра.ПустаяСсылка)
СоответствиеЭлементовМО.ЭлементМО = null, null не равен ЗНАЧЕНИЕ(Справочник.ПереченьПериодичностиМедосмотра.ПустаяСсылка), это уже ложь, так как по первому условию (НЕ СоответствиеЭлементовМО.ЭлементМО ЕСТЬ NULL) не проходит. Или я ошибаюсь?
9. RustamZz 07.03.24 15:50 Сейчас в теме
(7) У вас сложное условие проверка есть null не понятно во что оно превращается. Ну и надо помогать оптимизатору, писать простые и понятные условия.
user1671936; +1 Ответить
10. user1671936 1 07.03.24 15:58 Сейчас в теме
(9)отчет штатный из конфигурации EHSMS: Системы безопасности и охраны труда, редакция 10.2 (10.2.16.5) (http://www.ot-soft.ru/)
Copyright © ООО "Информ Центр", 2009-2023. Все права защищены
(http://www.iservice.ru/), на его основании выводятся диаграммы на главном экране, и они пустые, потому что отчет пустой из за этого отбора. Я уже пробовал и настройки чистить, чтоб сбросить этот отбор, и кэш, и в обход конфы через расширение пробовал его отключать, все бесполезно. Он по умолчанию включен в варианте отчета, я сохранил как внешний отчет, отключил в нужном варианте, загрузил обратно, а он все равно тянет старые настройки, где этот отбор включен.
11. RustamZz 07.03.24 16:01 Сейчас в теме
(10) Даже у самой 1С встречаются неоптимальные участки кода. А у простого франча тем более.
user1671936; +1 Ответить
12. user1671936 1 07.03.24 16:03 Сейчас в теме
(11)понял, спасибо большое за помощь. Хороших выходных Вам =)
8. user1671936 1 07.03.24 15:33 Сейчас в теме
Получается ложь
Прикрепленные файлы:
Оставьте свое сообщение

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