СКД поле-условие для корректной расшифровки #810098


#0 by PiotrLoginov
Всем здрасте. Гипотетический пример: запрос в СКД получает строки ИзмерениеА     ИзмерениеБ       ЗначениеРесурса А_1              Б_1               2 А_1              Б_2               3 А_2              Б_1               5 В СКД запрещено устанавливать отбор по ИзмерениеБ (таково ТЗ: юзер не может фильтровать при ПЕРВОНАЧАЛЬНОМ формировании отчета по измерению ИзмерениеБ). В настройках - группировка по ИзмерениеБ. Формируем отчет: ИзмерениеБ     ЗначениеРесурса Теперь если расшифровать вторую строку по ИзмерениеА, то будет ИзмерениеА     ЗначениеРесурса А_1                5 Хотя нам нужно ИзмерениеА     ЗначениеРесурса Оно и понятно, ведь отбор по ИзмерениеБ при расшифровке не сработает. Как это решается? Спасибо за любое мнение.
#1 by DmitrO
Почему отбор при расшифровке не сработает? У меня срабатывает.
#2 by PiotrLoginov
Ну вот реальный, пусть и тестовый пример, который здесь описан. Не срабатывает. И не сработает - отбор по ИзмерениеБ же отключен.
#3 by DmitrO
так расшифровка же идет по строке, полученной группировкой по измерению Б, у строки есть значение измерения Б, по которому и встает отбор.
#4 by DmitrO
Я вот такой вопрос задал: как вы сделали такой отчет, что у вас не срабатывает? Или может расшифровку как-то сами делаете? :)
#5 by PiotrLoginov
Если бы при расшифровке вставал отбор по ИзмерениеБ = Б_2, то в расшифровке было бы Собственно, описанная схема в xml:
#6 by PiotrLoginov
Схема простейшая. С тестовыми данными. Подробно описана в
#7 by DmitrO
В каждый из трех объединенных запросов добавьте такое предложение:
#8 by PiotrLoginov
Тогда юзер при первоначальном формировании отчета среди полей, по которым можно устанавливать отбор, получит и поле "ИзмерениеБ". А это запрещено ТЗ. Поле, по которому потом нужна расшифровка, не должно быть в списке полей для отбора.
#9 by PiotrLoginov
Это на корню убит все универсальные механизмы БСП по отображению настроек отчетов на СКД. И вместо готового механизма установки отборов, куда подтягивается список всех полей, по которым разрешен отбор, приходится для каждого такого отчета рисовать отдельный список из всех возможных имен отборов минус то, которое запрещено. Как некая жертва ради того, чтобы потом по этому полю корректно работала расшифровка.
#10 by PiotrLoginov
*убит = губит
#11 by DmitrO
Чтобы расшифровка работала как надо, необходимо чтобы поле было доступно для отбора. :) На самом деле это звучит даже так: чтобы отбор по полю был возможен, поле должно быть доступно для отбора. Чтобы оно было не доступно пользователю тогда надо решать формой настроек, или проверкой и формированием исключения перед перед формированием отчета.
#12 by PiotrLoginov
>>надо решать формой настроек ну вот, о чем я и пишу. после долгих лет мы пришли к симпатичной универсальной форме отчета в БСП... и поняли, что это опять не то. Хотя я вот думаю: а может, зная об этом косяке доработать эту форму, элементарно добавив в реквизиты формы некий массив полей отбора, запрещенных для использования - и вставлять ее во все типовые конфы... Хотя это уже называется "костыль".
#13 by PiotrLoginov
Но спасибо. Мне как-то полегчало.
#14 by DmitrO
Ну, после долгих лет в СКД много чего еще криво до сих пор. То что вам надо (как получается): доступность поля отбора разного вида: программная и пользовательская. А также вот например следующее. - в выбранные поля макета компонуются все поля использованные в условиях любого условного оформления, даже если само оформляемое поле не выбрано; - зачем-то включается безопасный режим при вызове функций в вычисляемых выражениях; - на уровне платформы нет методов простого анализа настроек: типа есть/найти отбор по полю Поле1, есть/найти группировку по Полю1 и т.п.
#15 by PiotrLoginov
>>или проверкой и формированием исключения перед формированием отчета заказчики что-то так болезненно реагируют на любые сообщения в интерфейсе :)  тем более, если программа пишет о допущенной критической ошибке и отказе в выполнении определенного действия. Я с некоторых пор стараюсь держать внешний лоск при любом раскладе. Сообщения - только как всплывающие уведомления где-то в стороне, надписи - в приглушенных тонах и в "спокойных" формулировках...
#16 by PiotrLoginov
Точно! Режим отображения подключу. Хорошая мысль. Простая, но я об этом не подумал.
#17 by DmitrO
А если в схеме снять в настройках поля флажок что поле доступно для отбора, расшифровка тоже не работает? Надо проверить, не очевидно так-то.
#18 by PiotrLoginov
Т.е. перед стандартной расшифровкой снимать галку программно, а потом опять возвращать на случай, если юзер полезет формировать сам отчет с новыми отборами? Да, надо будет попробовать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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