Отображение данных в одном поле из разных справочников
Добрый день, Уважаемые знатоки CRM.
У меня вот какая проблема. Заказщик хочет видеть в одном поел данные с разных справочников. Поле ФИО я переименовал в Полное Имя. создал дополнительные поля от дельно для Имени и Фамилии. Теперь нужно все данные с этих полей вставлять автоматически в поле (Полное Имя). А как это сделать немного затрудняюсь.
Кто сталкивался раньше с такой проблемой, подскажиет пожалуйста как вы ее решили.
Благодарю за скорый ответ.
Нравится
При заполнении полей Имя и Фамилия заполнять поле Полное Имя автоматически (по анологии с заполнение поля "обращение") и выводить его как основное поля для отображения.
Если я правильно понял вопрос.
Позвольте уточнить. Событие на wnd_ContactEdit?!
Проверил все события и такой функции что-то не нашел.
Получается на Поле(Name) его событие(OnDatasetChangeDataField)и там как я понял нужно писать скрипт?!
Вот нужное вам событие:
function SelfOnDatasetDataChange(DataField) { if ((Contact.IsUpdating || !Assigned(DataField) || (IsEmpty(DataField.Value)))) { return; }; var Dataset = DataField.ParentDataFields.ParentDataset; Contact.IsUpdating = true; try { if (DataField.Name == 'Name') { var Dear = GetDearFromName(DataField.Value); Dataset.Values('Dear') = Dear; return; } if (!Assigned(DataField.LookupDataset)) { return; } if ((DataField.LookupDataset.State == dstInactive) && (DataField.Name != 'CountryID')) { return; } if (DataField.Name == 'JobID') { var JobTitle = DataField.LookupDataset.Values('Name'); Dataset.DataFields('JobTitle').Value = JobTitle; return; } if (DataField.Name == 'AccountID') { var LookupDataset = DataField.LookupDataset; if (!IsEmptyStr(DataField.DisplayValue)) { FillInformationBySelectedItem(Dataset, LookupDataset, DoYouWantToFillContactEntriesMessage); } return; } ProcessAddressFieldChanged(DataField); } finally { Contact.IsUpdating = false; } }
Всетаки придется писать скрипт((( А с этим у меня проблема:exclaim: Я по администраторской части больше.
Может вы мне сможете помощь?! Буду вам признателе и благодарен.
Вячеслав, добрый день.
Допустим, Вы создали два дополнительных поля для имени и фамилии с названиями FirstName и LastName. Поле "Полное имя" у Вас носит название Name.
Для реализации необходимой Вам функциональности Вам необходимо добавить примерно такой код в вышеупомянутую функцию SelfOnDatasetDataChange:
if ((DataField.Name == 'FirstName') || (DataField.Name == 'LastName')) { var FirstName = Dataset.ValAsString('FirstName'); var LastName = Dataset.ValAsString('LastName'); if ((FirstName != '') && (LastName) != '') { FirstName = FirstName + ' '; } Dataset.Values('Name') = FirstName + LastName; return; }
Этот код необходимо вставить перед строчкой ProcessAddressFieldChanged(DataField);
Данный код приводится в качестве примера. Для корректной работы в Вашей конфигурации его необходимо отредактировать (например, заменить 'FirstName' и 'LastName' на названия полей в Вашей конфигурации).
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.