|
|
Получить и использовать настройку отбора компоновки данных |
☑ |
|
0
Блондинка_
24.09.14
✎
17:38
|
Добрый вечер!
Я домучила свой отчет с разузлованием номенклатуры программно и передачей данных в отчет на скд) Хотелось бы ускорить процесс разузлования, если пользователь задает определенную номенклатуру для которой хочет получить материалы. Пока что я разузловываю всю номенклатуру, которая есть в регистре основных спецификаций, а уже потом скд выполняет отбор.
Так вот перед формированием внешнего набора данных я хочу передать в условие запроса отбор, указанный в скд. Как преобразовать? Ведь то, что я получаю в настройках имеет тип ОтборКомпоновкиДанных, а мне нужно сделать из этого условие в запросе.
|
|
|
1
barrgand
24.09.14
✎
17:46
|
(0) Слабо представляю о чем речь, но думаю без цикла не обойтись.
|
|
|
2
Euguln
24.09.14
✎
17:48
|
Есть пример для построителя:
ДоступныеПоля = ОтборПостроителя.ПолучитьДоступныеПоля();
Для каждого ЭлементОтбора Из ОтборКомпоновщика.Элементы Цикл
Если ТолькоИспользуемые И НЕ ЭлементОтбора.Использование Тогда
Продолжить;
КонецЕсли;
ВидСравненияПостроителя = ПолучитьВидСравнения(ЭлементОтбора.ВидСравнения);
Если ДоступныеПоля.Найти(Строка(ЭлементОтбора.ЛевоеЗначение)) = Неопределено Тогда
Продолжить;
КонецЕсли;
НовоеПоле = ОтборПостроителя.Добавить(Строка(ЭлементОтбора.ЛевоеЗначение));
НовоеПоле.ВидСравнения = ВидСравненияПостроителя;
Если ТипЗнч(ЭлементОтбора.ПравоеЗначение) = Тип("СтандартнаяДатаНачала") Тогда
НовоеПоле.Значение = ЭлементОтбора.ПравоеЗначение.Дата;
Иначе
НовоеПоле.Значение = ЭлементОтбора.ПравоеЗначение;
КонецЕсли;
НовоеПоле.Использование = ЭлементОтбора.Использование;
КонецЦикла;
|
|
|
3
Блондинка_
24.09.14
✎
18:23
|
(2)
Все-таки это конец дня виноват!) Точно, элементы отбора-то я и не заметила, там есть все что мне нужно вытащить! Спасибо!
|
|
|
4
Блондинка_
25.09.14
✎
12:09
|
Очень помог последний код, почти получилось, но как проще "превратить" вид сравнения СКД в сравнение в запросе (например В Группе=В Иерархии). Функции ПолучитьВидСравнения в УПП точно нет. Должны же быть какие-то универсальные механизмы или придется переводить самой?
|
|
|
5
barrgand
25.09.14
✎
12:12
|
(4) Универсальных механизмов быть не может, т.к. это только частный случай.
|
|
|
6
ssh2QQ6
25.09.14
✎
12:21
|
(4) как написали уже, кодом только.
Однажды я так делал, отчет на скд, обычные формы. Для получения внешнего набора данных использовалось несколько запросов. Текст одного запроса я задал посторителю отчета, и на вкладке отборы компоновки заменил стандартное поле полем построителя и получал текст запроса с отборами как ПостроительОтчета.ПолучитьЗапрос. Но это опять же частный случай.
|
|
|
7
Блондинка_
25.09.14
✎
13:26
|
Жаль конечно. Странно, СКД ведь сама потом свои отборы в текст запроса переводит.
(6) Да у меня там запросик простой, построитель нет смысла исользовать, да и вариантов условий в принципе не много, придется вручную прописать. А идею приму к сведению, мало ли как еще придется изголяться)
Спасибо за помощь!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший