Здравствуйте. Подскажите пожалуйста, есть ли документация (help), где описано какое событие окна или датасета за что отвечает и когда вызывается, последовательность их выполнения ?
Например, function dlDataOnDatasetBeforePost(Dataset, DoPost) работает когда нажимаю на кнопку "OK" документа.
Да есть, ссылка для ознакомления с событиями Dataset.
dlDataOnDatasetBeforePost - срабатывает не только в момент нажатия на кнопку [Ok], а перед попыткой отправить данные в базу для ее последующей вставки в таблицу,в момент вызова метода из кода:
Dataset.Post();
что на самом деле и происходит в момент нажатия на кнопку.
Если по какой либо причине, необходимо отменить событие post, то в событии dlDataOnDatasetBeforePost необходимо написать код:
В карточке контакта есть поле "Email"
В карточке контрагента есть поле "Домен e-mail"
Нужно реализовать следующую задачу: если при создании контакта в карточке не был указан контрагент, то он определился по Домену e-mail.
Например:
В системе создан контрагент "Компания", у которого "Домен e-mail" указан "gmail.com"
Cоздали контакт "Иванов Иван", у которого указали почту "123@gmail.com" и не указали контрагента. После добавления записи, контрагент должен подставиться автоматически, то есть "Компания"
Создан БП, который должен запускаться при создании контакта и если в карточке контакта не указан контрагент. В качестве начального события используется Сигнал (если добавлен контакт), далее элемент Чтение контакта (считываем данные добавленного контакта). Далее нам нужно найти контрагента, чей домен содержится в e-mail клиента.
Как это реализовать? Ведь я от контакта получаю почту "123@gmail.com", а в домене контрагента указан gmail.com
"Гольфельд Елена Андреевна" написал:Как это реализовать? Ведь я от контакта получаю почту "123@gmail.com", а в домене контрагента указан gmail.com
а в этом вам поможет следующая документация с сайта Майкрасофт. String.Split
т.е вам Елена после получения емайл его нужно распарсить (разделить на части) и полученный домен сравнить с доменом контрагента. вот решение вашего вопроса.
Вам необходимо реализовать логику, согласно которой при сохранении записи, если поле "Email" заполнено, а поле "Контрагент" не заполнено, система будет преобразовывать значение в поле "Email" в домен. Для этого Вы можете использовать регулярное выражение.
Далее, используя ESQ Вы можете найти контрагента, у которого значение в поле "Домен" совпадает с рассчитанным значением.
В системе такая логика реализована при загрузке писем в систему - на деталь "Участники активности" добавляются контакты, у которых на детали средство связи есть записи, которые совпадают со значениями в поле "От кого", "Кому", "Копия". Поскольку в email приходят значения вида test@test.test<'Test email user'>, то данное выражение по регулярному выражению преобразовывается в email вида test@test.test. И уже после преобразования значения сравниваются.
Есть хорошо налаженная система прав раздела договоров. у пользователей есть права только на чтение. Как можно сделать чтоб права оставались прежними но можно было изменить одно поле, сделать его редактируемым
Первое, что пришло в голову - для пользователей поле TextEdit вместо старого (или что там у вас, без привязки к датасету) на карточке, по ОК чтение содержимого поля, вызов хранимой процедуры (сначала предложил функцию, но возвращать нечего наверное ей:)) с параметрами (RecordID, EditValue) на сервере, которая пишет от имени db_owner что надо и куда надо.
Плюс понятное дело заполнение поля на событии onPrepare окна
Либо сделайте действие в контекстное меню грида с подъемом диалогового окна с одним единственным полем для ввода значения, а далее аналогично
Пробовал, там нужно поставить маркер в одно поле, по дебагеру прошелся записало и сохранило, но значение в записи не изменилось. Сейчас попробую создать процедуру
"Радчук Виталий Владимирович" написал:по дебагеру прошелся записало и сохранило
правильно, на уровне сервисов TS как бы сохраняется, но у пользователя не прав на запись на уровне сервера в таблицу, вот это надо и обходить - процедурой, где запрос выполняется от другого имени
что то типа такого в коде
CREATE PROCEDURE [dbo].[tsp_NevermindRightsManagement]
WITH EXECUTE AS 'dbo'
не забудьте права пользователям на выполнение процедуры дать
Добрый день.
Есть такой метод Terrasoft.showInputBox, который выводит всплывающее окно по центру экрана, в котором можно отобразить свои кастомные поля.
Как в такое окно добавить выпадающий список и наполнить его данными?
А также как расширить текстовое поле "Текст" на несколько строчек?
Вот наш код:
Спасибо за ответ.
Как я понял надо использовать list и prepareList.
Но я не понял откуда оно будет брать метод в bindTo (EntityVirtualList и getEntityItems).
Есть ли примеры реализации этих методов.
Также пробовал добавить "contentType": Terrasoft.ContentType.LONG_TEXT, не помогло.
"Маланчак Василий Тарасович" написал:Но я не понял откуда оно будет брать метод в bindTo (EntityVirtualList и getEntityItems).
Добрый день Василий!!!
- EntityVirtualList описываете в Атрибутах формы как коллекция
- getEntityItems это метод получения и загрузки в список результатов какой-либо SQL выборки, т.е с помощью EntitySchemaQuery создаете запрос, выполняете его. Результат выполнения запроса описываю ниже:
documentIssuanceSelect.getEntityCollection(function(response){if(response.success){
var responseItems = response.collection.getItems();
var columnList ={};
Terrasoft.each(responseItems, function(item){
columnList[item.get("Id")]={
value: item.get("Id"),
displayValue: item.get("Contact")};});
list.clear();
list.loadAll(columnList);}}, this);
в данном примере я как раз загружал список контактов в выпадающее меню.
"Маланчак Василий Тарасович" написал://value: item.get("Id"),
Василий здесь комментировать не нужно. Вы как потом узнаете Id выбранной записи? И как описать коллекцию, об этом написал выше. Далее уже берем Дебаггер и смотрим что у вас получается. Но скорее всего не получается из-за того, что Запросы у нас асинхронные, а страница к тому моменту, как исполнится запрос уже отрисуется и конечно в коллекции будет НУЛЛ. Коллекцию нужно формировать перед отрисовкой страницы. И тогда у вас все будет работать корректно.
Здравствуйте, контролл «MessageBox» слишком упрощен, и не подходит для того что Вы хотите реализовать. Он не работает в контексте вызывающей страницы и не использует её атрибуты.
Вам необходимо использовать модальное окно, которое под собой имеет полноценную схему страницы. С атрибутами, сообщениями, методами.
Для Вашей задачи подходит «ModalBox», примеры использования которого, в системе, это: «WelcomeScreen», «MapsModule», «SupplyPaymentProductDetailModalBox», «TagModuleSchema».
В качестве примера прикладываю исходный код тесового общения между страницей контакта, и простейшим модальным окном с одним единственным текстовым полем и кнопкой. Заполнив которое, по нажатию кнопки, значение из поля вернется в страницу контакта, где будет выведено через console.log.
В примере, страница модального окна это «Схема модели представления карточки», без указания родительской схемы.
Модуль модального окна это «Модуль», с одной единственной зависимостью на вышесозданную страницу.
Вызов из карточки контакта, это замещающая схема карточки контакта.
А уже с полноценной страницей, можете спокойно размещять там любые компоненты, и работать с ними так, как в обычных страницах. Включая размещение атрибута листа и заполнение его через prepareList.
да я модальными окнами пользуюсь, пусть немного не так но пользуюсь. Я описываю свои модальные окна по отдельности, View и ViewModel. Так нас учили еще когда была 7.3 версия. Так приучает к дисциплинированности. Ваш вариант очень интересен и удобен, но в данном варианте большую часть работы делает Генератор страницы.
но вот какой у меня возник вопрос. Если данный пример так прост и интересен, и можно с легкостью делать с меньшими затратами модальные окна. Вопрос зачем тогда в системе Появилась "Мини-карточка редактирования" и остались модальные окна? Может что-то должно было упраздниться? чтобы в голове осталось только Одна сущность, а не две. Я конечно понимаю, что мини-карточка редактирования обладает по умолчанию более богатым функционалом, нежеле чем модальное окно. Но еще раз повторюсь мне кажется с появлением новинки, модальное окно должно было остаться в прошлом.
Спасибо за ответ.
Но есть некие проблемы с отображением полей на карточке.
Если ставить "parentName": "MyGridContainer" то не работает коректно.
Не отображается поле для ввода, и кнопка работает с "глюками"(нажимается не с первого раза).
Если же "parentName": "MyContainer" то элементы отображаются и работают, но нет возможности использовать свойства layout .
Скрин окна прилагаю.
пожалуйста по приведенному примеру, что писал выше Максим, создайте пожалуйста свою Модальную страницу. После создания, если есть проблемы, пожалуйста Василий выложите во вложение все 3 файла, как в примере максима. И тогда можно будет предметно понимать в чем у вас возникла сложность. сейчас по одному скриншоту очень сложно ориентироваться. спасибо!!!
Добрый день
Делал полностью по примеру.
1. Создал Схему модели представления карточки (UsrMyModalPage), скопировал код из stranicamodalnogookna.txt
2. Создал Модуль(UsrMyModalModule), Скопировал в него текст из modulmodalnogookna.txt, добавил зависимость на UsrMyModalPage ( Custom ).
3. Заместил страницу контакта. Скопировал код из vyzovizkartochkikontakta.txt.
Своей логики пока не добавлял никакой
Не обратил внимание что генератор неадекватно себя ведет с грид контейнерами в модальном окне.
Используйте обычный контейнер, для Вашей задачи должно хватить, многострочный эдит сделать там можно.
Добрый день! подскажите, у кого нибудь получилось? Я повторяю пример и появляется только чистый модалбокс. В консоли ошибка : Script error for "UsrMyModalPageStructure" :(
Надежда, обратите внимание, что это примеры для довольно старой версии 7.7, сейчас актуальна уже 7.17. Какой именно пример из переписки Вы использовали? Есть более подробная информация об ошибке, в отладчике выполнение не смотрели?
Добрый день! Коллеги подскажите как реализовать следующую задачу,
мне нужно в разделе в пункте меню «Действия» , в базе выполнить запрос (select )
затем результат выгрузить в Excel файл.
зачем писать вам запрос если вы можете с помощью "Расширенного фильтра" выполнить фильтрацию и результат Экспортировать в Эксель в формате CSV. Для выполнения экспорта в Эксель в CSV формате в меню Действия есть пункт меню "Экспортировать список в файл".
а зачем писать запрос, если результатом будет пользоваться пользователь. И как известно у пользователей всегда аппетиты меняются. Вам тогда все время придется переписывать запрос. А не легче вашу задачу разделить на более мелкие и уже отсюда настроить для пользователей Расширенные фильтры?
Добрый день!
Дело в том что задача именно поставлена таким образом, и результатом нужен файл который будет доступен другим пользователям (без врм), и потом это начальная задача нужна чтобы получить опыт работы с функционалом, в дальнейшем использовать для создания других более сложных отчетов.
Хотелось бы получить информацию именно по поставленной задаче, а не обходные пути решения при помощи фильтров.
"Евдокимов Евгений" написал:Хотелось бы получить информацию именно по поставленной задаче, а не обходные пути решения при помощи фильтров.
Евгений это не обходной путь, это правильный путь который закладывает по умолчанию Компания Террасофт в свою систему. Чтобы именно пользователь с помощью стандартного функционала смог выполнить построение любых "сложных" фильтров, и после использовать результаты данных выборок в своей работе.
по вашей задачи, вам тогда требуется изучить документацию на Академии по ссылке что предоставлял Илья и если будут вопросы, задать уже в данной теме. спасибо!!!
"Евдокимов Евгений" написал:значение ActiveRow (test) отображается в окне , а когда пытаюсь выдать сообщение
со значением в поле projektsumm пусто
Евгений "projektsumm" - это объект или значение, т.е это справочная информация Lookup или Значение Decimal? плюс метод "showInformationDialog" первым значение "caption" принимает строковое значение. хотя это может быть не причиной. нужно смотреть вам Евгений, что у вас возвращает "this.get("projektsumm")".
Вопрос Дмитрий. А как точность влияет на вывод данных на экран? Ваше мнение. Я все больше склонялся к тому, что тип данных не соответствовал входящим параметрам метода "showInformationDialog". Но какие только эксперименты на Яваскрипте не провел, это не повлияло. На C# да влияет все. Яваскрипт более гибгий оказался к данному вопросу. Как я уже писал выше не видя полностью кода, иногда очень сложно ответить на данные вопросы. так как у себя тестируешь все это-же самое элементарное, все работает.
как говорят в медецине. неверно собранный анамнез :)
Я на Ваш вопрос ответить не в состоянии. Но данную проблему я решал в рамках преднастроенной страницы, так вот единственный способ заставить дробное нормально отображаться - вот такой, кстати метод предложен саппортом.
вот весь кусок кода
define('DPZzayvkiSection', ['GridUtilitiesV2','GeneralDetails','BusinessRuleModule',"GoogleIntegrationUtilities", "RightUtilities",
"ConfigurationConstants", "GoogleIntegrationUtilitiesV2"],
return actionMenuItems;
},
showInfo: function() {
var test = this.get("number");
this.showInformationDialog(test);
},
проблемное место выделил поле number строковое
и в этом случае диалоговое окно пустое
я в замешательстве , кроме ActiveRow никакие значения не выводятся(
хочу понять что я делаю не так?
var activeRow = this.get("ActiveRow");
var item = this.get("GridData").get(activeRow);
var account = item.get("Account"); // например
но только вы имейте в виду, что item = this.get("GridData").get(activeRow); вам даст только то, что изображено в гриде. Если хотите что-то еще, то придется esq применять. Как - примеров полно.
selectRegnumOtherAccount: function(callback, regnum, config) {
var viewModel = this;
var recordId = this.get("Id");
var select = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Account"
});
select.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_COLUMN, "Id");
select.addColumn("Name");
select.addColumn("UsrRegNumber");
var filters = Ext.create("Terrasoft.FilterGroup");
filters.addItem(select.createColumnFilterWithParameter(Terrasoft.ComparisonType.NOT_EQUAL, "Id",
recordId));
filters.addItem(select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrRegNumber",
regnum));
select.filters = filters;
select.execute(function(response) {
if (response.success) {
if (response.collection.getCount() > 0) {
var selectAccount = response.collection.getByIndex(0);
viewModel.set("myOtherAccountId", selectAccount.get("Id"));
viewModel.set("myExistsOtherAccount", true);
callback.call(this, response);
} else {
viewModel.set("myExistsOtherAccount", false);
callback.call(this, response);
}
}
}, viewModel);
},
"Евдокимов Евгений" написал:после того как добавил колонку в грид
number стал отображаться в окне
Евгений так это естественно. Все колонки в запрос не попадают. Попадают только те которые есть в профили Раздела и те которые мы ручками добавляем в метод Раздела "getGridDataColumns". Вот его пример:
getGridDataColumns: function(){
var gridDataColumns =this.callParent(arguments);if(!gridDataColumns.Document){
gridDataColumns.Document={
path:"Document"};}return gridDataColumns;}
"Дмитрий Степанов" написал:Хотя у меня было универсальнее :)
А универсальнее это как Дмитрий. Поделитесь опытом. Я иду по стандартным канонам, что заложены в Базовую модель, в Базовые страницы. И вот если что-то стандартного не хватает, вот тогда расширяю, написав при этом новые классы, новые инструменты и т.д.
Базовые средства добавляют к ссылкам приставку http://, поэтому реализовать ссылку на корпоративный сервер, используя стандартный функционал детали "Файлы и ссылки" не получится.
Вы можете хранить некликабельные ссылки в поле "Примечания", либо создать дополнительную логику, которая для ссылок вида \\yourservername не будет добавлять в начало http://
"Демьяник Алексей" написал:Базовые средства добавляют к ссылкам приставку http://, поэтому реализовать ссылку на корпоративный сервер, используя стандартный функционал детали "Файлы и ссылки" не получится.
Алексей подскажите пожалуйста, а если хранить URL ссылку с следующем формате:
Михаил, увы, даже при таком формате ссылки передаваться не будут. Браузер автоматически добавит http:// и свалится с ошибкой о недоступности сервера. Локальные ссылки в bpm'online не поддерживаются.
Доброго дня Скажіть як можна приховати поле сторінки в режимі перегляду
В режимі редагування я зміг приховати поле таким чином:
structure.userCode = function() {
var dear = this.find('Dear');
dear.visible = false;
}
В режимі перегляду карточки цей код не приховує поле
Дякую
Там є також властивість "viewVisible" для відображення поля в режимі перегляду карточки
Як можна прописувати свої стилі для полей карточки? Тобто не використовуючи готові назви класів CSS а напряму писати для прикладу "margin-top" : "10px" ?
У базовых контролов такой возможности нет. Разве что Вы в рантайме после загрузки карточки будете использовать jQuery и дописывать стили. Такой вариант возможен, но не приветствуется.
Данный код отрабатывает некорректно, хотя был сделан на основе руководства, по которому можно добавить грид на свою деталь. Его некорректная работа отражается в том, что при попытке добавить запись или редактировать имеющуюся - не отрисовывается строка. Пример на скриншоте.
Как показал отладчик - не работает строка
после создания детали, нужно в профили Детали добавить колонки. Так как жестко при инициализации детали у вас не указаны колонки. к примеру в 7.8 есть детали от календаря "WorkingWeekDetail" в данной детали колонки задаются жестко при инициализации детали. В вашем случае их нужно задать в профили детали, вызвав Действие --> Настройка колонок.
после создания детали, нужно в профили Детали добавить колонки. Так как жестко при инициализации детали у вас не указаны колонки. к примеру в 7.8 есть детали от календаря "WorkingWeekDetail" в данной детали колонки задаются жестко при инициализации детали. В вашем случае их нужно задать в профили детали, вызвав Действие --> Настройка колонок.
Колонка контакт ведь добавлена в деталь на скриншоте. Или нужно добавить какие то другие колонки?
Тогда Александр в дебагере найдите точно где вылетает Ошибка "undefined" и я вам подскажу из-за чего она вылетела
var columnName = columnConfig.key[0].name.bindTo;
Вот эта строчка файла ConfigurationGridUtilities. Функция generateActiveRowControlsConfig. Почему то в 7.7 эта функция возвращает один объект, а в 7.8 массив.
показываю эксперимент чтобы вы понимали. Но сначало поясню еще раз метод "generateActiveRowControlsConfig" класса "Terrasoft.ConfigurationGridUtilities" генерирует конфигурацию элементов редактирования активной строки реестра Детали. в методе отрабатывается цикл
в данном цикле во входящих значениях "columnsConfig" - это массив колонок Профиля детали. Показываю пример на скриншотах.
вот страница редактирования "Сервисов"
На данной странице редактирования есть деталь "Сервисные инженеры". По умолчанию деталь имеет колонки:
При добавление на детали Сервисные инженеры, строка реестра имеет следующий вид:
Если удалить колонку, через "Действия" --> "Настройка колонок". К примеру удаляем "Уровень поддержки", то строка реестра редактирования будет иметь следующий вид:
И в результате как я говорил выше Система массив колонок берет из Профиля детали, если колонки не заданы жестко программно. Поэтому и вопрос вы в профили детали Добавили колонки?
Еще раз Александр повторюсь, где конкретно вылетает ошибка? у строки
var columnName = columnConfig.key[0].name.bindTo;
метода "generateActiveRowControlsConfig" идет получение массива "columnConfig", далее через точку "key[0]" и так далее где конкретно через точку вылетает ошибка.
Здесь Александр это где? это после key[0], после name, или после bindTo? это первое а второе вы сами ради сравнения разверните стек, что у вас на скриншотах, в 7.7 и в 7.8 и сравните что есть и чего нехватает. вот вам и будет ответ на каком месте выходит ошибка.
Провел одинаковые операции на 7.7 и 7.8. Создал объект, в качестве родительского указал - Базовый справочник. Добавил колонку. Добавил деталь. Добавил деталь в раздел. Произвел настройку колонок. Изменил код схемы полученной детали. В результате на версии 7.7 все работает, а на версии 7.8 нет.
"Бахматов Александр Валерьевич" написал:
Демьяник Алексей пишет:
Здравствуйте!
Это не ошибка 7.8.0. В версии 7.8.0 можно найта редактируемый реестр, например, в детали OrderProductDetailV2 - он корректно работает.
Может быть попробовать тогда использовать тот код карточки, что в детали OrderProductDetailV2? Или этого недостаточно?
Я не пробовал создавать редактируемые реестры, но по опыту общения с системой понял, что нужно экспериментировать. Скажите, пожалуйста, Ваша деталь наследуется от BaseGridDetailV2?
"Демьяник Алексей" написал:Я не пробовал создавать редактируемые реестры, но по опыту общения с системой понял, что нужно экспериментировать. Скажите, пожалуйста, Ваша деталь наследуется от BaseGridDetailV2?
мы как участники сообщества Доступ в базы данных чужих пользователей не имеем. (на доступ мы и ненапрашиваемся :smile: ) Данный доступ есть у вас и я думаю у технической поддержки компании Террасофт. Если у вас есть проблемы, то лучше описывать их более подробно и прикладывать скриншоты.
"Developer2" написал:Почему добавленные через OData звонки не отображаются в разделе Звонки.
Во вкладке История у конктакта краткая информация о звонке отображается.
Сравните записи в базе напрямую, полученную через одата и обычную, разницу и увидите... может типа какого не хватает заполненного
Если ондеманд, поищите тут был sql executer для выполнения запросов
Почему добавленные через OData звонки не отображаются в разделе Звонки.
Во вкладке История у конктакта краткая информация о звонке отображается.
Сравните записи в базе напрямую, полученную через одата и обычную, разницу и увидите... может типа какого не хватает заполненного
Если ондеманд, поищите тут был sql executer для выполнения запросов
Спасибо за ответ!
Разобрался. Все прикреплялось. Я просто на странице не ту вкладку смотрел. Нужно было на Список переключить.
У меня еще один вопрос. На странице https://academy.terrasoft.ua/documents/customer-center/7-8-0/zapis-i-pr… сказано, что можно прослушивать звонки.
Так вот, я пока через интерфейс пробовал добавить ссылку с записью на разговор, она добавляется, но кнопка прослушать не появляется. Возможно какая-то настройка отключена, поскольку в примечании говорится
Возможность прослушать аудиозапись звонка будет доступна при выполнении персональных настроек.
Можете подсказать будет ли работать через ссылку на аудиозапись или это фича только для Oktell и Webitell?
"Developer2" написал:Можете подсказать будет ли работать через ссылку на аудиозапись или это фича только для Oktell и Webitell
Зная как обычно такие модули сделаны, автоматом фича включится именно для официально представляемых интеграций, а если ссылка своя то либо в поддержку, либо живьем анализировать код, где "прослушать запись".
В принципе при наличии ссылки все что нужно это заставить браузер по клику проиграть запись...
Можете подсказать будет ли работать через ссылку на аудиозапись или это фича только для Oktell и Webitell
Зная как обычно такие модули сделаны, автоматом фича включится именно для официально представляемых интеграций, а если ссылка своя то либо в поддержку, либо живьем анализировать код, где "прослушать запись".
В принципе при наличии ссылки все что нужно это заставить браузер по клику проиграть запись...
При интеграции с Мегапланом именно так и делали. Вставляли ссылку и затем через chrome extension изменяли страницу.
Настроен ящик тех.поддержки, при поступлении на него письма, автоматически создается обращение.
Подскажите пожалуйста, столкнулась с такой проблемой: хочется, чтобы некоторые поля в созданном по входящему письму обращении, заполнялись так же автоматически (такие как Категория, Сервис, Группа ответственных и др).
Я так понимаю, данный функционал реализован в IncidentRegistrationFromEmailHelper.
Какие изменения внести, чтоб автозаполнялись нужные поля? Как реализовать данный функционал, может кто-нибудь уже сталкивался с данной задачей?
функционал по регистрации Инцидента по Входящему письму реализован в классе Terrasoft.Configuration.IncidentRegistrationFromEmailHelper пакета "Case" вызывается метод "RegisterCase" в бизнес-процессе "IncidentRegistrationFromEmailProcess" пакет "SLM". Для решения вашей задачи вам требуется перегрузить метод "CreateNewCaseByEmail" класса Terrasoft.Configuration.IncidentRegistrationFromEmailHelper. Если не знаете как это сделать, то прошу в ответ конкретно описать какие Поля "Обращения" вы желаете заполнить автоматически при получение Входящего письма, я вам помогу перегрузить Класс и Метод класса
извеняюсь Елена не увидел в торопях, что данный метод Приватный и не виртуальный, но и здесь выход есть. Можно пойти по пути отлавливать событие когда уже обращение Создано, и Апдейтить данное обращение добавляя недостающую информацию из Входящего письма. Ведь письмо уже после создания обращения привязано к нему.
"Гольфельд Елена Андреевна" написал:Как выполнить данное действие?
Данной действие нужно выполнить с помощью Бизнес-процесса. Где начало бизнес-процесса это "Начальные события" --> "Сигнал". Ниже пример инициализации "Сигнала":
"Гольфельд Елена Андреевна" написал:командой SetColumnValue(Название_поля_в_обращении, Значение)???
да все верно получаете Сущность Обращение и выполняете обновление полей, после сохраняетесь, делаете это все в скрипте бизнес-процесса