Как переименовать поле в AccountProfile?

Мне необходимо переименовать AccountProfile поле "добавить" на "создать", как это можно сделать?

 

Изображение удалено.

Нравится

4 комментария
Лучший ответ

Кроме значения локализируемой строки, обратите внимание на функцию 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 на «Создать контрагента».

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