Имя: Пароль:
1C
1С v8
v8: Построитель отчета. Отбор
,
0 МаксимБел
 
20.05.13
09:49
Вот код:
1 МаксимБел
 
20.05.13
09:50
ТекстЗапроса = "ВЫБРАТЬ
                  |    брт_ТоварыВРезервеОстатки.Номенклатура,
                  |    брт_ТоварыВРезервеОстатки.Склад,
                  |    брт_ТоварыВРезервеОстатки.Контрагент,
                  |    брт_ТоварыВРезервеОстатки.Партия,
                  |    брт_ТоварыВРезервеОстатки.ДокументРезерва,
                  |    брт_ТоварыВРезервеОстатки.КоличествоОстаток
                  |{ВЫБРАТЬ
                  |    брт_ТоварыВРезервеОстатки.Номенклатура,
                  |    брт_ТоварыВРезервеОстатки.Склад,
                  |    брт_ТоварыВРезервеОстатки.Контрагент,
                  |    брт_ТоварыВРезервеОстатки.Партия,
                  |    брт_ТоварыВРезервеОстатки.ДокументРезерва,
                  |    брт_ТоварыВРезервеОстатки.КоличествоОстаток}
                  |ИЗ
                  |    РегистрНакопления.брт_ТоварыВРезерве.Остатки(&Дата, Организация = &Организация) КАК брт_ТоварыВРезервеОстатки";
   ПостроительОтчета.Параметры.Вставить("Организация", Организация);
   ПостроительОтчета.Параметры.Вставить("Дата", Дата);
   ПостроительОтчета.Текст = ТекстЗапроса;
   Для Каждого ДоступноеПолеОтбора Из ПостроительОтчета.Отбор.ПолучитьДоступныеПоля() Цикл
       ЭлементОтбора = ПостроительОтчета.Отбор.Добавить("ДокументРезерва");
       ЭлементОтбора.Использование = Ложь;
   КонецЦикла;

Вот ошибка:
Ошибка при вызове метода контекста (Добавить)
       ЭлементОтбора = ПостроительОтчета.Отбор.Добавить("ДокументРезерва");
по причине:
Недопустимое значение параметра (параметр номер '1')

В чем проблема?
2 ZanderZ
 
20.05.13
09:50
да... тут не только мозг сломаешь...
3 Ненавижу 1С
 
гуру
20.05.13
09:51
в том, что нет такого отбора в тексте запроса?
4 МаксимБел
 
20.05.13
09:51
В доступных полях "ДокументРезерва" присутствует.
5 МаксимБел
 
20.05.13
09:51
(3) Ну нету. Так я и хочу его добавить
6 1Сергей
 
20.05.13
09:52
(1)  в том, что ты несколько раз добавляешь один и тот же отбор
7 cw014
 
20.05.13
09:52
Для Каждого ДоступноеПолеОтбора Из ПостроительОтчета.Отбор.ПолучитьДоступныеПоля() Цикл
       ЭлементОтбора = ПостроительОтчета.Отбор.Добавить("ДокументРезерва");
       ЭлементОтбора.Использование = Ложь;
   КонецЦикла;


Вот это поясни для чего нужно
8 МаксимБел
 
20.05.13
09:52
(6) Это тестил. Не обращайте внимания
9 МаксимБел
 
20.05.13
09:53
Когда делаю так: ПостроительОтчета.ЗаполнитьНастройки();
"ДокументРезерва" в отбор попадает
10 cw014
 
20.05.13
09:53
В тексте запроса укажи явно те поля, которые должны быть в отборе
11 dmpl
 
20.05.13
09:53
(1) Т.е. ты несколько раз пытаешься один и тот же отбор добавить?
12 МаксимБел
 
20.05.13
09:53
(10) Как? Подскажите, если не сложно.
13 1Сергей
 
20.05.13
09:54
(8) убери цикл
14 МаксимБел
 
20.05.13
09:54
(11) читай (8)
15 МаксимБел
 
20.05.13
09:54
Да не в цикле дело. Оно на первом проходе вылетает.
16 dmpl
 
20.05.13
09:55
(15) Дык может там этот отбор уже есть...
17 cw014
 
20.05.13
09:55
...
{ГДЕ
брт_ТоварыВРезервеОстатки.Номенклатура.*,
                  |    брт_ТоварыВРезервеОстатки.Склад.*,
                  |    брт_ТоварыВРезервеОстатки.Контрагент.*,
                  |    брт_ТоварыВРезервеОстатки.Партия.*,
                  |    брт_ТоварыВРезервеОстатки.ДокументРезерва.*}"
18 МаксимБел
 
20.05.13
10:00
(17) Спасибо. Помогло. Хотя не понятно, почему в этом случае нормально отрабатывала функция ПостроительОтчета.ЗаполнитьНастройки();
Ну да ладно.
Еще раз спасибо. :)