Вход | Регистрация

1С:Предприятие ::

Метки: 

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

Я
   PiotrLoginov
 
12.12.17 - 12:04
Всем здрасте. Гипотетический пример: запрос в СКД получает строки

ИзмерениеА     ИзмерениеБ       ЗначениеРесурса
 А_1              Б_1               2
 А_1              Б_2               3
 А_2              Б_1               5



В СКД запрещено устанавливать отбор по ИзмерениеБ (таково ТЗ: юзер не может фильтровать при ПЕРВОНАЧАЛЬНОМ формировании отчета по измерению ИзмерениеБ).
В настройках - группировка по ИзмерениеБ.

Формируем отчет:

ИзмерениеБ     ЗначениеРесурса
Б_1                7
Б_2                3


Теперь если расшифровать вторую строку по ИзмерениеА, то будет

ИзмерениеА     ЗначениеРесурса
А_1                5
А_2                5


Хотя нам нужно

ИзмерениеА     ЗначениеРесурса
А_1                3


Оно и понятно, ведь отбор по ИзмерениеБ при расшифровке не сработает. Как это решается? Спасибо за любое мнение.
 
 
   DmitrO
 
1 - 12.12.17 - 12:16
Почему отбор при расшифровке не сработает?
У меня срабатывает.
   PiotrLoginov
 
2 - 12.12.17 - 12:25
Ну вот реальный, пусть и тестовый пример, который здесь описан. Не срабатывает. И не сработает - отбор по ИзмерениеБ же отключен.
   DmitrO
 
3 - 12.12.17 - 12:32
(2)так расшифровка же идет по строке, полученной группировкой по измерению Б, у строки есть значение измерения Б, по которому и встает отбор.
   DmitrO
 
4 - 12.12.17 - 12:37
Я вот такой вопрос задал: как вы сделали такой отчет, что у вас не срабатывает? Или может расшифровку как-то сами делаете? :)
   PiotrLoginov
 
5 - 12.12.17 - 12:37
(3) Если бы при расшифровке вставал отбор по ИзмерениеБ = Б_2, то в расшифровке было бы

ИзмерениеА     ЗначениеРесурса
А_1                3


Собственно, описанная схема в xml:

https://www.dropbox.com/s/tbl40ap0x1tr1cd/СхемаВXml.xml?dl=0
   PiotrLoginov
 
6 - 12.12.17 - 12:38
Схема простейшая. С тестовыми данными. Подробно описана в (0)
   DmitrO
 
7 - 12.12.17 - 12:44
В каждый из трех объединенных запросов добавьте такое предложение:
{где ИзмерениеБ}
   PiotrLoginov
 
8 - 12.12.17 - 12:47
(7) Тогда юзер при первоначальном формировании отчета среди полей, по которым можно устанавливать отбор, получит и поле "ИзмерениеБ".

А это запрещено ТЗ. Поле, по которому потом нужна расшифровка, не должно быть в списке полей для отбора.
   PiotrLoginov
 
9 - 12.12.17 - 12:50
Это на корню убит все универсальные механизмы БСП по отображению настроек отчетов на СКД. И вместо готового механизма установки отборов, куда подтягивается список всех полей, по которым разрешен отбор, приходится для каждого такого отчета рисовать отдельный список из всех возможных имен отборов минус то, которое запрещено. Как некая жертва ради того, чтобы потом по этому полю корректно работала расшифровка.
   PiotrLoginov
 
10 - 12.12.17 - 12:50
*убит = губит
 
  Рекламное место пустует
   DmitrO
 
11 - 12.12.17 - 12:54
Чтобы расшифровка работала как надо, необходимо чтобы поле было доступно для отбора.
:)
На самом деле это звучит даже так: чтобы отбор по полю был возможен, поле должно быть доступно для отбора.

Чтобы оно было не доступно пользователю тогда надо решать формой настроек, или проверкой и формированием исключения перед перед формированием отчета.
   PiotrLoginov
 
12 - 12.12.17 - 13:02
(11) >>надо решать формой настроек
ну вот, о чем я и пишу. после долгих лет мы пришли к симпатичной универсальной форме отчета в БСП... и поняли, что это опять не то.

Хотя я вот думаю: а может, зная об этом косяке доработать эту форму, элементарно добавив в реквизиты формы некий массив полей отбора, запрещенных для использования - и вставлять ее во все типовые конфы... Хотя это уже называется "костыль".
   PiotrLoginov
 
13 - 12.12.17 - 13:03
Но спасибо. Мне как-то полегчало.
   DmitrO
 
14 - 12.12.17 - 13:13
Ну, после долгих лет в СКД много чего еще криво до сих пор.

То что вам надо (как получается): доступность поля отбора разного вида: программная и пользовательская.

А также вот например следующее.
- в выбранные поля макета компонуются все поля использованные в условиях любого условного оформления, даже если само оформляемое поле не выбрано;
- зачем-то включается безопасный режим при вызове функций в вычисляемых выражениях;

- на уровне платформы нет методов простого анализа настроек: типа есть/найти отбор по полю Поле1, есть/найти группировку по Полю1 и т.п.
   PiotrLoginov
 
15 - 12.12.17 - 13:15
(11) >>или проверкой и формированием исключения перед формированием отчета

заказчики что-то так болезненно реагируют на любые сообщения в интерфейсе :)  тем более, если программа пишет о допущенной критической ошибке и отказе в выполнении определенного действия. Я с некоторых пор стараюсь держать внешний лоск при любом раскладе. Сообщения - только как всплывающие уведомления где-то в стороне, надписи - в приглушенных тонах и в "спокойных" формулировках...
   PiotrLoginov
 
16 - 12.12.17 - 13:17
(14) Точно! Режим отображения подключу. Хорошая мысль. Простая, но я об этом не подумал.
   DmitrO
 
17 - 12.12.17 - 13:27
А если в схеме снять в настройках поля флажок что поле доступно для отбора, расшифровка тоже не работает? Надо проверить, не очевидно так-то.
   PiotrLoginov
 
18 - 12.12.17 - 13:30
Т.е. перед стандартной расшифровкой снимать галку программно, а потом опять возвращать на случай, если юзер полезет формировать сам отчет с новыми отборами? Да, надо будет попробовать.


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