Проблема получения правильного результата в СКД. Обычный запрос работает правильно.

1. milkers 2859 20.01.23 13:16 Сейчас в теме
Столкнулся с интересной ситуацией, когда СКД неправильно оптимизирует запрос.

Дано: есть документ маршрутный лист, в нем различные строки с номерами рейсов. Строки могут повторяться.
Нужно посчитать количество различных номеров рейсов за месяц в пределах маршрутного листа.
Если мы этим и ограничимся, то результат верный в запросе и СКД.

Если же мы выгрузим результат во временную таблицу и присоединим ее к другой ТЗ, причем в связке не будет упоминания маршрутного листа (он больше не нужен) то тут результаты будут отличаться.

Такое впечатление, что маршрутный лист исчезает из всего запроса СКД.

Я выкрутился, рассчитав ТЗ в запросе и передав в расчет, но может есть более красивое решение?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. milkers 2859 20.01.23 14:31 Сейчас в теме
Извините, пока ждал ответа уже сам нашел отличную статью https://infostart.ru/1c/articles/1600909/?ysclid=ld4fvda6br430656454
Там есть совет который помог:
Недавно я узнал еще один способ решения этой проблемы, и он гораздо проще. Чтобы поле одной из временных таблиц пакета не исключалось из запроса, нужно оставить его в секции «СГРУППИРОВАТЬ», но убрать из секции «ВЫБРАТЬ». В этом случае поле из секции «СГРУППИРОВАТЬ» не исключается, а именно это часто является одной из частых проблем некорректной оптимизации.
Alexwarsis; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. booksfill 20.01.23 14:03 Сейчас в теме
Я не понял, что такое "другая ТЗ", временная таблица это не тз.
И уж точно не понял по какому полю вы делаете связь с загадочной ТЗ, не по кол-ву же номеров?


Но есть несколько вариантов, куда можно посмотреть:
1. Отключите автозаполнение

2. Попробуйте для поля СсылкаНаМаршрутныйЛист установить ограничение на использование в условиях

3. Я так понимаю, что во временной таблице идет группировка по маршрутному листу (т.е. это, как ни крути, измерение) - ну и оставьте это поле в виртуальной таблице и в результатах соединения, а в настройках укажите для него "обязательное". Вас же никто не заставляет выводить это поле в отчет.
3. milkers 2859 20.01.23 14:31 Сейчас в теме
Извините, пока ждал ответа уже сам нашел отличную статью https://infostart.ru/1c/articles/1600909/?ysclid=ld4fvda6br430656454
Там есть совет который помог:
Недавно я узнал еще один способ решения этой проблемы, и он гораздо проще. Чтобы поле одной из временных таблиц пакета не исключалось из запроса, нужно оставить его в секции «СГРУППИРОВАТЬ», но убрать из секции «ВЫБРАТЬ». В этом случае поле из секции «СГРУППИРОВАТЬ» не исключается, а именно это часто является одной из частых проблем некорректной оптимизации.
Alexwarsis; +1 Ответить
4. 1cmailru 4 25.01.23 06:13 Сейчас в теме
Я раньше где-то читал, что оптимизатор не смотрит во вложенные запросы и когда оптимизатор мешал, всегда писал что то типа:

Выбрать вз.*
из
(
...
) как вз

Сейчас не знаю, давно разногласий с оптимизатором не было.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)