![]() |
![]() |
|
Подскажите как добавить отбор Построителю отчета. | ☑ | ||
---|---|---|---|---|
0
Grinspen
28.06.10
✎
16:28
|
ПостроительЗатрат = Новый ПостроительОтчета;
ПостроительЗатрат.Текст = "ВЫБРАТЬ | СтатьиЗатрат.Ссылка КАК СтатьяЗатрат |ИЗ | Справочник.СтатьиЗатрат КАК СтатьиЗатрат |ГДЕ | (НЕ СтатьиЗатрат.ЭтоГруппа)"; ПостроительЗатрат.УстановитьНастройки(); //Нужно добавить построителю еще и отбор. ПостроительЗатрат.Отбор.Добавить(); //не хочет работать... |
|||
1
shuhard_серый
28.06.10
✎
16:30
|
(0) {} тебя спасут
|
|||
2
Grinspen
28.06.10
✎
16:33
|
(1) вообще-то у меня два построителя отчета. один с отбором и текстом.
другой я создаю с другим текстом запроса, и хочу передать ему отбор первого построителя, по идее хотелось бы просто добавить второму отбор и заполнить его методом ЗаполнитьЗначенияСвойств() |
|||
3
Grinspen
28.06.10
✎
16:34
|
вписывать содержимое готового отбора в {} как то неудобно.
|
|||
4
Grinspen
28.06.10
✎
16:35
|
объясните ктонить почему ПостроительЗатрат.Отбор.Добавить(); не работает, все ругается на неверное значение параметра 1, я там строкой указываю имя поля.
|
|||
5
Alex_MA
28.06.10
✎
16:43
|
(0)
Если ПостроительОтчета.Отбор.Найти("ЗаказКонтрагент") = Неопределено Тогда ПостроительОтчета.Отбор.Добавить("ЗаказКонтрагент", "ЗаказКонтрагент", "Заказ покупателя контрагент"); ПостроительОтчета.Отбор.ЗаказКонтрагент.Установить(ОтборКонтрагент); Иначе ПостроительОтчета.Отбор.ЗаказКонтрагент.Установить(ОтборКонтрагент); КонецЕсли; ПостроительОтчета.Отбор.ЗаказКонтрагент.Использование = Ложь; |
|||
6
Alex_MA
28.06.10
✎
16:46
|
(4)а в доступных полях есть поле, которое ты в отбор пытаешься "втитюхать" ?
|
|||
7
Grinspen
28.06.10
✎
18:11
|
ПостроительЗатрат = Новый ПостроительОтчета;
ПостроительЗатрат.Текст = "ВЫБРАТЬ | СтатьиЗатрат.Ссылка КАК СтатьяЗатрат |ИЗ | Справочник.СтатьиЗатрат КАК СтатьиЗатрат |ГДЕ | (НЕ СтатьиЗатрат.ЭтоГруппа)"; ПостроительЗатрат.ДоступныеПоля.Добавить("СтатьяЗатрат",Истина); сзОтбор = ПостроительЗатрат.Отбор; сзОтбор.Добавить("СтатьяЗатрат"); сзОтбор["СтатьяЗатрат"].Использование = Истина; сзОтбор["СтатьяЗатрат"].Значение = ПостроительОтчета.Отбор.СтатьяЗатрат.Значение; сзОтбор["СтатьяЗатрат"].ВидСравнения = ПостроительОтчета.Отбор.СтатьяЗатрат.ВидСравнения; ПостроительЗатрат.ЗаполнитьНастройки(); ПостроительЗатрат.Выполнить(); ТабРезультат = ПостроительЗатрат.Результат.Выгрузить(); Да, в доступных полях есть так или иначе ругается на метод сзОтбор.Добавить("СтатьяЗатрат"); неверный тип параметра 1?!? |
|||
8
Grinspen
28.06.10
✎
18:19
|
Вообще задача заключается в том что на форме эл. спр. есть поле отбора построителя, при открытии его настройки и отборы восстанавливаются из хранилища, при закрытии сохраняются туда. Мне нужно при записи вытащить из отбора этого построителя его элементы и выполнить свой запрос. Не хотелось бы ковырять строки таблицы отбора, там виды сравнений могут быть и в списке, и в иерархии, и не в иерархии... и т.п. хочу использовать этот отбор и выполнить свой запрос уже с ним.
|
|||
9
azernot
28.06.10
✎
18:26
|
ПостроительЗатрат.Текст = "ВЫБРАТЬ
| СтатьиЗатрат.Ссылка КАК СтатьяЗатрат |ИЗ | Справочник.СтатьиЗатрат КАК СтатьиЗатрат |ГДЕ | (НЕ СтатьиЗатрат.ЭтоГруппа) |{ГДЕ | СтатьиЗатрат.Ссылка.* КАК СтатьяЗатрат}" Советую обратить внимание на вкладку "Построитель" в конструкторе запросов. |
|||
10
luns
28.06.10
✎
18:31
|
Если " и выполнить свой запрос" то метод построителя ПолучитьЗапрос();
Если "ытащить из отбора" то метод построителя ПолучитьНастройки(); |
|||
11
Grinspen
29.06.10
✎
06:03
|
(9) Спасибо, вот точно вредно по ночам работать, утром посмотрел я оказывается пытался отбор создать до заполнения настроек с текстом запроса, и без указания поля построителя в запросе :))
|
|||
12
Grinspen
29.06.10
✎
06:06
|
// вот так правильно.
ПостроительЗатрат = Новый ПостроительОтчета; ПостроительЗатрат.Текст = "ВЫБРАТЬ | СтатьиЗатрат.Ссылка КАК СтатьяЗатрат |{ВЫБРАТЬ | СтатьяЗатрат.*} |ИЗ | Справочник.СтатьиЗатрат КАК СтатьиЗатрат |ГДЕ | (НЕ СтатьиЗатрат.ЭтоГруппа) |{ГДЕ | СтатьиЗатрат.Ссылка.*} |{УПОРЯДОЧИТЬ ПО | СтатьяЗатрат.*}"; ПостроительЗатрат.ДоступныеПоля.Добавить("СтатьяЗатрат",Истина); ПостроительЗатрат.ЗаполнитьНастройки(); сзОтбор = ПостроительЗатрат.Отбор; сзОтбор.Добавить("СтатьяЗатрат"); сзОтбор["СтатьяЗатрат"].Использование = Истина; сзОтбор["СтатьяЗатрат"].ВидСравнения = ПостроительОтчета.Отбор.СтатьяЗатрат.ВидСравнения; сзОтбор["СтатьяЗатрат"].Значение = ПостроительОтчета.Отбор.СтатьяЗатрат.Значение; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |