Технические вопросы
7.x

Открытие новой карточки Обращения

Всем доброго времени суток.
Версия 7.10.

Ситуация такая: в CTI панели добавлена кнопка Создания обращения - по клику на неё должна открываться карточка создания нового обращения Case и автоматически заполняться некоторыми данными (сейчас неважно, какими).

Функция-обработчик клика по кнопке в схеме CTIPanel сейчас выглядит так:

//Создание обращения
                                onCreateNewCase: function(){

                                        this.openCardInChain({
                                                id: "Id",
                                                schemaName: "CasePage",
                                                operation: "add",
                                                moduleId: this.sandbox.id + "_CasePage",
                                                //Автоматически устанавливаем значения в открываемой карточке
                                                defaultValues: []
                                        });
                                }

В результате клика тем не менее карточка открывается внутри панели (см. второй скриншот). Подозреваю, что проблема в moduleId.. как правильно указать настройки?

Нравится

6 комментариев

Для создания новой записи попробуйте указать пустой гуид в moduleId:

[javascript]
this.openCardInChain({
schemaName: "ContactPageV2",
operation: "add",
moduleId: "00000000-0000-0000-0000-000000000000",
defaultValues: [{name: "Name", value: "Some name"}, {name: "Test", value: "TestTest"}]
});
[/javascript]

Максим, то же самое.

[javascript]
this.openCardInChain({
schemaName: "CasePage",
operation: "add",
moduleId: "00000000-0000-0000-0000-000000000000",
//Автоматически устанавливаем значения в открываемой карточке
defaultValues: []
});
[/javascript]

Страница карточки загружается внутри боковой панели.

Может быть, надо вызывать это не в CTIPanel, а в схеме основного блока? Тогда где - ведь открыта может быть любая страница (списковая, карточка, справочник и тд), а боковая панель доступна везде.

Вот есть например такое сообщение для перехода по ссылкам:

[javascript]
this.sandbox.publish("PushHistoryState", {
hash: "SectionModuleV2/CaseSection/",
});
[/javascript]

Может здесь можно какие-либо параметры передать для инициализации новой записи? Или хотя бы где (в какой схеме) реализована подписка на это сообщение? Переход ведь работает везде, даже на SystemDesigner.

"Смородинов Денис" написал:Вот есть например такое сообщение для перехода по ссылкам:

Вот к этому сообщению я тоже пришёл в итоге.
opencardinchain не работает вообще. И сообщения прописывал, и moduleId с renderTo указывал.
Самое простое (на мой взгляд) сделать insert в нужный объект (создать запись с необходимыми полями),
и потом в колбеке [javascript]
var page = "ContactPageV2"; //имя схемы страницы редактирования
var entityId = //guid записи
this.sandbox.publish("PushHistoryState", {hash: Terrasoft.combinePath("CardModuleV2", page, "edit", entityId)});
[/javascript]

Данила, спасибо.

Я вчера сам уже склонился к такому же решению.

Показать все комментарии