Ошибки (?) работы СКД


СКД неверно ставит отборы?

Столкнулся с тем, что при определенных условиях СКД формирует не совсем ожидаемый результат.

Вот для примера отчет (схема компоновки).

 

Схема отчета

 

Установлен отбор на дату рождения.

При формировании отчета получаем результат (Скриншот: Неверный результат)

Но вот 5 строк объясняется тем, что отбор накладывается на первую таблицу, где встречается поле с этим именем

Т.е. отбор накладывается только на таблицу ВТ_1, а не на результат запроса

Чтобы отбор накладывался на результат, надо у результата запроса на вкладке "Компоновка данных" на вкладке условия добавить это поле (Скриншот: Необходимая настройка для отбора)

Проверялось на релизах 8.3.13.1513,  8.3.14.1640.

6 Comments

  1. genayo

    Да, всё правильно, для получения предсказуемых результатов желательно отборы настраивать для всех участвующих таблиц в явном виде.

    Reply
  2. akim2040

    При знакомстве с СКД эту «ошибку», которая называется оптимизатор запроса, рано или поздно встречаешь.

    Далее уже на автомате ставишь всегда нужные условия на компоновке, да и автозаполнение полей не используешь

    Reply
  3. VmvLer

    СКД «ловит» отбор по имени поля которое попадает в набор данных, а именно «ДатаРождения»

    замените синоним «ДатаРожденияТаб2» на «ДатаРождения» и все станет чики-пуки.

    Reply
  4. skydivespb

    (3)Да как решить эту проблему я знаю. Дело в том, что во второй таблице вообще может не быть даты рождения. Пример показывает лишь то, что возможны случаи, что отбор накладывается не на результат. И как сделать так, чтобы отчет выводил предсказуемые результаты.

    Reply
  5. dhurricane

    (4)

    предсказуемые результаты

    Чтобы ответить на этот вопрос, необходимо сперва понять, а что Вы подразумеваете под предсказуемостью? Как видите, для некоторых участников сообщества результат вполне предсказуем. Почему СКД накладывает отбор не на результат, а на промежуточные таблицы? Потому что разработчики СКД решили, что такой сценарий более распространен и более оправдан. И тут мне трудно спорить с ними. Ну а что с этим делать, если такой подход не устраивает? «Объяснять» СКД, где действительно нужно устанавливать отборы с помощью выражений в фигурных скобках, иногда отключать автозаполнение наборов данных.

    Reply
  6. vvp117

    (4) Забудьте о флажке «Автозаполнение полей» или будете подобные артефакты ловить постоянно. Контролируйте доступные для отбора поля через {}, тогда всё будет прозрачно для вас и для СКД

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *