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