#0
by MiniMuk
В универсальном отчете есть список предопределенных отборов Как мне перед выполнением проверить если есть отбор, до добавить это условие в запрос. Сам запрос отрабатывает нормально, отбор на этапе вывода тоже отрабатывает, но вопрос в длительности. Без отбора в запросе он отрабатывает около двух - трех минут, с отбором меньше 30 сек. Причина запрос состоит из 7 запросов. Отбор в первом запросе сильно сужает выборку. Причем отбор всегда заполнен, вопрос как в коде понят чем нужно чтото вроде понять где взять СкладНаФорме
#2
by catena
Можно прям в запросе в условии "Где склад = &Склад или &Склад = Значение(Справочник.Склады.ПустаяСсылка)" И потом просто параметр.
#3
by MiniMuk
, Все клево, вот только как параметр склад получить с элемента формы я допереть не могу
#4
by MiniMuk
что только не перебирал ЭтотОбъект.КомпоновщикНастроек.Настройки.Выбор.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеОбъекты.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Выбор.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.ДоступныеПоляВыбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.ДоступныеПоляОтбора.Элементы ЭтотОбъект.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.ДоступныеПоляОтбора.Элементы нигде не вижу
#5
by Defender aka LINN
А для нахрена это делать, если построитель сам, без помощи корявых программерских рук, отбор преобразует в условия в тесте запроса и, опять же, сам, устанавливает параметры?
#6
by catena
Так все-таки универсальный отчет или СКД? Лучше всего добавить свой склад в реквизиты обработки.
#7
by MiniMuk
Я же писал, отбор производится на стадии вывода, вам это ни очем не говорит? Сам он запрос не редактирует потому что там этого отбора нет. Это универсальный отчет, пользователям он нравиться и пользоваться они им более менее научились по сравнению с СКД. Я никакие реквизиты в обработку не добавляю, только сам запрос и предопредленные параметры
#8
by catena
Так это дополнительное поле на форме или хотите использовать отбор? Почему не добавить на этот запрос условие построителя, чтобы он в запросе БЫЛ?
#9
by MiniMuk
Это дополнительный обор УниверсальныйОтчет.ДобавитьОтбор("Склад"); Так же для пользователя это является быстрым обором. Теоретически( но только теоретически) они его всегда заполняют, если я отбор добавлю в запрос параметро и не заполню будет ошибка
#10
by Defender aka LINN
"отбор производится на стадии вывода" - это как вообще? И какая религия мешает сделать это нормальным, человеческим отбором?
#13
by MiniMuk
как я работаю с универсальным отчетом Пишу запрос, устанавливаю предопределеные отборы, выводимые поля, форматирование. Все. Если в запросе ставлю условие типа |ГДЕ | битМатрицаВSKUМатрица.Ссылка = &Ссылка то без установки параметра будет ошибка запроса. Поэтому условие надо добавить если параметр выбран
#16
by Defender aka LINN
Ну и мне до сих пор интересно, как построитель понимает тип отбора, если он "производится на стадии вывода" и, собственно, КАК он производится
#17
by catena
Смотри в итоговом запросе: Это значит все эти поля могут быть выбраны в отборе построителя и этот отбор будет работать только при наличии выбора. Теперь там, где тебе надо, сделай так же.
#18
by Defender aka LINN
Открываешь конструктор запросов, вкладка "Построитель". Документацию сам ищи, в мануале все есть
#19
by MiniMuk
Ага, склад там есть. Но если я строю запрос и в запросе указываю конкретный склад до выполнения запроса он выполняется на порядок быстее чем если указываю в отборе. Как я понимаю работает постоитель, он выполняет весь запрос. И на этапе вывода собирает данные по отборам. Но дело в том что запрос уже выполнен. И в него попало куча ненжных данных, постоитель их отборосит. Но если склад указать с самом первом запросе [1c] ТекстЗапроса = "ВЫБРАТЬ | битМатрицаВSKUМатрица.КатегорияСкладов КАК КатегорияСкладов, | битКатегорииСкладовДляМатрицыВSKUСклады.Склад КАК СкладКатегорииСкладов, | битМатрицаВSKUМатрица.КатегорияТоваров, | битКатегорииТоваровДляМатрицыВSKUТовары.Номенклатура КАК НоменклатураКатегорииТоваров, | СУММА(битМатрицаВSKUМатрица.SKU) КАК SKU_План, | битМатрицаВSKUМатрица.Ссылка |ПОМЕСТИТЬ Матрица |ИЗ где склад = &мойпараметр [1c] то запрос выполняется быстрее потому что сбор данных идет по более узкому кругу данны.
#20
by MiniMuk
Универсальный отчет работает на базе построителя, без него не взлетает, тоесть как минимум про постоитель я в курсе
#21
by MiniMuk
Если я тебя правильно понял мне в первый запрос добавить постоитель, примерно так [1c] |ПОМЕСТИТЬ Матрица |{ВЫБРАТЬ | КатегорияСкладов.*, | СкладКатегорииСкладов.*, | КатегорияТоваров.*} [1c]
#22
by Defender aka LINN
"Как я понимаю работает постоитель, он выполняет весь запрос. И на этапе вывода собирает данные по отборам" - вот мне до сих пор интересно - откуда взялся этот бред? И поячему в него так охотно верят, а начинаешь доказывать, что это не так - ни в какую. "тоесть как минимум про постоитель я в курсе" - друх, ты же не умеешь писать запросы для построителя, как же это ты в курсе?
#25
by Defender aka LINN
Потому что он ответа ждет, который можно не включая моск использовать. Вот и не включает
#27
by MiniMuk
Прмерно понятно, пошел тестить. Еще вопрос И поячему в него так охотно верят, а начинаешь доказывать, что это не так - ни в какую. Какие доказательства есть по этму утверждению, это описано в документации? потверждается тестами?
#28
by Defender aka LINN
Вот и я о том же ж. А ты много доказательств требовал перед тем, как уверовать в бред? А с меня теперь требуешь.
#29
by MiniMuk
Не требую, просто если писал - то может быть под рукой. Уверовал когда сравнил работу с фшитым отбором и без него. Про построитель на первом этапе запроса не подумал. Почитаю про постоитель
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как работает универсальный двигатель регистров?
- Универсальный отчет не выводит мой показатель.
- Зачем нужен отбор "В интервале", если есть отбор "больше" и "меньше"?
- Универсальный отчет
- Универсальный подбор и обработка объектов
- Универсальный отчет - отбор по группировке
- Универсальный обмен данными XML для 8.2
- Универсальный отбор для динамического списка
- Универсальный универсальный формат 1.3
В этой группе 1С
- Управляемое приложение. СКД. Установка доступных значений параметра
- перенос из ПАРУСа в 1С
- Парсер страниц сайта
- собираем сервер для 1с
- УТ 10.3 флажек "отображать в регламентированном учете" у организации
- v8: УНФ Украина. Как включить украинский язык для печатных форм документов?
- Как из типа Тип("ДокументСсылка.АвансовыйОтчет") получить строку "ДокументСсылка
- ЗУП. Корректировка командировки
- СКД неправильно сворачивает суммы, увеличивает
- Движения документа по субконто
- Frontol для Win32 Очень долгая загрузка данных
- Переход с Бухгалтерии на БСО
- вывести макет на печать (управляемые формы)
- Вид договора в 1С8.3
- Формула Excel из 1C
- Закрытие месяца в УНФ
- Получить значение из общей формы
- не создаётся COM объект (BioPDF.PDFPrinterSettings) что подкрутить?
- Агрегаты оборотных регистров
- Камин. Где может прятаться запрет на редактирование документа.