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


#0 by Stolz
Доброго всем времени суток! Возникла проблема с переопределением поля для расшифровки. Попробую описать её на следующем примере. Сразу замечу, что пример сильно упрощён, чтобы яснее вычленить суть дела. Допустим, есть программно формируемая схема компоновки данных с запросом примерно такого вида: ИЗ     Справочник.Контрагенты В табличном поле результата выводятся колонки Наименование и Комментарий, колонка Ссылка выводиться не должна. Однако при двойном щелчке на строке табличного поля должна открываться форма соответствующего элемента справочника Контрагенты. Поскольку схема компоновки данных формируется программно, и состав полей запроса заранее неизвестен, нет возможности нарисовать для неё макет поля, чтобы в нём задать выражение для расшифровки. Возможно, в процедуре ОбработкаРасшифровки как-то можно добраться до поля Ссылка, но, судя по итогам изучения форумов, это вряд ли возможно. Как быть?
#1 by Cube
Как быть? Разрешаю удалить поле "Наименование" и выводить вместо него поле "Ссылка", у которого выражение представления типа этого: "Ссылка.Наименование".
#2 by Stolz
Я уже упоминал, что приведён упрощённый пример лишь для пояснения сути вопроса. В реальности там нет поля Наименование, да и запрос выполняется вовсе не к справочнику контрагентов. А вот открывать объект по ссылке всё же необходимо.
#3 by Defender aka LINN
Если уж ты пишешь отвлеченными примерами - будь, ять, готов этот отвлеченный пример преобразовать обратно в свою задачу. В все написано, что тебе поможет ее сделать.
#4 by Cube
А что там есть? Можно, конечно, и дальше обсуждать сферических коней в вакууме, но я бы предпочел обсуждать реальные задачи...
#5 by Stolz
В написано о выводе представления в табличное поле. О том, как это сделать, вопрос не задавался. Вопрос был о переопределении поля для расшифровки. На это ответ не был дан.
#6 by Defender aka LINN
А ты тугой, как я погляжу...
#7 by Stolz
Хорошо, вот реальная задача. Запрос выглядит так: Количество полей ЭтапX может варьироваться в зависимости от выбранных пользователем настроек. Требуется при двойном щелчке на строке табличного поля открывать форму объекта, на который указывает ссылка. Как можно видеть, никаких коней тут не наблюдается.
#8 by Stolz
То есть, по существу тебе ответить нечего? Так бы и сказал с самого начала.
#9 by Stolz
->
#10 by Defender aka LINN
По существу тебе ответили с самого начала в . Вычисляемые поля + . Свободен.
#11 by Stolz
Ты вопрос читал? Спрашивалось, как переопределить расшифровку. При чём тут вычисляемые поля?
#12 by GenV
В обработке расшифровки здесь нет? : ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля
#13 by Cube
Параметр расшифровки указать для поля нельзя. Поэтому вижу два варианта: 1. Рисовать свой макет и передавать параметр расшифровки в него (не знаю, получится или нет) 2. Этап 1 выводить как сказано в , а при расшифровке всех последующих этапов искать этап 1 в коде (в ДанныхРасшифровки) и открывать... Все варианты так себе...
#14 by Cube
Я бы вывел ещё одну колонку с ссылкой...
#15 by Defender aka LINN
А ты ответ читал? Тебе какая нахрен разница, если выглядит одинаково?
#16 by barrgand
Решение в , лучше подумай, а не распыляйся напрасно. Готового решения тут тебе не дадут, а на правильную мысль уже давно навели.
#17 by Stolz
Ох, как с тобою тяжко-то. Читай вопрос: там сказано, что поле ссылки выводиться не должно и что пример упрощённый. Читай ответы ниже, там упомянуто, что поля в реальности другие. Что с чем должно «выглядеть одинаково»? И да, монитор себе протри, а то заплевал поди весь, гневный ты наш.
#18 by Stolz
Спасибо за ответы в , попробую и отпишусь по результатам. Но ссылку выводить, увы, нельзя. :-(
#19 by Stolz
Я бы и рад последовать твоему совету, да только не пояснишь ли, как вычисляемые поля связаны с расшифровкой?
#20 by Cube
Ты выведи поле Ссылка, а в выражении представления напиши "Подробнее" или "Открыть этапы". Это будет "типа" кнопка для открытия...
#21 by Stolz
Улыбнуло. :-) (я без иронии). Конечно, на самый крайний случай можно сделать и так, но хотелось бы остаться в пределах стандартного оформления выводимых данных. А то пользователи - они ведь и испугаться могут. :-)
#22 by Cube
Мне кажется, через макеты должно получиться.
#23 by Stolz
Ты прав, в общем случае это делается через макеты, как, например, и написано у Хрусталёвой на странице 211. Вот только в том-то и загвоздка, что нарисовать макет здесь нельзя. В макете, сделанном в конструкторе, можно определить конечное число полей (ячеек), к каковым и привязать выводимые поля. Тут же число выводимых этапов может варьироваться до некоего количества, заранее неизвестного. Так что предварительно изготовленный макет не поможет.
#24 by Cube
Да всё должно получиться. Почитай ищо))
#25 by Stolz
Ну, бесспорно, литература - штука полезная. Но, увы, такая ситуация там не описана, уж поверь, иначе я бы вопрос не задавал. К сожалению, второй вариант из тоже не годится: там предлагается привязка к конкретному полю (Этап1), а пользователь в настройках СКД может его попросту исключить, и опереться будет не на что. Ладно, «будем подождать» (почти (С)), авось, ещё у кого-либо родятся идеи.
#26 by Stolz
Нет, там только поле, по которому в данный момент выполняется двойной щелчок мышью. То есть, при двойном щелчке на поле Этап1 - это поле Этап1, при двойном щелчке на поле Этап2 - поле Этап2 и так далее. Самое досадное в том, что после двойного щелчка выдаётся контекстное меню, в котором при выборе пункта Расшифровать открывается диалоговое окно выбора поля, где в числе доступных полей выводится Ссылка. Впрочем, если в окне выбрать это поле, открывается новое окно того же отчёта, а не объект по ссылке. Похоже, что до поля ссылка как-то можно достучаться, да вот только как?
#27 by Cube
Чем макет не угодил? Там можно использовать любое поле для расшифровки же...
#28 by ам794123
#29 by Stolz
См. в : количество полей заранее неизвестно.
#30 by Stolz
Да в том-то и дело, что в коллекции, возвращаемом методом ПолучитьПоля, нет поля Ссылка. Об этом-то и говорится в .
#31 by Stolz
: возвращаемом -> возвращаемой
#32 by Cube
И что? Не вижу проблемы...
#33 by ам794123
Для коллекции существует метод Добавить. В чем проблема?
#34 by Stolz
В нарисованном макете будет фиксированное количество ячеек. Например, ячейка для поля Этап1, ячейка для поля Этап2 и т.д. А в запросе этапов может быть сколько угодно. Можно, конечно, нарисовать ячейки от Этап1 где-то до Этап1000, так как вряд ли их будет больше. Но это как-то некомильфо, разве что на крайний случай.
#35 by Stolz
А вот это уже любопытно, спасибо. Если это коллекция не фиксированная, должно получиться, попробую.
#36 by Stolz
->
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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