|
Получить и использовать настройку отбора компоновки данных | ☑ | ||
---|---|---|---|---|
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) Да у меня там запросик простой, построитель нет смысла исользовать, да и вариантов условий в принципе не много, придется вручную прописать. А идею приму к сведению, мало ли как еще придется изголяться) Спасибо за помощь! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |