СКД и Построитель #366893


#0 by ОператорПК
В построителеле фильтры работали так что в подзапросы "не лезли" в СКД "лезут"... как сделать так чтобы запрос в СКД отрабатывал также как и в построителе? Пример: Без фильтров запрос:    ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход2 АВТОУПОРЯДОЧИВАНИЕ выдает одинаковые таблицы (и в построителе и в СКД не отличиш) ну в СКД естественно запрос задается без итогов (это мелочи)... Если в настройках построителя (интерфейсно - пользователем) задать отбор по номенклатуре например Номенклатура=Холодильник (из демо базы УПП) то КоличествоПриход1 =0 везде а КоличествоПриход2<>0 т.к. подзапрос не фильтровался по выбраной настройке пользователем... В СКД ситуация другая КоличествоПриход1 =0 и КоличествоПриход2 =0 делаю вывод: фильт выбранный пользователем распростаняется и на подзапрос..... а мне как раз этого не надо.... какие будут предложения?
#1 by DmitrO
В СКД снять флажок автозаполнения, и прописать фильтры руками там где надо.
#2 by ОператорПК
всю схему компоновки облазил..... не могу найти флаг "автозаполнения" на какой он закладке?
#3 by MoneG
Вкладка "Наборы данных" - в самом низу.
#4 by ОператорПК
флаг убрал, исчезли все поля, хочу поля прописать (не знаю даст ли это эффект если речь идет про фильтры) но дает ввести только новую папку но не поле, хрен с ним завожу все поня "папками" при формировании выдает ошибку "Поле не найдено" (на первое расчетное поле) (флаг "поле" проставил у каждой папки)
#5 by MoneG
, честно говоря, не знаю, что именно хотел сказать .. Попробуй "фильтры" разными именами описать. Хотя, может, я чего недопонял в ?
#6 by ОператорПК
(50 сейчас убрал поле номенклатура из подзапроса вообще...... все равно фильтрует    ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход2
#7 by ОператорПК
как все таки заполнять поля если снят флаг "автозаполнение" у меня получается добавлять тока группы (папки)...
#8 by MoneG
не могу понять, что ты хочешь получить.. как выглядит текст для построителя?
#9 by MoneG
НЕ папку (а поле) можно добавить Инсертом ;)
#10 by ОператорПК
вот что написано в (О) для наглядности - один и тот же запрос работает по разному в построителе и СКД: Построитель:              Количество  Количество1 Количество2   Склад 1           10           0          2 Номенклатура1    4            0          2 Номенклатура2    6            0          0 СКД:              Количество  Количество1 Количество2   Склад 1           10           0          0 Номенклатура1    4            0          0 Номенклатура2    6            0          0 т.е. построитель не фильтрует подзапрос а СКД лезет и в него....
#11 by ОператорПК
НЕ папку (а поле) можно добавить Инсертом ;) - вот спасибо..... да 1це респект...... в выпадающем меню можно дабавить только папку.... рульно сделали...
#12 by ОператорПК
....... госпади боже... надобавлял полей Одно из них называется Поле2 все остальные Поле1..... имя сменить не дает......... удалить поле не дает... писец
#13 by ОператорПК
не могу понять, что ты хочешь получить - получить хочу вот что: есть регистр (все равно какой) в нем предположим 2 измерения (Склад, Номенклатура) один ресурс (Количество) ведаю выборку в подзапросе получаю таблицу Склад Количество (по некоторой номенклатуре которую програмно задаю как параметр запроса)  в общем запросе например делю текущее количество на то которое получил в подзапросе - все работает пока нет фильтров (например пользователь хочет получить тоже самое только по одной группе номенклатуры и тут в построителе подзапрос как работал автономно так и работает (по одной номенклатуре фильтрует) а в СКД тот же запроса накладывает новый фильтр (по группе на подзапрос) и я получаю не то что хочу..
#14 by MoneG
посоветую только на вкладке "Ресурсы" задать выражение для Количество2, в котором будет что-то типа "ВЫБОР КОГДА.."
#15 by ОператорПК
нето
#16 by MoneG
покежь текст для построителя - туплю :)
#17 by DmitrO
ну вы чо блин, тут байду развели.. вручную поля вот так добавлять:    КоличествоПриход2 }
#18 by DmitrO
фильтр подставь сам где надо, я не очень понял что всетаки нужно..
#19 by ОператорПК
а что дает вот это:    КоличествоПриход2 } ? Про "фильтр подставь сам где надо" - вообще не понял он и так стоит где надо Номенклатура = &НоменклатураОсобая проблема с тем фильтром который юзер интерактивно добавляет - он портит всю малину.
#20 by MoneG
так ты юзеру юзерский фильтр давай, а там, где нужен не юзерский - свой ставь.
#21 by ОператорПК
+ кароче беда в том что фильтр Номенклатура = &НоменклатураОсобая в подзапросе "не понимает" фильт который юзер руками добавляет (как я понял они работают как Номенклатура = &НоменклатураОсобая +новый фильтр) - так работает в СКД в построителе даже если юзер надобавлял фильров то в подзапросах все работало как Номенклатура = &НоменклатураОсобая..... а юзерские фильры накладывались на результат запроса.... короче не лезли в процессе выполнения
#22 by ОператорПК
"так ты юзеру юзерский фильтр давай, а там, где нужен не юзерский - свой ставь." - точно так и делаю
#23 by DmitrO
пляяя, ребята, вы откуда такие.. чо первый раз чтоли с компоновкой?
#24 by DmitrO
по какой из таблиц надо фильтр добавить?
#25 by MoneG
Оператор. всё равно ничего не понятно. приведи текст запроса для твоего Построителя, в котором "всё правильно работает", чтобы понять, что должно получиться..
#26 by DmitrO
это какраз добавляет поля (автозаполнение отключи)
#27 by DmitrO
теперь понял
#28 by ОператорПК
поля не добавились (какие были до конструкции такие и остались), автозаполнение отключено... тока не пойму чево дальше делать.... текст для построителя ВЫБРАТЬ    ПартииТоваровНаСкладахОбороты.Номенклатура КАК Номенклатура,    ПартииТоваровНаСкладахОбороты.КоличествоПриход КАК КоличествоПриход,    ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход2    Склад
#29 by ОператорПК
пляяя, ребята, вы откуда такие.. чо первый раз чтоли с компоновкой? - да с компоновкой первый раз.
#30 by Долорес И
наверно, имеется в виду  во внешнем запросе добавить фильтр, как в построителе делали: {ГДЕ Номенклатура.*}
#31 by DmitrO
тебе надо вот так еще написать, и будет как у тебя в построителе: к моему вконце добавить: {где ПартииТоваровНаСкладахОбороты.Номенклатура.* как Номенклатура}
#32 by DmitrO
тока это неэффективно и вцелом не правильно :)
#33 by ОператорПК
прогони текст через "консоль отчетов" -увидиш что Количество 2 не пусто даже если руками юзер добавить фильтров а в СКД оказывается пустым....
#34 by ОператорПК
написал: ВЫБРАТЬ    ПартииТоваровНаСкладахОбороты.Номенклатура КАК Номенклатура,    ПартииТоваровНаСкладахОбороты.КоличествоПриход КАК КоличествоПриход,    ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход2
#35 by ОператорПК
ВЫБРАТЬ    КоличествоПриход2 } тоже не пашет.................
#36 by ОператорПК
"тока это неэффективно и в целом не правильно :)" - в данном случае мне нужно чтобы фильтр юзерский именно после выборки работал а не в момент ее.... хотя чето не пашет.......
#37 by DmitrO
а чо говорит?
#38 by ОператорПК
+ к тому же раз в построителе так работало и никто не умирал.... значит и здесь будет номано (если заработает).
#39 by ОператорПК
"а чо говорит? " строит как и раньше с пустым Количество 2
#40 by DmitrO
чета я ничо не понимаю.. чем будет отличаться Количество1 и Количество2, ведь одно и тоже написано, или я не прав?
#41 by ОператорПК
прогони текст через "консоль отчетов"  увидиш....
#42 by ОператорПК
+ с пользовательсвими фильтрами канеш...
#43 by ОператорПК
текст ровно одинаков но один в подзапросе и выдает другой результат если наложить пользовательские фильтра (интерактивно) - это свойство активно использовалось мной в построителе ... теперь решил освоить компоновку пока идет туго.
#44 by DmitrO
а текст из построителя в ?
#45 by ОператорПК
да
#46 by ОператорПК
+ мне в реальности количество1 и не надо его вставил для демонстрации эффекта который дает построитель а СКД нет.....
#47 by DmitrO
кажется я начинаю понимать.. но проверить щас не могу
#48 by ОператорПК
если понял... то чево делать СКД чтобы тот же эфект получить.... класная была идея:{где ПартииТоваровНаСкладахОбороты.Номенклатура.* как Номенклатура} но чето не работает 11 релиз платформы у меня.
#49 by DmitrO
вобщем, ты вот что попоробуй: при настройке компоновки, Условие задавай не на сам отчет, а на первую группировку
#50 by DmitrO
условие по номенклатуре я имею в виду
#51 by DmitrO
хотя нет.. все равно не понимаю
#52 by ОператорПК
попробывал - чето получилось (но не то что надо) странный эффект ... даже описать затрудняюсь.... вывел все склады, в полях вывел номенклатуру которую в пользовательских полях выбирал..... вобщем чето вообще не то..
#53 by ОператорПК
хотя нет.. все равно не понимаю - поймеш когда через "консоль отчетов"  сделаеш запрос из и его же на компоновке.....
#54 by DmitrO
давай уточним задачу, тебе нужен такой отчет: группировка Склад/Номенклатура, ресурсы Приход и ПриходПоОсобойНоменклатуре (он будет иметь одинаковое значение для всех записей номенклатуры на этом складе)
#55 by ОператорПК
да верно
#56 by ОператорПК
ОсобаяНоменклатура - есть параметр запроса
#57 by DmitrO
итог по складу по этому ресурсу кстати будет фигню показывать..
#58 by DmitrO
это я понял
#59 by ОператорПК
итог по складу по этому ресурсу кстати будет фигню показывать.. - хрен с ним мне важно принцып понять что нужно сделать чтобы пользовательские фильтры не влияли на подзапросы как в построителе
#60 by DmitrO
они и не влияют, точнее они влияют только когда стоит автозаполнение и идентификатор совпадает
#61 by ОператорПК
проверял без автозаполнения - не работает... а вот что значит "идентификатор совпадает" чьи идентификаторы совпадают?
#62 by DmitrO
Вот че хошь делай, а при отключенном автозаполнении так должно работать:    КоличествоПриход1 } ИЗ
#63 by Долорес И
может, как с построителем  - требуется сбросить прежние настройки, прежде чем формировать отчет с новыми? типа, скд "не видит" новый текст?
#64 by ОператорПК
такой запрос даже в построители ни давал ожидаемого результата... только с подзапросом
#65 by ОператорПК
х.з. буду пробывать настраивать каждый раз заново....
#66 by DmitrO
понимаешь, когда стоит автозаполнени, он в доступные поля сам включает все поля из ипользуемых таблиц и условия полим тоже включает и если есть возможность разместит условие внутри ВТ он его тоже размещает, и если идентификаторы полей совпадают то он считает это одним полем, т.о. если устанавливается фильтр по полю с идентификатором Номенклатура он его включает во все таблицы
#67 by DmitrO
правильнее сказать даже так: при совпадении иденификаторов, он считает это одним логическим полем данной схемы для пользователя.
#68 by ОператорПК
надо над этим покурить...
#69 by Garkin
С по все не осилил, не пинайте сильно если что не так, В СКД если заменить во второй строчке запроса фразу "КАК Номенклатура" на "Как НоменклатураТоваров" и отбор устанавливать по "НоменклатураТоваров" не поможет?
#70 by DmitrO
но все это только тогда, когда стоит Автозаполнение. Если оно не стоит то все будуд определять только фрагменты в фигурных скобках, но правило объелинения доступных полей полей настройки при совпадении иденификаторов остается.
#71 by DmitrO
да я вот какую-то подобную шнягу и за компоновкой замечал, она тоже не всегда как-то изменения принимает чтоли.. чета есть там, тоже
#72 by DmitrO
да так тоже можно
#73 by ОператорПК
в таком случае даже количество1 не 0...... ща попробую вкурить то ли получил что ожидал...
#74 by ОператорПК
+ ого кажись то что надо СПАСИБИЩЕ ВСЕМ ОГРОМНОЕ....... завтра продолжу втыкать ...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С