В регистре накопления есть реквизит составного типа - различные документы. Нужно в запросе как-то проверить на пустое значение?
Как-то хитро это можно сделать?
А может это, и вовсе, - делается очень просто?
(25)Я в курсе.
Вам несколько человек говорят, что то что вы предлагаете - в таком виде работать не будет.
Вы можете проверить сами.
Это может сработать, если проверять на null реквизит Реквизита. Но не сам реквизит.
Но в этом случае будет соединение со всеми таблицами этого составного реквизита.
(48)Вы бы хоть сначала в консоли проверили свои слова.
То что никто в теме вас не поддерживает, ни на что не намекает?
Или вы считаете некомпетентными всех кроме себя?
Просто так упорно утверждать то, в чем вы ошибаетесь, ведь самой же потом стыдно будет.
Но не перебирать же все возможные виды документов?
Вот именно для этого пустым значением у составного типа является Неопределенно. Документы.Отпуск.ПустоеЗначение у составного типа это уже заполненное значение (возможно предопределенным) значением документа Отпуск.
(3) а почему там пустое документе, а не неопределено??
возможно стоит при записи правильно передавать данные или при записи в регистр корректировать записи??
чтобы потом проверять на Неопределено, а не выдумывать что-то
(3) Если задача найти в том числе и пустые ссылки, то в принципе можно заставить платформу перебрать все возможные виды документов. Тогда условие будет такое:
ГДЕ Реквизит.Ссылка ЕСТЬ NULL
Но такой финт будет дорого стоить – в запросе будет неявная связь со всеми таблицами ссылочного типа.
На своем опыте знаю, когда вторым сообщением я отвечаю на вопрос участника и можно закрывать тему, она остается еще активной два-три дня и еще умудряется подняться в топик!
(21)Если значению составного типа не был присвоен тип, то будет Неопределено. Но также может быть и пустая ссылка на любой из составляющих типов.
С чего вдруг будет Null то?
(22) Именно так и есть. Есть записи с Неопределено и есть записи со ссылками на пустой документ какой-нибудь из допустимых.
Неопределено - проверяется. А как пустую ссылку на документ проверить?
А если сначала проверить на неопределенно если тип не выбран , а если тип выбран проверить по УникальномуИдентификатору
Типа такого
ВЫБОР
КОГДА КОГДА Реквизит <> Неопределено ТОГДА
ВЫБОР
КОГДА УникальныйИдетификатор(Реквизит) = &ПустойИдетификатор ТОГДА
"Не заполнено"
ИНАЧЕ
"Заполнено"
КОНЕЦ
ИНАЧЕ
"Не заполнено"
КОНЕЦ
ПустойИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
Запрос.УстановитьПараметр("ПустойИдетификатор ",ПустойИдентификатор )
ВЫБОР
КОГДА isNull(Реквизит, &ПустойИдентификатор)= НЕОПРЕДЕЛЕНО
ТОГДА "Неопределено"
КОГДА УНИКАЛЬНЫЙИДЕНТИФИКАТОР(isNull(Реквизит, &ПустойИдентификатор)) = &ПустойИдентификатор
ТОГДА "Пустая ссылка"
ИНАЧЕ "Заполнено"
КОНЕЦ КАК ТипЗаполнения
(27) Если версия платформы позволяет, то вариант рабочий. Такой запрос не делает соединения со всеми таблицами типа:
ВЫБОР
КОГДА Реквизит = НЕОПРЕДЕЛЕНО
ТОГДА "Неопределено"
КОГДА УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Реквизит) = &ПустойИдентификатор
ТОГДА "Пустая ссылка"
ИНАЧЕ "Заполнено"
КОНЕЦ КАК ТипЗаполнения
(51) Нет, в типовых конфигах можно использовать только те возможности (включая встроенный язык 1С и язык запросов 1С), которые соответствуют установленному режиму совместимости конкретной конфигурации.
Думаю, профи должны это знать "как два пальца об асфальт".
(53) Такие вещи, которые в ядре платформы, обычно не зависят от версии совместимости. Тот же IE в поле html никто не будет поддерживать только ради обратной совместимости.
(56) Ну вот в конструкторе запросов я вижу про УникальныйИдентификатор (БСП 3.1.4).
Как он будет работать в типовых - не уверен.
Пока верю тебе на слово ))