Мне необходимо переименовать AccountProfile поле "добавить" на "создать", как это можно сделать?
Нравится
Кроме значения локализируемой строки, обратите внимание на функцию initAddRecordButtonCaption в BaseProfileSchema:
/** * Initializes add record button caption. * @protected */ initAddRecordButtonCaption: function() { var caption = this.get("Resources.Strings.AddRecordButtonCaption"); var editPages = this.getEditPages(); if (editPages && editPages.getCount() === 1) { var editPage = editPages.getByIndex(0); caption = editPage.get("Caption"); } this.set("AddRecordButtonCaption", caption); },
То есть значение не всегда берётся из строки.
Чтобы отключить эту логику получить нужное Вам поведение, можно в Custom создать переопределённую AccountProfileSchema с кодом:
/** * Account profile class. * @class Terrasoft.AccountProfileSchema */ define("AccountProfileSchema", ["CommunicationOptionsMixin"], function() { return { entitySchemaName: "Account", methods: { /** * Initializes add record button caption. * @protected */ initAddRecordButtonCaption: function() { var caption = this.get("Resources.Strings.AddRecordButtonCaption"); this.set("AddRecordButtonCaption", caption); } } }; } );
И в этой же схеме поменять слева значение строки AddRecordButtonCaption на «Создать контрагента».
Это тянется из ActionKindCaption таблицы SysModuleEdit (SysModuleEditLcz). Не придумал способа изящней, как сделать прямое обновление в БД.
Update SysModuleEditLcz set ActionKindCaption=N'Создать контрагента' where id = '77FAE75C-861E-4D76-8A47-A9CE8F843D4C' -- id записи на русском языке для раздела контрагент
Поменяется и здесь и в разделе контрагенты
Алексей Следь,
А можете подсказать, где можно посмотреть id записи? У меня получается найти нужный фрагмент в базе локализации, хотя вроде как все правильно вбил в поиск базы. При попытке найти необходимое предложение ничего не выходит.
Необходимо изменить значение локализуемой строки AddRecordButtonCaption в AccountProfileSchema. Это правильный вариант, но он может не сработать из-за бага в системе и тогда нужно обновлять через таблицу SysModuleEdit как указано выше.
Кроме значения локализируемой строки, обратите внимание на функцию initAddRecordButtonCaption в BaseProfileSchema:
/** * Initializes add record button caption. * @protected */ initAddRecordButtonCaption: function() { var caption = this.get("Resources.Strings.AddRecordButtonCaption"); var editPages = this.getEditPages(); if (editPages && editPages.getCount() === 1) { var editPage = editPages.getByIndex(0); caption = editPage.get("Caption"); } this.set("AddRecordButtonCaption", caption); },
То есть значение не всегда берётся из строки.
Чтобы отключить эту логику получить нужное Вам поведение, можно в Custom создать переопределённую AccountProfileSchema с кодом:
/** * Account profile class. * @class Terrasoft.AccountProfileSchema */ define("AccountProfileSchema", ["CommunicationOptionsMixin"], function() { return { entitySchemaName: "Account", methods: { /** * Initializes add record button caption. * @protected */ initAddRecordButtonCaption: function() { var caption = this.get("Resources.Strings.AddRecordButtonCaption"); this.set("AddRecordButtonCaption", caption); } } }; } );
И в этой же схеме поменять слева значение строки AddRecordButtonCaption на «Создать контрагента».