Пустой результат запроса из дополнительных реквизитов

1. russb 23.01.18 22:04 Сейчас в теме
Прошу помощи.
У документа есть 2 дополнительных реквизита. Если один из реквизитов не заполнен, то результат запроса пустой. Возможно кинете ссылкой где можно подробнее почитать. Так как уже перепробовал кучу вариантов с ВЫБОР, ЕСТЬNULL, Неопределено. Если смотреть в отладчике, то результат запроса неопределено. Заранее спасибо.

Вот текст запроса:
ВЫБРАТЬ
	УвольнениеДополнительныеРеквизиты.Значение КАК ТрудоваяКнижка
ПОМЕСТИТЬ ВТ_ТрудоваяКнижка
ИЗ
	Документ.Увольнение.ДополнительныеРеквизиты КАК УвольнениеДополнительныеРеквизиты
ГДЕ
	УвольнениеДополнительныеРеквизиты.Ссылка = &Ссылка
	И УвольнениеДополнительныеРеквизиты.Свойство.Наименование = "Трудовая книжка (Увольнения)"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	УвольнениеДополнительныеРеквизиты.Значение КАК ВкладышТрудовойКнижки,
	ВТ_ТрудоваяКнижка.ТрудоваяКнижка КАК ТрудоваяКнижка
ИЗ
	Документ.Увольнение.ДополнительныеРеквизиты КАК УвольнениеДополнительныеРеквизиты,
	ВТ_ТрудоваяКнижка КАК ВТ_ТрудоваяКнижка
ГДЕ
	УвольнениеДополнительныеРеквизиты.Ссылка = &Ссылка
	И УвольнениеДополнительныеРеквизиты.Свойство.Наименование = "Вкладыш трудовой книжки (Увольнения)"
Показать
По теме из базы знаний
Найденные решения
4. kondratevsergey1985 23.01.18 23:20 Сейчас в теме
ВЫБРАТЬ
	Ссылка,
	ТрудоваяКнижка
ПОМЕСТИТЬ
	ВТ_ТрудоваяКнижка
ИЗ
	...
;

ВЫБРАТЬ
	Ссылка,
	ВкладышТрудовойКнижки
ПОМЕСТИТЬ
	ВТ_ВкладышТрудовойКнижки
ИЗ
	...
;

ВЫБРАТЬ
	ЕСТЬNULL(ТК.ТрудоваяКнижка, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ТрудоваяКнижка,
	ЕСТЬNULL(ВТК.ВкладышТрудовойКнижки, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ВкладышТрудовойКнижки
ИЗ
	ВТ_ТрудоваяКнижка КАК ТК
	ПОЛНОЕ СОЕДИНЕНИЕ
	ВТ_ВкладышТрудовойКнижки КАК ВТК
	ПО
		ТК.Ссылка = ВТК.Ссылка
;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user_2010 904 23.01.18 22:24 Сейчас в теме
(1) связи таблиц не настроены - имхо
3. leks88 25 23.01.18 22:43 Сейчас в теме
(1) Действительно похоже на ошибку в связях, приведите полный текст запроса.
4. kondratevsergey1985 23.01.18 23:20 Сейчас в теме
ВЫБРАТЬ
	Ссылка,
	ТрудоваяКнижка
ПОМЕСТИТЬ
	ВТ_ТрудоваяКнижка
ИЗ
	...
;

ВЫБРАТЬ
	Ссылка,
	ВкладышТрудовойКнижки
ПОМЕСТИТЬ
	ВТ_ВкладышТрудовойКнижки
ИЗ
	...
;

ВЫБРАТЬ
	ЕСТЬNULL(ТК.ТрудоваяКнижка, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ТрудоваяКнижка,
	ЕСТЬNULL(ВТК.ВкладышТрудовойКнижки, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ВкладышТрудовойКнижки
ИЗ
	ВТ_ТрудоваяКнижка КАК ТК
	ПОЛНОЕ СОЕДИНЕНИЕ
	ВТ_ВкладышТрудовойКнижки КАК ВТК
	ПО
		ТК.Ссылка = ВТК.Ссылка
;
Показать
5. russb 24.01.18 09:20 Сейчас в теме
(4)
ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)

Спасибо получилось. Только я не понял, почему обязательно создавать вторую временную таблицу и уже потом делать соединение.
Без третьего шага не работает.
6. kondratevsergey1985 24.01.18 11:38 Сейчас в теме
Можно наверное и без временной таблицы (можно и без обеих временных, используя вложенные запросы), но со временными таблицами понятнее (по крайней мере мне). Вообще, если вы ещё не используете консоль запросов, то рекомендую, так проще разбираться в запросах.
7. russb 24.01.18 13:11 Сейчас в теме
(6)
Ещё раз спасибо. В основном использую консоль. Но хочу для себя понять, почему не работает без второй ВТ и для себя нужно разобраться почему в функции ЕСТЬNULL второе значение Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка
8. kondratevsergey1985 24.01.18 13:21 Сейчас в теме
(7)

По поводу "ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)" не обратил внимания, по-хорошему там должно стоять то пустое значение, которое соответствует типу дополнительного реквизита.

То есть если у вас доп. реквизит ТрудоваяКнижка имеет тип "Дополнительное значение", то тогда нужно использовать значение ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка), если тип "Строка", то конструкция будет выглядеть так:

ЕСТЬNULL(ТК.ТрудоваяКнижка, "") КАК ТрудоваяКнижка,


если число, то

ЕСТЬNULL(ТК.ТрудоваяКнижка, 0) КАК ТрудоваяКнижка,


и т.д.
9. russb 24.01.18 13:41 Сейчас в теме
(8)
Понял. С простыми типами всё понятно. Теперь понятно и с типом дополнительный реквизит.
Оставьте свое сообщение

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