7.7
кнопка в карточке редактирования
меню
Технические вопросы
7.x

Пропадает текст в ActionMenuItems

Добавляю в кнопку "Действие" свой пункт, все по фэн-шую, то есть SDK.
Вот фрагмент:

actionMenuItems.addItem(this.getActionsMenuItem({
        Type : "Terrasoft.MenuSeparator",
        Caption : ""
}));
// Добавление пункта меню [Проверить заказ] в список действий страницы редактирования.
actionMenuItems.addItem(this.getActionsMenuItem({
// Привязка заголовка пункта меню к локализуемой строке схемы.
        "Caption" : {
        bindTo : "Resources.Strings.UsrCheckOrder"
},

Неожиданная проблема в том, что при первом запуске виден текст локализованной строки "Проверить заказ", а после отрабатывания процесса, или закрытии-открытии окна с заказами, текст пропадает, но пункт в меню все равно есть, и по нажатию на него отрабатывает процесс.
А текста не видно.. что нужно проверить? :(

Нравится

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

Здравствуйте, Алексей Владимирович.

Листинг кода предоставленный Вами верен и данное поведение наблюдаться не должно, предоставьте полный листинг кода схемы для проверки и поиска причины данного поведения.

Пожалуйста..
[javascript]
define("OrderPageV2", ["OrderPageV2Resources", "GeneralDetails", "ProcessModuleUtilities", "NotificationsModule"],
function(resources, GeneralDetails, ProcessModuleUtilities, NotificationsModule) {
return {
entitySchemaName : "Order",
details: /**SCHEMA_DETAILS*/{},/**SCHEMA_DETAILS*/
diff: /**SCHEMA_DIFF*/[],/**SCHEMA_DIFF*/
attributes: {},
methods: {
getActions : function() {
// Вызывается родительская реализация метода для получения
// коллекции проинициализированных действий базовой страницы.
var actionMenuItems = this.callParent(arguments);
// Добавление линии сепаратора для визуального отделения пользовательского действия от списка
// действий базовой страницы.
actionMenuItems.addItem(this.getActionsMenuItem({
Type : "Terrasoft.MenuSeparator",
Caption : ""
}));
// Добавление пункта меню [Проверить заказ] в список действий страницы редактирования.
actionMenuItems.addItem(this.getActionsMenuItem({
// Привязка заголовка пункта меню к локализуемой строке схемы.
"Caption" : {
bindTo : "Resources.Strings.UsrCheckOrder"
},
// Привязка метода обработчика действия.
"Tag" : "CheckOrderPay"
// Привязка свойства видимости пункта меню к значению, которое возвращает метод isAccountPrimaryContactSet.
//"Visible": { bindTo: "isAccountPrimaryContactSet" }
}));
actionMenuItems.addItem(this.getActionsMenuItem({
Type : "Terrasoft.MenuSeparator",
Caption : ""
}));
return actionMenuItems;

},
// Метод-обработчик выбора действия.
CheckOrderPay : function() {
// Получение идентификатора заказа.
var OrderId = this.get("Id");
// Объект, который будет передан в качестве аргумента в метод executeProcess.
var args = {
// Имя процесса, который необходимо запустить.
sysProcessName : "UsrCheckOrder",
// Объект со значением входящего параметра для процесса.
parameters : {
idOrder : OrderId
}
};
// Запуск пользовательского бизнес-процесса.
ProcessModuleUtilities.executeProcess(args);
//Terrasoft.configuration.NotificationsModule.onShowNewNotificationClick();
//this.Location.Reload(false);
}
},
rules : {},
userCode : {}
};
});
[/javascript]

В Resources.Strings.UsrCheckOrder Заголовок и значение одинаковы, Проверить заказ
Строчка с Visible закоментирована в точности как указано, но функции, указанной там, в теле схемы нет..

Здравствуйте, Алексей Владимирович.

Мы проанализировали Ваш код. Данное поведение возникает у Вас, по причине того, что используя статью http://academy.terrasoft.ru/documents/docs/technic/SDK/7.7.0/AddActionT… Вы не выполнили пункты начиная с 6-го. После добавления локализированной строки в OrderSectionV2 данная проблема возникать не будет.

Спасибо за анализ, но я не повторяю типовое задание, а делаю свое, и у меня нет необходимости контролировать видимость пункта в зависимости от статуса заказа.
При любом статусе кнопка видна, по задумке.
Сейчас ситуация такова:
1. Ctrl+F5
2. Создаю заказ. Текст пункта виден.
3. Сохраняю заказ.
4. Открываю на редактирование только что созданный заказ - текст не виден.
5. Ctrl+F5 и открываю заказ опять - текст виден.
6. Закрываю заказ кнопкой "Закрыть".
7. Открываю заказ, текст пункта не виден.

Я понимаю, что, возможно, я где-то что-то не так сделал. Мне интересно что делать дальше?
Сейчас вот подумалось, что надо сделать новую локализуемую строку и попробовать ее назначить вместо прежней. Сделаю, отпишусь.

Увы, ситуация не изменилась, текст пропадает.
data-item-marker и текст, с ним совпадающий, показывается только в первый раз после полной перезагрузки.
Попробую пересоздать замещающую схему.

Здравствуйте, Алексей Владимирович.

Копирую Ваш код предварительно изменив его для ContactPageV2 и добавляю локализированную строку.

Результат:
При создании контакта элемент виден.

При открытии контакта элемент отсутствует.

Добавляем замещающую схему раздела с такой же локализированной строкой.

В результате элемент не пропадает.

Сергей, Спасибо! Урок усвоен :redface:

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