Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
В отчете на СКД отбор по реквизиту «Склад» задан сразу в трех слоях настроек: в фиксированных (обязательных), в пользовательских и в текущем варианте. При этом в каждом слое указано разное значение склада. Что произойдет при попытке сформировать отчет?
Отчет сформируется, и сработает отбор из пользовательских настроек
Неправильно: Пользовательские настройки действительно могут дополнять/переопределять основные настройки варианта, но они не должны вступать в конфликт с фиксированными настройками. При пересечении по одному и тому же полю (например, «Склад») с разными значениями СКД не применяет настройки и формирование прерывается.
Отчет сформируется, и будет применен отбор из текущего варианта настроек
Неправильно: Текущий вариант настроек - это «основные» настройки отчета (вариант), но они также не могут конфликтовать с фиксированными. Если фиксированный отбор по «Складу» пересекается с отбором варианта или пользовательским отбором, система не выбирает «кто главнее», а сообщает об ошибке применения настроек.
Отчет не будет сформирован
Правильно: Ситуация, когда по одному и тому же полю задано несколько отборов в разных слоях настроек (и они пересекаются, задавая разные значения), считается недопустимой для применения фиксированных настроек. В результате СКД выдаст ошибку о невозможности применить фиксированные настройки, и отчет не сформируется.
Отчет сформируется, и сработает отбор из фиксированных настроек
Неправильно: Фиксированные настройки действительно обязательны и всегда добавляются к настройкам отчета, но при конфликте они не «побеждают» автоматически. Вместо этого СКД блокирует формирование, потому что пересечение элементов отбора по одному полю в разных слоях настроек считается ошибкой настройки отчета.
Пояснение
В СКД настройки отчета складываются из нескольких уровней:
- фиксированные настройки (задаются разработчиком/в коде и должны применяться всегда);
- основные настройки варианта (то, что хранится в выбранном варианте отчета);
- пользовательские настройки (то, что пользователь дополнительно сохранил/изменил поверх варианта).
Фиксированные настройки «добавляются» к остальным, но с важным ограничением: они не должны пересекаться с отбором/параметрами других уровней по одним и тем же элементам. Если по одному полю (например, «Склад») одновременно задано несколько отборов в разных слоях и они задают разные значения, СКД воспринимает это как конфликт (пересечение элементов отбора) и прекращает формирование отчета.
Пример конфликта:
- в фиксированных настройках: Склад = «Основной»;
- в варианте отчета: Склад = «Розничный»;
- в пользовательских: Склад = «Склад_СПб».
Система не может корректно объединить эти условия (получается взаимоисключающая фильтрация по одному реквизиту), поэтому отчет не строится.
Как избежать/исправить:
1) Не дублировать один и тот же отбор в разных слоях: если «Склад» фиксированный, уберите его из варианта и запретите пользователю добавлять такой же отбор.
2) Если нужно разрешить несколько складов, задавайте это одним элементом отбора (например, «Склад в списке») в одном уровне настроек, а не несколькими независимыми отборами.
3) Если ошибка проявилась у конкретного пользователя, часто помогает сбросить/очистить пользовательские настройки отчета (или открыть отчет со стандартными настройками), чтобы убрать конфликтующий отбор.
Ключевая идея: при конфликте с фиксированными настройками СКД не выбирает приоритет, а блокирует формирование отчета.