Имя: Пароль:
1C
1С v8
Отбор в построителе отчета
0 Realist_x1
 
22.03.12
11:40
Имеется отчет. В нем не работали часть отборов. Выяснил, что отборы не работали в такой конструкции

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ЗаказыПокупателейОстатки.Номенклатура,
   ЗаказыПокупателейОстатки.Номенклатура.Категория
ИЗ
   РегистрНакопления.ЗаказыПокупателей.Остатки(&ЗаказыПокупателейДата, ЗаказПокупателя.Организация = &организация {(ВЫБОР
               КОГДА Номенклатура.ПриоритетПродажи > 0
                   ТОГДА Номенклатура.АналогНоменклатуры
               ИНАЧЕ Номенклатура
           КОНЕЦ).* КАК ЗаказыПокупателейНоменклатура}) КАК ЗаказыПокупателейОстатки

Если конструкцию заменить на

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ЗаказыПокупателейОстатки.Номенклатура,
   ЗаказыПокупателейОстатки.Номенклатура.Категория
ИЗ
   РегистрНакопления.ЗаказыПокупателей.Остатки(&ЗаказыПокупателейДата, ЗаказПокупателя.Организация = &организация
   {Номенклатура).* КАК ЗаказыПокупателейНоменклатура}) КАК ЗаказыПокупателейОстатки

то отбор работает.
В обоих случаях отбор довабляется программно и выглядит:

Отбор = ПостроительОтчета.Отбор.Добавить("ВнутренниеЗаказыНоменклатура.Категория");
Отбор.Использование = Истина;
Отбор.ВидСравнения = ?(ВклКатегориюД,ВидСравнения.Равно, ВидСравнения.НеРавно);
Отбор.Значение = Перечисления.ABCDКлассификация.DКласс;
1 Realist_x1
 
22.03.12
11:41
прошу прощения. отбо добавляется, как

Отбор = ПостроительОтчета.Отбор.Добавить("ЗаказыПокупателейНоменклатура.Категория");
Отбор.Использование = Истина;
Отбор.ВидСравнения = ?(ВклКатегориюД,ВидСравнения.Равно, ВидСравнения.НеРавно);
Отбор.Значение = Перечисления.ABCDКлассификация.DКласс;
2 Realist_x1
 
22.03.12
11:42
Ну и вопрос - почему в первом случае отбор не работает?
3 Fragster
 
гуру
22.03.12
11:43
(2) посмотри сгенерированный текст запроса и всё станет понятно
4 Господин ПЖ
 
22.03.12
11:43
разрешаю покурить текст запроса который на самом деле выполняет 1С...
5 Realist_x1
 
22.03.12
11:50
Покурил ранее. Разумеется, там этого параметра и в помине нет.
6 Realist_x1
 
22.03.12
11:51
Переформулируме - почему параметр там не возникает ?
7 Господин ПЖ
 
22.03.12
11:54
1С не в силах переварить case в построителе... стало ли от этого легче?
8 Realist_x1
 
22.03.12
11:55
Да. Спасибо.
9 Fragster
 
гуру
22.03.12
12:06
(7) у меня вот так работает:

{ГДЕ
   |    (ВЫБОР
   |            КОГДА СчетФактура.Ссылка ЕСТЬ НЕ NULL
   |                ТОГДА ИСТИНА
   |            ИНАЧЕ ЛОЖЬ
   |        КОНЕЦ) КАК Опт}
Ошибка? Это не ошибка, это системная функция.