Здравствуйте,
есть проблема:
Создал справочник - добавил поле в Активность.
В карточке редактирования Email разместил это поле. Хочется, чтобы при выборе значения в справочнике в тело письма попадал текст из справочника. Создал скрипт в PersonalReplyEditChange:
var replyText = Page.DataSource.ActiveRow.GetTypedColumnValue("PersonalReply");
Page.BodyEdit.SetValue(replyText);
однако при изменении значения справочного поля в карточке вываливается ошибка - Значение с именем "PersonalReply" не найдено
Что я делаю не так?
Нравится
День добрый.
А где хранится "текст из справочника"? В поле Name объекта PersonalReply?
Если хотите заполнять BodyEdit тем что выбираете можно просто прописать:
[csharp]
Page.BodyEdit.SetValue(Page.PersonalReplyEdit.Text);
[/csharp]
на самом деле нужный текст хранится в поле ReplyText но как достучаться до него я пока не могу придумать =( пока получилось примерно то, что вы подсказали, только так:
var replyText = Page.PersonalReplyEdit.Text;
Page.BodyEdit.SetValue(replyText);
Если я правильно понял задачу, попробуйте подобную конструкцию:
[csharp]
// Получить Id записи справочника
Guid personalReplyId = Page.DataSource.ActiveRow.GetTypedColumnValue("PersonalReplyId");
string replyText = string.Empty;
if (personalReplyId != Guid.Empty)
{
// Получить Текст из справочника (можно в метод универсализировать)
EntitySchemaQuery esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "PersonalReply");
string replyTextColumnName = esq.AddColumn("ReplyText").Name; // "Текст из справочника"
Entity entity = esq.GetEntity(UserConnection, personalReplyId);
replyText = entity.GetTypedColumnValue(replyTextColumnName);
}
// Записать текст в Body
Page.BodyEdit.SetValue(replyText);
[/csharp]
PersonalReply - имя объекта-справочника
ReplyText - колонка объекта PersonalReply
Спасибо вам огромное, Дмитрий!
Заработало, но только после того как я заменил первую строку вашей конструкции на:
Guid personalReplyId = (Guid)Page.PersonalReplyEdit.Value;
теперь наш ДИТ снова сможет использовать для ответов пользователям кучу знакомых шаблонов из старого ServiceDesk =)