|
Универсальный отчет, Предопределенный отбор | ☑ | ||
---|---|---|---|---|
0
MiniMuk
20.11.13
✎
06:58
|
В универсальном отчете есть список предопределенных отборов
Как мне перед выполнением проверить если есть отбор, до добавить это условие в запрос. Сам запрос отрабатывает нормально, отбор на этапе вывода тоже отрабатывает, но вопрос в длительности. Без отбора в запросе он отрабатывает около двух - трех минут, с отбором меньше 30 сек. Причина запрос состоит из 7 запросов. Отбор в первом запросе сильно сужает выборку. Причем отбор всегда заполнен, вопрос как в коде понят чем нужно чтото вроде понять где взять СкладНаФорме
|
|||
1
Повелитель
20.11.13
✎
07:06
|
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
// Перед формирование отчета можно установить необходимые параметры универсального отчета. УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("Склад", Склад); УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент); КонецПроцедуры // СформироватьОтчет() |
|||
2
catena
20.11.13
✎
07:12
|
(0)Можно прям в запросе в условии
"Где склад = &Склад или &Склад = Значение(Справочник.Склады.ПустаяСсылка)" И потом просто параметр. |
|||
3
MiniMuk
20.11.13
✎
07:44
|
(1), (2) Все клево, вот только как параметр склад получить с элемента формы я допереть не могу
|
|||
4
MiniMuk
20.11.13
✎
07:47
|
что только не перебирал
ЭтотОбъект.КомпоновщикНастроек.Настройки.Выбор.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеОбъекты.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Выбор.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.ДоступныеПоляОтбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.ДоступныеПоляОтбора.Элементы нигде не вижу |
|||
5
Defender aka LINN
20.11.13
✎
07:54
|
(3) А для нахрена это делать, если построитель сам, без помощи корявых программерских рук, отбор преобразует в условия в тесте запроса и, опять же, сам, устанавливает параметры?
|
|||
6
catena
20.11.13
✎
07:54
|
(4)Так все-таки универсальный отчет или СКД? Лучше всего добавить свой склад в реквизиты обработки.
|
|||
7
MiniMuk
20.11.13
✎
08:01
|
(5) Я же писал, отбор производится на стадии вывода, вам это ни очем не говорит? Сам он запрос не редактирует потому что там этого отбора нет.
(6) Это универсальный отчет, пользователям он нравиться и пользоваться они им более менее научились по сравнению с СКД. Я никакие реквизиты в обработку не добавляю, только сам запрос и предопредленные параметры |
|||
8
catena
20.11.13
✎
08:05
|
(7)Так это дополнительное поле на форме или хотите использовать отбор? Почему не добавить на этот запрос условие построителя, чтобы он в запросе БЫЛ?
|
|||
9
MiniMuk
20.11.13
✎
08:07
|
(8) Это дополнительный обор
УниверсальныйОтчет.ДобавитьОтбор("Склад"); Так же для пользователя это является быстрым обором. Теоретически( но только теоретически) они его всегда заполняют, если я отбор добавлю в запрос параметро и не заполню будет ошибка |
|||
10
Defender aka LINN
20.11.13
✎
08:07
|
(7) "отбор производится на стадии вывода" - это как вообще?
И какая религия мешает сделать это нормальным, человеческим отбором? |
|||
11
catena
20.11.13
✎
08:09
|
(9)Ну добавляй не параметром, а построителем, в чем проблема?
|
|||
12
MiniMuk
20.11.13
✎
08:11
|
(11) Как постоителем добавить?
|
|||
13
MiniMuk
20.11.13
✎
08:13
|
как я работаю с универсальным отчетом
Пишу запрос, устанавливаю предопределеные отборы, выводимые поля, форматирование. Все. Если в запросе ставлю условие типа |ГДЕ | битМатрицаВSKUМатрица.Ссылка = &Ссылка то без установки параметра будет ошибка запроса. Поэтому условие надо добавить если параметр выбран
|
|||
14
Defender aka LINN
20.11.13
✎
08:16
|
(13) А ты про {} когда-нибудь слышал?
|
|||
15
MiniMuk
20.11.13
✎
08:17
|
(14) скажем нет, можешь быть первым кто ткнет в справку
|
|||
16
Defender aka LINN
20.11.13
✎
08:18
|
Ну и мне до сих пор интересно, как построитель понимает тип отбора, если он "производится на стадии вывода" и, собственно, КАК он производится
|
|||
17
catena
20.11.13
✎
08:18
|
(15)Смотри в итоговом запросе:
|{ГДЕ | Результат.КатегорияСкладов.*, | Результат.Склад.*, | Результат.SKU_Факт, | Результат.КоличествоОстаток, | Результат.SKU_План, | Результат.Матрица.*, | (Результат.SKU_Факт / Результат.SKU_План * 100) КАК Процент, | Результат.КатегорияТоваров.*} Это значит все эти поля могут быть выбраны в отборе построителя и этот отбор будет работать только при наличии выбора. Теперь там, где тебе надо, сделай так же. |
|||
18
Defender aka LINN
20.11.13
✎
08:21
|
(15) Открываешь конструктор запросов, вкладка "Построитель". Документацию сам ищи, в мануале все есть
|
|||
19
MiniMuk
20.11.13
✎
08:23
|
Ага, склад там есть. Но если я строю запрос и в запросе указываю конкретный склад до выполнения запроса он выполняется на порядок быстее чем если указываю в отборе.
Как я понимаю работает постоитель, он выполняет весь запрос. И на этапе вывода собирает данные по отборам. Но дело в том что запрос уже выполнен. И в него попало куча ненжных данных, постоитель их отборосит. Но если склад указать с самом первом запросе
|
|||
20
MiniMuk
20.11.13
✎
08:24
|
(18) Универсальный отчет работает на базе построителя, без него не взлетает, тоесть как минимум про постоитель я в курсе
|
|||
21
MiniMuk
20.11.13
✎
08:28
|
(17) Если я тебя правильно понял мне в первый запрос добавить постоитель, примерно так
|
|||
22
Defender aka LINN
20.11.13
✎
08:28
|
(19) "Как я понимаю работает постоитель, он выполняет весь запрос. И на этапе вывода собирает данные по отборам" - вот мне до сих пор интересно - откуда взялся этот бред? И поячему в него так охотно верят, а начинаешь доказывать, что это не так - ни в какую.
(20) "тоесть как минимум про постоитель я в курсе" - друх, ты же не умеешь писать запросы для построителя, как же это ты в курсе? |
|||
23
Defender aka LINN
20.11.13
✎
08:28
|
(21) Не ВЫБРАТЬ (хотя тоже можно, если осторожно), а ГДЕ
|
|||
24
catena
20.11.13
✎
08:29
|
(21)Ну почему же ВЫБРАТЬ то???
|
|||
25
Defender aka LINN
20.11.13
✎
08:32
|
(24) Потому что он ответа ждет, который можно не включая моск использовать. Вот и не включает
|
|||
26
MiniMuk
20.11.13
✎
08:34
|
|ПОМЕСТИТЬ Матрица
|{ВЫБРАТЬ | КатегорияСкладов.*, | СкладКатегорииСкладов.*, | КатегорияТоваров.*} |ИЗ | Справочник.битМатрицаВSKU.Матрица КАК битМатрицаВSKUМатрица | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.битКатегорииСкладовДляМатрицыВSKU.Склады КАК битКатегорииСкладовДляМатрицыВSKUСклады | ПО битМатрицаВSKUМатрица.КатегорияСкладов = битКатегорииСкладовДляМатрицыВSKUСклады.Ссылка | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.битКатегорииТоваровДляМатрицыВSKU.Товары КАК битКатегорииТоваровДляМатрицыВSKUТовары | ПО битМатрицаВSKUМатрица.КатегорияТоваров = битКатегорииТоваровДляМатрицыВSKUТовары.Ссылка |{ГДЕ | битМатрицаВSKUМатрица.SKU} |
|||
27
MiniMuk
20.11.13
✎
08:35
|
Прмерно понятно, пошел тестить.
Еще вопрос И поячему в него так охотно верят, а начинаешь доказывать, что это не так - ни в какую. Какие доказательства есть по этму утверждению, это описано в документации? потверждается тестами? |
|||
28
Defender aka LINN
20.11.13
✎
08:40
|
(27) Вот и я о том же ж. А ты много доказательств требовал перед тем, как уверовать в бред? А с меня теперь требуешь.
Да, подтверждается, да, описано (ВНЕЗАПНО, да?) |
|||
29
MiniMuk
20.11.13
✎
08:45
|
(28) Не требую, просто если писал - то может быть под рукой. Уверовал когда сравнил работу с фшитым отбором и без него. Про построитель на первом этапе запроса не подумал. Почитаю про постоитель
|
|||
30
MiniMuk
20.11.13
✎
08:57
|
Ах, ну да, всем учавствующим, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |