Имя: Пароль:
1C
1С v8
Запрос. Отбор по типу ДокументСсылка
0 Slon747
 
16.03.19
10:16
В регистре сведений измерение имеет тип ДокументСсылка (т.е. все типы документов). Оно может быть заполнено, а может быть пустым.
Не соображу, как запросом отобрать записи, у которых это значение заполнено.
Подскажете?
1 palsergeich
 
16.03.19
10:21
Есть 2 варрианта пустоты в данном случае
В первом случае там может быть НЕОПРЕДЕЛЕНО
Во втором пустая ссылка
2 Slon747
 
16.03.19
10:22
(1) но как отобрать запросом?
3 palsergeich
 
16.03.19
10:23
И зуб даю в таблице есть и то и то.
Как можно отобрать:
Выбрать КакиеТоПоля
Из Регистр.ИмяРегистра
Где ПолеЛюбойДокумент = Неопределено
Объединить Все
Выбрать КакиеТоПоля
Из Регистр.ИмяРегистра
Где ПолеЛюбойДокумент &МассивПустыхСсылок

Параметр пустых ссылок можно заполнить при помощи коллекции Метаданные
4 palsergeich
 
16.03.19
10:23
Выбрать КакиеТоПоля
Из Регистр.ИмяРегистра
Где ПолеЛюбойДокумент = Неопределено
Объединить Все
Выбрать КакиеТоПоля
Из Регистр.ИмяРегистра
Где ПолеЛюбойДокумент В &МассивПустыхСсылок
5 Slon747
 
16.03.19
10:26
(4) Документ <> Неопределено
Точно! Я то ли не знал, что Неопределено доступно в языке запросов, то ли забыл.
Спасибо.
6 palsergeich
 
16.03.19
10:30
МассивПустых = Новый Массив;
МетаДок = Метаданные.Документы;
Для Каждого ЭлементМета из МетаДок Цикл
    МассивПустых.Добавить(Документы[ЭлементМета.Имя].ПустаяСсылка());
КонецЦикла;
Вот так получить массив пустых ссылок на все документы
(5) Неопределено в БД появляется только когда есть составные типы. Видишь составной тип - держи в уме помимо пустой ссылки еще и неопределено
7 palsergeich
 
16.03.19
11:08
Тьфу, наоборот надо когда заполнено) Тогда да <> неопределено)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.