Имя: Пароль:
1C
1С v8
Запрос условие не пустое значение
0 ОффПланктон
 
13.11.12
10:58
Как в запросе сделать условие и параметр чтобы выбирал из справочника  только заполненное поле, пустыне отсеивал. Я сделал так, укажите на ошибку
   Запрос  = Новый Запрос();  
   Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 20
                  |    Контрагенты.Ссылка КАК Ссылка,
                  |    Контрагенты.Код КАК КоментДо,
                  |    Контрагенты.Автор КАК КоментПосле,
                  |    Контрагенты.ОсновноеКонтактноеЛицо
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |ГДЕ
                  |    Контрагенты.Ссылка В ИЕРАРХИИ(&Список)
                  |    И (НЕ Контрагенты.ЭтоГруппа)
                  |    Контрагенты.ОсновноеКонтактноеЛицо <> Справочники.Контрагенты.ПустаяСсылка
1 lxndr
 
13.11.12
11:00
<> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
2 Эльнур
 
13.11.12
11:00
НЕ Справочники.Контрагенты.ПустаяСсылка, а Справочник.Контрагенты.ПустаяСсылка
3 ДенисЧ
 
13.11.12
11:00
Контрагенты.ОсновноеКонтактноеЛицо <> ЗНАЧЕНИЕ(Справочники.Контрагенты.ПустаяСсылка)

или
Контрагенты.ОсновноеКонтактноеЛицо <> &ПустойКонтра


ЗАпрос.УстановитьПараметр("ПустойКонтра", Справочники.Контрагенты.ПустаяСсылка());
4 ОффПланктон
 
13.11.12
11:12
(1)(2)(3) Спасибо!
5 ОффПланктон
 
13.11.12
14:35
решил попробовать с массивом, если я буду брать данные из массива, то тогда как последнее условие поменяется?

Контрагенты.ОсновноеКонтактноеЛицо <> &ПустойКонтра

ЗАпрос.УстановитьПараметр("ПустойКонтра",Справочники.Контрагенты.ПустаяСсылка());
6 ОффПланктон
 
13.11.12
14:36
у меня что то вроде этого получилось, но не знаю где ошибка
7 ОффПланктон
 
13.11.12
14:37
Массив = Новый Массив;    
   Для Каждого Стр Из ТабЧасть Цикл
       Массив.Добавить(Стр.Контрагент);        
   КонецЦикла;
   
   Запрос  = Новый Запрос();  
   Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 20
                  |    Контрагенты.Ссылка КАК Ссылка,
                  |    Контрагенты.Код КАК КоментДо,
                  |    Контрагенты.Автор КАК КоментПосле,
                  |    Контрагенты.ОсновноеКонтактноеЛицо КАК Лицо
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |ГДЕ
                  |    Контрагенты.Ссылка В ИЕРАРХИИ(&Список)
                  |    И (НЕ Контрагенты.ЭтоГруппа)
                  |    Контрагенты.ОсновноеКонтактноеЛицо <> &ПустаяСсылка";
                     

   
   Запрос.УстановитьПараметр ("Список",Массив);
   Запрос.УстановитьПараметр("ПустаяСсылка", Массив);
8 ДенисЧ
 
13.11.12
14:37
Массив = Новый Массив;    
   Для Каждого Стр Из ТабЧасть Цикл
       Массив.Добавить(Стр.Контрагент);        
   КонецЦикла;
   

   Запрос.УстановитьПараметр ("Список",Массив);
   Запрос.УстановитьПараметр("ПустаяСсылка", Массив);

Это что за тень от хрена????
9 AndyD
 
13.11.12
14:38
" И " нехватает перед условием
10 ОффПланктон
 
13.11.12
14:39
Массив = Новый Массив;    
   Для Каждого Стр Из ТабЧасть Цикл
       Массив.Добавить(Стр.Контрагент);        
   КонецЦикла;

это я заполняю из формы (заполняю группу)
11 ОффПланктон
 
13.11.12
14:41
типы похоже разные(
12 Reset
 
13.11.12
14:41
(10) Заполняешь так себе, но это полбеды. Беда дальше
13 ОффПланктон
 
13.11.12
14:42
(12)где именно дальше?
14 Reset
 
13.11.12
14:43
(13) далее по тексту , где. (8)
15 Reset
 
13.11.12
14:43
Бросай ты это дело
16 ОффПланктон
 
13.11.12
14:47
(15) да ладно, я новичок, мне можно

Массив = Новый Массив;    
   Для Каждого Стр Из ТабЧасть Цикл
       Массив.Добавить(Стр.Контрагент);        
   КонецЦикла;
   
   Запрос  = Новый Запрос();  
   Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 20
                  |    Контрагенты.Ссылка КАК Ссылка,
                  |    Контрагенты.Код КАК КоментДо,
                  |    Контрагенты.Автор КАК КоментПосле,
                  |    Контрагенты.ОсновноеКонтактноеЛицо КАК Лицо
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |ГДЕ
                  |    Контрагенты.Ссылка В ИЕРАРХИИ(&Список)
                  |    И (НЕ Контрагенты.ЭтоГруппа)
                  |    И Контрагенты.ОсновноеКонтактноеЛицо <> &ПустаяСсылка";
                     
   
   Запрос.УстановитьПараметр ("Список",Массив);
   Запрос.УстановитьПараметр("ПустаяСсылка", Массив);
   Макет = ПолучитьМакет("Макет");
   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьДокумент1 = Макет.ПолучитьОбласть("Документ1");    
   //ТабДок = Новый ТабличныйДокумент;
   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьШапка);
   
   СтруктураРасшифровки = Новый Структура;
   СтруктураРасшифровки.Вставить("КоментДо","Привет");
   СтруктураРасшифровки.Вставить("КоментПосле","Привет");
   СтруктураРасшифровки.Вставить("Лицо","Привет");
   
   Результат = Запрос.Выполнить().Выгрузить();
   Для каждого Стр Из Результат Цикл
       Контрагенты = Стр.Ссылка;
       Код = Стр.КоментДо;
       Автор = Стр.КоментПосле;
КонецЦикла;        
   ОбластьДокумент1.Параметры.Заполнить(Результат[1]);
   ОбластьДокумент1.Параметры.Сообщить = СтруктураРасшифровки;
   ТабДок.Вывести(ОбластьДокумент1);    Если Результат.Количество() < 20 ТОГДА
       Сообщить ("нет такого значения")
   Иначе ОбластьДокумент1.Параметры.Заполнить(Результат[20]);
   КонецЕсли;                                
ОбластьПодвал.Параметры.Ответственный  = Ответственный.Фамилия + " " + Ответственный.Имя + " " + Ответственный.Отчество;
   ТабДок.Вывести(ОбластьПодвал);
   ТабДок.АвтоМасштаб = Истина;
   ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.ТолькоПросмотр = Истина;
   ТабДок.Показать("Ведомость по изменению комментариев", "");
   ТабДок.Показать();
17 ОффПланктон
 
13.11.12
14:49
вот!
без второго работает код, а со вторым условием не хочет
И Контрагенты.ОсновноеКонтактноеЛицо <> &ПустаяСсылка";
Запрос.УстановитьПараметр("ПустаяСсылка", Массив);
18 Reset
 
13.11.12
14:51
нужно быть не новичком, а очень глупым человеком(либо сильно инакомыслщим), чтобы не видеть бреда в Запрос.УстановитьПараметр("ПустаяСсылка", Массив);
19 ДенисЧ
 
13.11.12
14:51
Я, если мне мои глаза не изменяют, показал в (4), как нужно устанавливать пустую ссылку...
Так ведь нет.. Одно из двух...
20 ОффПланктон
 
13.11.12
14:59
вопрос закрыл) нашел что не так)
21 ОффПланктон
 
13.11.12
14:59
параметр по типу не совпадал
Запрос.УстановитьПараметр("ПустаяСсылка", Справочники.КонтактныеЛица.ПустаяСсылка());
22 ОффПланктон
 
13.11.12
15:02
да ладно, я новичок, и в этом не сильно разбираюсь, и очень благодарен когда отвечаете на мои глупые вопросы (хотя для меня не глупые)
2 + 2 = 3.9999999999999999999999999999999...