1С СКД Подчиненные элементы #787176


#0 by QWarLockQ
Всем привет. Возник казалось бы простой вопрос, но что-то не догоняю. В общем, есть отчет с выводом всех заказов (это важно), при раскрытии в отчете конкретного заказа отображаются счета и поступления по заказу (иерархия). Нужно к нему добавить фильтр, при котором выводились бы заказы, счета и поступления которых были заданы датой. Но. Проблема в том, что, когда я выставил этот фильтр, отображались вообще все заказы, но счета в них отображались только той датой, что я выставил. То есть есть заказы за год, я фильтр выставил, чтобы счета были за определенный месяц, и в итоге все заказы отображены, и только те счета, у которых выставлен фильтр с месяцем, в заказах отображаются. Вот. Собственно задача: вывести надо только те заказы, у которых выставлен фильтр счетов, а не вообще все заказы и только у некоторых бы были эти счета. Я так понял, чтобы так сделать, надо изменить способ соединения таблиц счетов и заказов, но тогда если мне не нужно фильтровать счета, то будут выводиться только заказы, у которых есть счета в принципе (у некоторых заказов счетов нет, но выводить их тоже надо).
#1 by QWarLockQ
Есть у кого умные мысли на этот счет?
#2 by DrZombi
МногоБуковокНеОсилил :) Добр человек, ты на картинке нарисуй, чего хочешь. А то из набора буковок не воспринимается, Утро, и лень :)
#3 by DrZombi
Ник, ВарЛок, из какой игры? :)
#4 by QWarLockQ
Да из всех, где он есть )
#5 by QWarLockQ
Сейчас нарисую
#6 by aleks_default
Иными словами, нужно чтобы отображались только те заказы, счета которых были созданы в заданный период. Показывай настройки и как отчет построен, какие там запросы наборы и связи между ними.
#7 by QWarLockQ
Параметры: Структура: Набор данных: Собственно пример отображения:
#8 by QWarLockQ
Заказ поставщику: ВЫБРАТЬ                 ИЗ                     Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика1 ГДЕ     ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
#9 by QWarLockQ
Счета на оплату и подчиненные:             Документ.СчетНаОплату КАК СчетНаОплату1 ГДЕ     ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода     И ВложенныйЗапрос.ПоступлениеНаСчет.Дата МЕЖДУ &ДатаПриходовФактНачало И &ДатаПриходовФактКон
#10 by QWarLockQ
Поступление в кассу: ВЫБРАТЬ ГДЕ     ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода     И ПоступлениеВКассу.Дата МЕЖДУ &ДатаПриходовФактНачало И &ДатаПриходовФактКон
#11 by QWarLockQ
С утра гусары спят ) Полуденный ап
#12 by bodri
схему скинь ещё
#13 by QWarLockQ
Оно?
#14 by bodri
нет, на вкладке "Наборы данных", в левом нижнем углу есть две кнопки, одна из них "Сохранить схему в файл"
#15 by QWarLockQ
Схема:
#16 by bodri
1. Можно попробовать это одним запросом сделать и при определенном условии меняется условие связи или в СКД поставить условие связи на вкладке "Связи наборов данных". 2. Если нужен фильтр не только по счетам, то и по заказам, значит в заказах тоже условие надо вставлять 3. Я так и не понял, где то условие которое должно отработать.
#17 by QWarLockQ
В один запрос если, кидать, то все плохо будет) (у меня предыдущие две темы по этому вопросу были) А условие выполняется на документы прихода (поступление на счет и поступление в кассу) и расхода (расход со счета) Вот при определенном условии как можно выставить различную связь?
#18 by QWarLockQ
Темы летят так быстро
#19 by aleks_default
Связь между наборами всегда левая, так что ИМХО тебе только все одним запросом делать. Условие связи по-моему действует только на поле, которое есть в обоих связываеемых наборах, а здесь не тот случай
#20 by QWarLockQ
Ну ладно, с этим понял. Мне ещё ошибка вылезает вот такая: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ИНАЧЕ ДокЗаказПокупателя.Контрагент <<?>>=Контрагент Из-за чего такое? В параметрах указал что Контрагент это справочник контрагентов. И пробовал Контрагент.Ссылка и просто Контрагент и чет не особо помогает
#21 by aleks_default
Сбрось настройки на стандартные. И вот это нахрен убери из запроса если контрагент это всегда ссылка, нафига его проверять на пустую строку? ИНАЧЕ...
#22 by QWarLockQ
Когда настройки сбрасываю, вот как раз тогда ошибка и вылезает. А суть проверки в том, что когда значение пустое, тогда не фильтровать по контрагентам
#23 by aleks_default
Я понял суть проверки. Я не понял причем тут пустая строка и неопределено если контрагент не составного типа. Короче исправляй.
#24 by QWarLockQ
Хорошо, спасибо )
#25 by QWarLockQ
А не, ошибка осталась
#26 by QWarLockQ
Она исчезает, если добавить и удалить контрагента в параметре
#27 by QWarLockQ
Господа знатоки, собственно со всей той штукой, что сверху, я разобрался. Но опять есть НО. Я соединяю например две таблицы вот так: ГДЕ     РП.Ссылка.Дата МЕЖДУ &ДатаПриходовФактНачало И &ДатаПриходовФактКонец И вот когда параметры не выставлены выводятся вообще все счета и расходы со счетов к ним присоединенные (далеко не всегда они соединены). Но стоит мне ввести параметры, то выводятся только те счета, к которым привязаны расходы со счетов, отфильтрованные по параметрам. А надо чтобы также выводились все счета и только отфильтрованные расходы со счетов. Не могу понять что не так, вроде всё верно выводит без параметров и соединения разные пробовал - не канает. Может это связано с тем, что я соединяю таблицу с табличной частью?
#28 by QWarLockQ
Иииии... Ап )
#29 by aleks_default
условие   РП.Ссылка.Дата МЕЖДУ &ДатаПриходовФактНачало И &ДатаПриходовФактКонец перенести в условия соединения
#30 by QWarLockQ
Не совсем понял где это
#31 by aleks_default
И РП.Ссылка.Дата МЕЖДУ &ДатаПриходовФактНачало И &ДатаПриходовФактКонец
#32 by desaint08
ну и как? решилось?
#33 by QWarLockQ
Нет, вывело только все счета
#34 by desaint08
если попробовать разделить ,один вложенный,и потом накладывать отбор?
#35 by QWarLockQ
Костыльно конечно, но попробовать можно. Но вообще, должен быть способ. Из-за чего так урезается? Фильтр идёт по Расшифровке платежа и он их фильтрует, но при этом связь как будто меняется с ЛЕВОЕ на ПРАВОЕ и присоединяются не ко всем счетам приходы, а к приходам счета. А до фильтра всё как надо отображается. Где-то какой-то подвох. "Истина где-то рядом..."
#36 by aleks_default
Не верю. Или ты хочешь не то что пишешь. Ты пишешь про расходы со счета, а в запросе у тебя поступление.?
#37 by QWarLockQ
В запросе объединение двух таблиц: Счет на оплату и Расход со счета. Должны отображаться счета, к счетам должны присоединиться расходы. Скрин:
#38 by QWarLockQ
А, да, уже путаюсь, я про поступления
#39 by aleks_default
Ну и где там условие на дату? Скопипасть туда полностью запрос из , а не кусок.
#40 by QWarLockQ
Условие на дату в Это весь запрос на этот блок со счетами и поступлениями
#41 by aleks_default
Ты троллишь что-ли? Я тебе говорю что на твоей картинке в текст запроса не полный, там нет фильтра на дату как в или , поэтому он тебе выдает все счета и все поступления к ним. Если в консоли вставищь ПОЛНОСТЬЮ текст запроса из , то результат будет тот который нужен.
#42 by QWarLockQ
Повторюсь. Если вставить из запрос, то выведутся только счета, к которым присоединены отфильтрованные приходы на счет, а не вообще ВСЕ счета, у которых есть отфильтрованные приходы. У нас, видать, взаимонепонимание. Давайте ещё раз объясню. Есть счета, есть приходы на счет, я их соединяю. Когда соединяю без фильтра, то ко всем счетам присоединяются приходы, у которых есть связь. НО. Стоит мне выставить фильтр на ПРИХОДЫ, как на выходе выводится только счета, у которых есть отфильтрованные приходы. А должны отображаться также все счета, только приходов меньше будет, так как они отфильтрованы. Ещё на цифрах объясню: если есть 100 счетов и 30 приходов, то без фильтра отразиться все 100 счетов и 30 приходов к ним присоединенных. А если поставить фильтр на эти приходы и их окажется, что приходов отфильтрованных 15, то отобразиться 15 счетов и 15 отфильтрованных приходов, а должно быть 100 счетов (все счета) и 15 отфильтрованных присоедниненных приходов. Вот, как-то так
#43 by aleks_default
"Повторюсь. Если вставить из запрос, то выведутся только счета, к которым присоединены отфильтрованные приходы на счет, а не вообще ВСЕ счета, у которых есть отфильтрованные приходы." НЕТ! Выведутся ВСЕ СЧЕТА и присоединенные к ним ТОЛЬКО ТЕ поступления которые попадают в фильтр. Посмотри внимательно н а разницу в запросе в и в . Видишь разницу? Там ГДЕ заменено на И. Это Очень Существенная Разница. В общем. Берешь текст запроса из и вставляешь в консоль и картинку с результатом вставляешь сюда.
#44 by QWarLockQ
Извиняюсь, мой косяк, не досмотрел, всё сработало, не знаю почему вчера я вставляя этот же запрос, не увидел это ) Пасиб, добрый человек )
#45 by QWarLockQ
Этот отчёт... В общем, очередная проблема: счета отображаются в отчете и в консоли, но почему-то приходы на счет не отображаются в отчете, а в консоли отображаются. И если убрать параметр фильтра по приходам на счет вообще из запроса, то все приходы будут отображаться везде (и в отчете, и в консоли). Что за магия?
#46 by QWarLockQ
Запрос: ВЫБРАТЬ     ДокЗаказПокупателя.Ссылка КАК ЗаказПокупателя, ГДЕ     ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
#47 by QWarLockQ
Привет, aleks_default )
#48 by aleks_default
Это из-за того что если параметры &ДатаПриходовФактНачало и &ДатаПриходовФактКонец не заданы, то обе даты равны друг другу и равны пустой дате(0001.01.01), т.е нет документов входящих в этот интервал. Тебе нужно сделать так чтобы если параметр &ДатаПриходовФактКонец не задан (равен пустой дате), то он устанавливался в максимальную возможную дату(3999,1,1), или вообще условие на вхождение в интервал не применялось. По типу как сделано в условии на параметр &Контрагент.
#49 by QWarLockQ
А параметры прописаны: ДатаПриходовФактКон: ВЫБОР КОГДА &ДатаПриходовФактКон = Неопределено ИЛИ &ДатаПриходовФактКон = NULL ИЛИ &ДатаПриходовФактКон = ДатаВремя(1,1,1) ТОГДА ДатаВремя(3999,12,31)  ИНАЧЕ КонецПериода(&ДатаПриходовФактКон, "День") КОНЕЦ Да и если выставить параметры, то та же картина получается
#50 by QWarLockQ
По такому же принципу выставлены другие параметры с датами и они работают нормально
#51 by QWarLockQ
Ап
#52 by QWarLockQ
Тут столько страждущих, что моя тема слишком быстро ползет вниз )
#53 by QWarLockQ
Тема ещё актуальна
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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