Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помощь с запросом СКД

Помощь с запросом СКД
Я
   seraf
 
12.04.21 - 14:32
Привет, подскажите, набросал в СКД простой вроде запрос. Сначала выбираю документы, потом транспорт и соединяю в текущем месяце. На тестовом куске выводит 90 строк, 5 с пустым документом. Всё ок пока в СКД на закладке Отбор не ставлю условие МаршрутныйЛист = "Пусто". В таком случае выводит те же 90 строк с "Пусто" . Хотя их всего 5. И в консоли запросов 5. И в консоли СКД тоже смотрел запрос, 5 строк. Где туплю, почему отбор так срабатывает.

ВЫБРАТЬ
    МаршрутныйЛист.Ссылка КАК МаршрутныйЛист,
    МаршрутныйЛист.Проведен КАК Проведен
ПОМЕСТИТЬ ВТ
ИЗ
    Документ.МаршрутныйЛист КАК МаршрутныйЛист
ГДЕ
    МаршрутныйЛист.Дата МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Транспорт.Код КАК Код,
    Транспорт.Ссылка КАК Автомобиль,
    Транспорт.ДатаВвода КАК ДатаВвода,
    Транспорт.ГосНомер КАК ГосНомер,
    Транспорт.Модель КАК Модель,
    ЕСТЬNULL(ВТ.МаршрутныйЛист.Ссылка, "Пусто") КАК МаршрутныйЛист,
    ВТ.Проведен КАК Проведен
ИЗ
    Справочник.Транспорт КАК Транспорт
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ
        ПО Транспорт.Ссылка = ВТ.МаршрутныйЛист.ТранспортноеСредство.ОсновноеСредство.Ссылка
ГДЕ
    Транспорт.Актуальность = ЛОЖЬ
   toypaul
 
1 - 12.04.21 - 14:44
не может "И в консоли СКД" работать правильно

наложенный отбор применился к ВТ, соот-но все строки стали "Пусто"
   seraf
 
2 - 12.04.21 - 15:05
каким образом? в консоль СКД я выгруженную хмл отдал, там всё ок с такими же настройками или не вижу в чем дело.

ЕСТЬNULL(ВТ.МаршрутныйЛист.Ссылка, "Пусто") КАК МаршрутныйЛист появляется во второй части, отбор на результат, не понимаю какой отбор на ВТ упал, что исправить.
   hhhh
 
3 - 12.04.21 - 15:07
(2) отбор вообще-то на все таблицы действует, не только на результат.
   novichok79
 
4 - 12.04.21 - 15:12
надо посмотреть что какой запрос генерится в макете компоновщика СКД
   seraf
 
5 - 12.04.21 - 15:18
так я смотрел макет компоновщика, запрос там не меняется, только опция отбора описана ниже. На что мой отбор действует в ВТ? это же просто отбор по полученным значениям относительно ВТ после объединения таблиц, разве нет? в ВТ никакого "Пусто" как строки. уж думал там нулл или еще что привел к строке для наглядности
   toypaul
 
6 - 12.04.21 - 15:20
это смотря куда отбор добавить. в отчет или в группировку
   toypaul
 
7 - 12.04.21 - 15:21
возможно что в отчете на уровне отчета. а в "консоли" для группировки.
   novichok79
 
8 - 12.04.21 - 15:24
если косяк в запросе исключается, значит отбор применяется при выводе отчета, как и написали коллеги
   seraf
 
9 - 12.04.21 - 15:28
вот текст запроса с закладки Макет для Табличного документа ХМЛ 

<query>ВЫБРАТЬ
    МаршрутныйЛист.Ссылка КАК МаршрутныйЛист
ПОМЕСТИТЬ ВТ
ИЗ
    Документ.МаршрутныйЛист КАК МаршрутныйЛист
ГДЕ
    МаршрутныйЛист.Дата МЕЖДУ &amp;ДатаНач И &amp;ДатаКон
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Транспорт.Код КАК Код,
    Транспорт.Ссылка КАК Автомобиль,
    Транспорт.ГосНомер КАК ГосНомер,
    ЕСТЬNULL(ВТ.МаршрутныйЛист.Ссылка, "Пусто") КАК МаршрутныйЛист,
    Транспорт.Представление КАК ТранспортПредставление,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ЕСТЬNULL(ВТ.МаршрутныйЛист.Ссылка, "Пусто")) КАК МаршрутныйЛистПредставление
ИЗ
    Справочник.Транспорт КАК Транспорт
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ
        ПО Транспорт.Ссылка = ВТ.МаршрутныйЛист.ТранспортноеСредство.ОсновноеСредство.Ссылка
ГДЕ
    Транспорт.НеАктуален = ЛОЖЬ</query>

И отбор

    <template>
        <name>Макет4</name>
        <template xsi:type="dcsat:AreaTemplate">
            <dcsat:item xsi:type="dcsat:TableRow">
                <dcsat:tableCell>
                    <dcsat:item xsi:type="dcsat:Field">
                        <dcsat:value xsi:type="xs:string">Отбор: Маршрутный лист Равно "Пусто"</dcsat:value>
                    </dcsat:item>
   hhhh
 
10 - 12.04.21 - 15:38
(9) походу ругается на ПРЕДСТАВЛЕНИЕССЫЛКИ. Туда же нельзя Пусто вставлять.
   seraf
 
11 - 12.04.21 - 15:45
"Пусто" это я так добавил чтоб исключить что путаюсь с NULL, до этого был просто запрос, а в отборе ставил ЗначениеЗаполнено, но так же выводило лишнее и начал разбираться
   novichok79
 
12 - 12.04.21 - 15:45
(5) приведите запрос отсюда: МакетКД.НаборыДанных.<ВашНаборДанных>.Запрос
   novichok79
 
13 - 12.04.21 - 15:45
после применения отбора
   seraf
 
14 - 12.04.21 - 15:58
не очень понял откуда, в наборе данных текст моего запроса. без отбора отлично выглядит, с ним какая-то херь, причем по другим полям нормально отбирает, явно что-то с этой ссылкой не понимаю
   seraf
 
15 - 12.04.21 - 16:01
Поставил условие Содержит "П" - вывело 5 строк. Поставил Начинается с "Пу" - 5 строк) Условие же Равно "Пусто" - выводит полотно
   seraf
 
16 - 12.04.21 - 16:03
Меня в принципе и Содержит удовлетворяет, но хотелось бы свою ошибку осознать
   novichok79
 
17 - 12.04.21 - 16:14
(14) вроде как очевидно откуда - из обработчика ПриКомпоновкеРезультата в модуле объекта.
   pasha_d
 
18 - 12.04.21 - 16:34
лови там свой макет как в (17) и смотри отладчиком, что в тексте запроса как в (12)

Список тем форума
 
начал читать тему и понял, что как всегда - вместо того, чтобы поддержать или научить, человеку рассказывают о том, как отмазаться или не делать mikecool
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.