Как создать и забиндить свою мини-карточку.

Добрый день, коллеги.

У меня сейчас стоит такой кейс:
Есть реестр данных, в нем отображается, например, 3 поля. Всего, в объекте полей скажем 6.
В реестре нужно скрыть возможность доступа к карточке редактирования, а при наведении на поле данных организовать вывод всех данных в миникарточку.

Поковырявши Контакт, я нашел там модуль ContactMiniPage. Теперь состоит вопрос в том:
1. создать свой, отнаследовавшись от BaseMiniPage.
2. при наведении на поле, заставить ее отобразиться.

Нравится

9 комментариев

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

Пример:

Как с миникарточкой разобраться я понимаю, мне ее надо привязать к полю реестра и вывести на экран.

И мне не совсем расширить, мне надо вывести в миникарточке следующие поля:

[Title] = виртуальное поле заполняемое в зависимости от типа контакта
[Контакт] = или [Контакт] или [Контрагент]
[Представитель] = или [Контакт] или [Контрагент]
[Роль] = Справочное поле
[Код] = числовое
[Процент] = числовое
[Территория] = Справочное поле

Попробуйте, указать ее уникальный идентификатор в таблице [SysModuleEdit], колонка [MiniPageSchemaUId].

Пример скрипта:

Миникарточка отображается если колонка имеет тип справочник и миникарточка ссылается на нее.
Если Вам необходимо добавить дополнительные колонки в миникарточке то добавляете их через diff.

И мини-карточка может быть разной, в зависимости от типа (например, типа контрагента)?

"Владимир Соколов" написал:

И мини-карточка может быть разной, в зависимости от типа (например, типа контрагента)?

Такой кейс я не проверял, но можно попробовать следующее:

- добавляете «visible», который будет «биндиться» к пользовательскому атрибуту.
- данный атрибут добавляете в метод, в котором будет реализована Ваша бизнес-задача.
- затем на «init» вызываете данный метод.

По поводу подписки советую ознакомиться с топиками на Community:

- http://www.community.terrasoft.ru/forum/topic/9692 (Подписаться на изменение значения контрола можно так (на примере расчета вычисляемого поля Потенциал(Potential), значение которого зависит от полей Доход(Revenue) и Вероятность(Probability)))

- http://www.community.terrasoft.ru/forum/topic/15340 (Подписка на событие в том или ином виде проскакивала на форуме, к примеру:
http://www.community.terrasoft.ua/forum/topic/13908)

В любом случае нужно пробовать.

"Владимир Соколов" написал:И мини-карточка может быть разной, в зависимости от типа (например, типа контрагента)?

Присоединяюсь к вопросу.
Здесь рассматривается пример только, когда существует карточка одного типа. А когда для раздела существует несколько карточек редактирования для каждого типа записи, то продемонстрированный в академии кейс не работает, как открывались стандартные карточки так и открываются. (Моя тема)

"Коновалов Игорь" написал:
Владимир Соколов пишет:

И мини-карточка может быть разной, в зависимости от типа (например, типа контрагента)?

Присоединяюсь к вопросу.

Здесь рассматривается пример только, когда существует карточка одного типа. А когда для раздела существует несколько карточек редактирования для каждого типа записи, то продемонстрированный в академии кейс не работает, как открывались стандартные карточки так и открываются. (Моя тема)

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

Может сделать обратным способом - http://www.community.terrasoft.ru/forum/topic/15063#comment-58412

Боюсь, что обратным способом не подойдёт.

Показать все комментарии