Значения объекта "Контакт"

Добрый день,
BPM CRM+SD.
Как сделать так, чтобы на странице редактирования КЕ (тут на самом деле неважно на какой) было поле типа справочник. Но так, чтобы при нажатии на лупу отображались контакты, а при выборе контакта, в этом поле отображался рабочий телефон. Т.е. не ФИО, а только телефон.
Для примера. Есть поле, типа справочник. У него подпись: телефон. Нажимаем на лупу, видим список всех контактов. Нажимаем на Иванова И.И. И в это поле появляется не Иванов И.И., а его рабочий телефон.
Как сделать поле типа справочник, и как связать его со справочником - я разобрался. А вот как подтянуть необходимые поля - нет.
Спасибо.

Нравится

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

Добрый день!
пример для поля "Основной контакт" в разделе "Контрагенты"

заходим в sq_account и добавляем поле типа "колонка с текстом SQL"
пишем:

(select Communication1 + ', ' + Communication2 from tbl_Contact 
where ID = [tbl_Account].[PrimaryContactID])
(можете добавить фильтр на тип средства связи, чтобы там были только телефоны)

в названии колонки указываем "PrimaryContactName2"
пример
сохраняем запрос.
заходим в ds_Account
для поля PrimaryContactID меняем поле для отображения на созданное. Сохраняемся.
Теперь на добаление будет показывать поле, которое указывается первичным полем для отображения в ds_Contact, а при открытии карточки на редактирование будут отображаться телефоны.

Спасибо, но у меня BPMOnline. А вы, я так понимаю, прислали решения для Terrasoft 3.x.

Здравствуйте, Кирилл.

За это отвечает свойство "Отображаемое значение" для объекта:

1

Спасибо. Т.е. для того, чтобы не попортить отображение ФИО во всей системе, мне нужно создать новый объект, с отображением телефона. А как его привязать к контактам?
Спасибо.

Возможно, Вам подойдет такое решение:
Добавить в карточку КЕ поле Телефон, которое всегда будет наполняться из Контакта (на основании) того, что выбрано в поле Контакт

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

В зависимости от Ваших потребностей, смогу описать принцип решения каждого из вариантов

Спасибо.
Первый вариант подойдет. Опишите, пожалуйста.

Кирилл, возможно, Вам удобнее будет следующий вариант:

1. Откройте окно выбора контакта, нажмите правой кнопкой мыши на заголовке, и выберите "Настроить колонки";

2. В отображаемые колонки добавьте телефон.

В этом случае настройки сохранятся в Вашем профиле, и при открытии окна выбра Вы сможете посмотреть как ФИО, так и телефон.

Добрый день!
Варианты из постов #3 и #7 самые удобные, на мой взгляд.

Кирилл, разрешите поинтересоваться, чем обусловлена такая постановка задачи?

Спасибо за ответы, но Анна, такой вариант не подойдет.
Задача:
В карточке КЕ определенного типа, скажем, интернет провайдер, я добавил поле "телефон поддержки". В базе контактов есть соотв. запись, но светить контакт не удобно, т.к. чтобы увидеть телефон, нужно сделать еще 2 клика. Долго, неудобно. А так при добавлении КЕ выбрал контакт, а отображается только телефон - красота.

Здравствуйте, Кирилл.

Насколько я понял, Вам этот вариант подходит:

"Добавить в карточку КЕ поле Телефон, которое всегда будет наполняться из Контакта, на основании того, что выбрано в поле Контакт этой же карточки."

Если так, инструкция по реализации во вложении.

Кстати, после выбора контакта, для красоты, можете скрывать поле с контактом, а оставлять только поле с телефоном:

Page.ContactEdit.IsVisible = false;
Page.PhoneEdit.IsVisible = true;

Добрый день.
Дмитрий, спасибо. Почти получилось.
Т.е. когда я создаю новую КЕ, выбираю интернет провайдера, автоматически в поле телефон поддержки вставляется правильный телефон. Но после открытия карточки созданной ранее КЕ, телефон не отображается. Правильно ли я понимаю, что при создании КЕ, телефон в базу не пишется. Он просто отображается при открытии карточки? Дело в том, что в инструкции указано, что новые метод нужно вставить в скрипт ChildPageLoadCompleteAfterBaseScript. Но в карточке редактирования такого нет.
Я нашел процесс PageLoadCompleteSubProcess, там есть единственный скрипт без названия ScriptTask5. В него и вставил метод. Что сделал не так?

P.S. Сам скрипт, который в инструкции пришлось подправить, т.к. у меня названия полей отличаются.

Номер, при условии что поле, в которое он вставляется связано в полем в БД, в базу кончено же пишется.

Я вижу следующую логику:

1. Для поля "Интернет провайдер" определить событие "значение изменено".
2. В этом событии в скрипт вставить код подстановки номера телефона в поле, которое связано с полем в объекте "КЕ".
3. Сохранить изменения.

Что получим:

При создании новой записи: изначально поле с телефоном пустое, при изменении поля "интернет провайдер" оно заполняется. По нажатию на "ОК" пишется в БД. При открытии, значения подтянется в поле как и все остальные.

Действительно, была ошибка привзяки поля к Datasource.
Все работает, спасибо!

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