|
Проверка заполненности составного поля в запросе |
☑ |
0
Звездец
02.06.17
✎
17:33
|
Нужно в запросе проверить заполненность поля. Если поле ссылочного типа, вопросов нет. Но вот если поле составное и может содержать в себе ссылки на документы нескольких типов, то по идее должна работать конструкция
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.ЗаказПоставщику КАК Заказ,
| ТаблицаТовары.Магазин КАК Магазин,
| ТаблицаТовары.Контрагент КАК Поставщик,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Количество КАК Количество
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ФормироватьДвижения
| И НЕ ТаблицаТовары.ЗаказПоставщику = Неопределено
Но не работает. Или в этом нужен NULL?
|
|
1
kiruha
02.06.17
✎
17:37
|
Проверять на Неопределено и на Пустую ссылку каждого типа
|
|
2
kiruha
02.06.17
✎
17:37
|
Неопределено - тип не заполнен
|
|
3
Звездец
02.06.17
✎
17:38
|
(2) мне и надо отобрать где незаполнено
|
|
4
Звездец
02.06.17
✎
17:39
|
(1) ну тупо перебором пустых ссылок не хотелось бы, их же может быть много
|
|
5
kiruha
02.06.17
✎
17:39
|
Чтобы много не писать некоторые не парятся и пишут
ТаблицаТовары.ЗаказПоставщику.ссылка Есть Null
|
|
6
Волшебник
модератор
02.06.17
✎
17:39
|
(3) Тогда условие должно быть такое:
ГДЕ &ФормироватьДвижения
И ТаблицаТовары.ЗаказПоставщику = Неопределено
|
|
7
HEKPOH
02.06.17
✎
17:41
|
(3) не заполнено в таких случаях бывает двух типов:
1. не выбран тип - Неопределено
2. тип выбран, а ссылка нет - ПустаяСсылка
Именно об этом писали в (1)
|
|
8
igork1966
02.06.17
✎
17:42
|
(3) т.е. пустую ссылку ты будешь считать заполненным полем?
|
|
9
mehfk
02.06.17
✎
17:46
|
(0) Не должна.
|
|
10
Звездец
02.06.17
✎
17:56
|
(7) вот мне как раз таки и нужно выбрать все кроме пустого и пустой ссылки.
|
|
11
ГдеСобака Зарыта
02.06.17
✎
17:58
|
В БП 3 есть такая функция
Функция ПолучитьМассивПустыхЗначенийПоОписаниюТипов(ОписаниеТипов) Экспорт
МассивПустыхЗначений = Новый Массив;
МассивПустыхЗначений.Добавить(Неопределено);
Для каждого Тип Из ОписаниеТипов.Типы() Цикл
МассивПустыхЗначений.Добавить(Новый(Тип));
КонецЦикла;
Возврат МассивПустыхЗначений;
КонецФункции
Установка параметра запроса:
Запрос.УстановитьПараметр("ДебиторскаяЗадолженностьСделкаПустыеЗначения",
ОбщегоНазначенияБПВызовСервера.ПолучитьМассивПустыхЗначенийПоОписаниюТипов(
ДокументСсылка.Метаданные().ТабличныеЧасти.Расшифровка.Реквизиты.Сделка.Тип));
|
|
12
Звездец
02.06.17
✎
18:00
|
(11) Это интересно. Попробую применить
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший