Всем доброго времени суток.
Версия 7.10.
Ситуация такая: в CTI панели добавлена кнопка Создания обращения - по клику на неё должна открываться карточка создания нового обращения Case и автоматически заполняться некоторыми данными (сейчас неважно, какими).
Функция-обработчик клика по кнопке в схеме CTIPanel сейчас выглядит так:
onCreateNewCase: function(){
this.openCardInChain({
id: "Id",
schemaName: "CasePage",
operation: "add",
moduleId: this.sandbox.id + "_CasePage",
//Автоматически устанавливаем значения в открываемой карточке
defaultValues: []
});
}
В результате клика тем не менее карточка открывается внутри панели (см. второй скриншот). Подозреваю, что проблема в moduleId.. как правильно указать настройки?
Нравится
Для создания новой записи попробуйте указать пустой гуид в moduleId:
this.openCardInChain({ schemaName: "ContactPageV2", operation: "add", moduleId: "00000000-0000-0000-0000-000000000000", defaultValues: [{name: "Name", value: "Some name"}, {name: "Test", value: "TestTest"}] });
Максим, то же самое.
this.openCardInChain({ schemaName: "CasePage", operation: "add", moduleId: "00000000-0000-0000-0000-000000000000", //Автоматически устанавливаем значения в открываемой карточке defaultValues: [] });
Страница карточки загружается внутри боковой панели.
Может быть, надо вызывать это не в CTIPanel, а в схеме основного блока? Тогда где - ведь открыта может быть любая страница (списковая, карточка, справочник и тд), а боковая панель доступна везде.
Вот есть например такое сообщение для перехода по ссылкам:
this.sandbox.publish("PushHistoryState", { hash: "SectionModuleV2/CaseSection/", });
Может здесь можно какие-либо параметры передать для инициализации новой записи? Или хотя бы где (в какой схеме) реализована подписка на это сообщение? Переход ведь работает везде, даже на SystemDesigner.
"Смородинов Денис" написал:Вот есть например такое сообщение для перехода по ссылкам:
Вот к этому сообщению я тоже пришёл в итоге.
opencardinchain не работает вообще. И сообщения прописывал, и moduleId с renderTo указывал.
Самое простое (на мой взгляд) сделать insert в нужный объект (создать запись с необходимыми полями),
и потом в колбеке
var page = "ContactPageV2"; //имя схемы страницы редактирования var entityId = //guid записи this.sandbox.publish("PushHistoryState", {hash: Terrasoft.combinePath("CardModuleV2", page, "edit", entityId)});
Данила, спасибо.
Я вчера сам уже склонился к такому же решению.