Добрый день,
BPM CRM+SD.
Как сделать так, чтобы на странице редактирования КЕ (тут на самом деле неважно на какой) было поле типа справочник. Но так, чтобы при нажатии на лупу отображались контакты, а при выборе контакта, в этом поле отображался рабочий телефон. Т.е. не ФИО, а только телефон.
Для примера. Есть поле, типа справочник. У него подпись: телефон. Нажимаем на лупу, видим список всех контактов. Нажимаем на Иванова И.И. И в это поле появляется не Иванов И.И., а его рабочий телефон.
Как сделать поле типа справочник, и как связать его со справочником - я разобрался. А вот как подтянуть необходимые поля - нет.
Спасибо.
Нравится
Добрый день!
пример для поля "Основной контакт" в разделе "Контрагенты"
заходим в 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. Откройте окно выбора контакта, нажмите правой кнопкой мыши на заголовке, и выберите "Настроить колонки";
2. В отображаемые колонки добавьте телефон.
В этом случае настройки сохранятся в Вашем профиле, и при открытии окна выбра Вы сможете посмотреть как ФИО, так и телефон.
Добрый день!
Варианты из постов #3 и #7 самые удобные, на мой взгляд.
Кирилл, разрешите поинтересоваться, чем обусловлена такая постановка задачи?
Спасибо за ответы, но Анна, такой вариант не подойдет.
Задача:
В карточке КЕ определенного типа, скажем, интернет провайдер, я добавил поле "телефон поддержки". В базе контактов есть соотв. запись, но светить контакт не удобно, т.к. чтобы увидеть телефон, нужно сделать еще 2 клика. Долго, неудобно. А так при добавлении КЕ выбрал контакт, а отображается только телефон - красота.
Здравствуйте, Кирилл.
Насколько я понял, Вам этот вариант подходит:
"Добавить в карточку КЕ поле Телефон, которое всегда будет наполняться из Контакта, на основании того, что выбрано в поле Контакт этой же карточки."
Если так, инструкция по реализации во вложении.
Кстати, после выбора контакта, для красоты, можете скрывать поле с контактом, а оставлять только поле с телефоном:
Page.ContactEdit.IsVisible = false; Page.PhoneEdit.IsVisible = true;
Добрый день.
Дмитрий, спасибо. Почти получилось.
Т.е. когда я создаю новую КЕ, выбираю интернет провайдера, автоматически в поле телефон поддержки вставляется правильный телефон. Но после открытия карточки созданной ранее КЕ, телефон не отображается. Правильно ли я понимаю, что при создании КЕ, телефон в базу не пишется. Он просто отображается при открытии карточки? Дело в том, что в инструкции указано, что новые метод нужно вставить в скрипт ChildPageLoadCompleteAfterBaseScript. Но в карточке редактирования такого нет.
Я нашел процесс PageLoadCompleteSubProcess, там есть единственный скрипт без названия ScriptTask5. В него и вставил метод. Что сделал не так?
P.S. Сам скрипт, который в инструкции пришлось подправить, т.к. у меня названия полей отличаются.
Номер, при условии что поле, в которое он вставляется связано в полем в БД, в базу кончено же пишется.
Я вижу следующую логику:
1. Для поля "Интернет провайдер" определить событие "значение изменено".
2. В этом событии в скрипт вставить код подстановки номера телефона в поле, которое связано с полем в объекте "КЕ".
3. Сохранить изменения.
Что получим:
При создании новой записи: изначально поле с телефоном пустое, при изменении поля "интернет провайдер" оно заполняется. По нажатию на "ОК" пишется в БД. При открытии, значения подтянется в поле как и все остальные.
Действительно, была ошибка привзяки поля к Datasource.
Все работает, спасибо!