Имя: Пароль:
1C
1С v8
Непонятнки с посроителем запроса. Растолукйте плз.
0 megabax
 
25.08.13
13:07
Делаю вот так:
    Построитель = Новый ПостроительЗапроса();
    Построитель.Текст=
    "ВЫБРАТЬ
    |    Номенклатура.Код,
    |    Номенклатура.Наименование,
    |    Номенклатура.БазоваяЕдиницаИзмерения
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |{ГДЕ
    |    Номенклатура.БазоваяЕдиницаИзмерения.*}
    |"
    ;
    Построитель.ЗаполнитьНастройки();
    Отбор=Построитель.Отбор;
    лНом=Отбор.Найти("БазоваяЕдиницаИзмерения");
    лНом=Отбор.Добавить("БазоваяЕдиницаИзмерения");    
    лНом.Значение=ЕдиницаИзмерения;
    лНом.ВидСравнения=ВидСравнения.Равно;
    лНом.Использование=НЕ ЕдиницаИзмерения.Пустая();
    Построитель.Выполнить();
    Построитель.Результат.Выгрузить().ВыбратьСтроку();

Работает.
Закоментил строчки
"    |{ГДЕ
    |    Номенклатура.БазоваяЕдиницаИзмерения.*}
"
все равно работает.
Тогда в  чем смысл этих строчек, поясните плз.
1 HEKPOH
 
25.08.13
13:14
Эти строчки - расширение языка запросов.
В данном случае - возможность фильтра по любому реквизиту атрибута БазоваяЕдиницаИзмерения

Расширение языка запросов - опциональный механизм
2 megabax
 
25.08.13
13:49
(1) А где вообще эти строчки можно применить, для чего они?
Я делаю например вот так:
    Построитель.Текст=
    "ВЫБРАТЬ
    |    Номенклатура.Код,
    |    Номенклатура.Наименование,
    |    Номенклатура.БазоваяЕдиницаИзмерения
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    //|{ГДЕ
    //|    Номенклатура.БазоваяЕдиницаИзмерения.*}
    |"
    ;
    Построитель.ЗаполнитьНастройки();
    Отбор=Построитель.Отбор;
    лНом=Отбор.Добавить("БазоваяЕдиницаИзмерения.Наименование");    
    лНом.Значение="кг";
    лНом.ВидСравнения=ВидСравнения.Содержит;
    лНом.Использование=истина;
    Построитель.Выполнить();
    Построитель.Результат.Выгрузить().ВыбратьСтроку();

Тут опять же эти строчик заремлены, и все равно работает. Почему?
2 + 2 = 3.9999999999999999999999999999999...