Вопрос

Отключить настройку колонок

Есть ли возможность отключить настройку колонок пользователем? (В данном случае для детали)

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

Нравится

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

OLeg1020,

 

Изменения нужно вносить не в схему редактирования детали, а в схему реестра детали.

Вы невнимательно изучили статью по ссылке, там написано: 'Создать замещающую схему реестра детали'.

Если Вы внесете изменения в схему детали, уверена, что у Вас все заработает.

Вот пример:

 

define("ABExaminationDetail", [], function() {
	return {
		entitySchemaName: "ABExamination",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			getEditRecordMenuItem: Terrasoft.emptyFn,
			getGridSettingsMenuItem: Terrasoft.emptyFn
		}
	};
});

 

P.S. Пункты меню 'Копировать', 'Изменить' и 'Удалить'  неактивны не потому что Ваш код работает, а потому что так работает базовая логика. Эти пункты неактивны до тех пор, пока Вы не выберете любую запись детали.

Добрый день.

 

Подробнее о том, как скрыть команды меню детали с реестром, можно почитать в этой статье на Академии.

 

Для реализации описанной задачи Вам нужно заместить метод getGridSettingsMenuItem.

Алла Савельева,

Ушел читать :)

 

Алла Савельева,

Возможно какой-то другой метод, а не 

getGridSettingsMenuItem?  Этот не стработал. Методы из примера отработали.

	methods: {
			// Удаление команды [Копировать] ([Copy])
            getCopyRecordMenuItem: Terrasoft.emptyFn,
            // Удаление команды [Редактировать] ([Edit])
            getEditRecordMenuItem: Terrasoft.emptyFn,
            // Удаление команды [Удалить] ([Delete])
            getDeleteRecordMenuItem: Terrasoft.emptyFn,
			getGridSettingsMenuItem: Terrasoft.emptyFn
 
		},

 

И так не помогло (https://community.terrasoft.ua/articles/udalenie-knopok-detali-i-takze-elementov-menu)

 getGridSettingsMenuItem: function() {
                    return false;}

Redis почистил, IIS рестартанул

OLeg1020,

 

За видимость пункта меню 'Настройка колонок' отвечает метод getGridSettingsMenuItem.

 

А как Вы видите, что другие методы у Вас сработали? По Вашему скриншоту видно, что не сработал ни один метод. Если бы сработал, то пункты меню 'Копировать', 'Изменить' и 'Удалить' не отображались бы.

 

Возможно, что не туда внесли изменения кода.

 

Уточните, какую срм используете и приведите полностью код всей детали.

Алла Савельева,

Верно, неотработали, это я не выбоал запись...

 

define("FinAccounts1Page", [], function() {
	return {
		entitySchemaName: "FinAccounts",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
 
 
			getCopyRecordMenuItem: function() {
                    return false;},						//скрыть кнопку "Копировать"
            getDeleteRecordMenuItem: function() {
                    return false;},						//скрыть кнопку "Удалить"
            getEditRecordMenuItem: function() {
                    return false;},
          //  getGridSettingsMenuItem : function() { return false;},
            getGridSettingsMenuItem: Terrasoft.emptyFn
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
 
{
                    "operation": "remove",//Удалить кнопку "+"
                    "name": "AddRecordButton"
            },
            {
                    "operation": "remove",//Удалить кнопку " ⋮ "
                    "name": "ToolsButton"
            },
			{
 
				"operation": "insert",
				"name": "BaseAccountb43ab798-803a-4af4-b91e-cc5db470b05b",
				"values": {
					"layout": {
						"colSpan": 6,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "BaseAccount",
					"enabled": false
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "Accounte9952c51-4a26-4ee8-a710-3549f43d6413",
				"values": {
					"layout": {
						"colSpan": 6,
						"rowSpan": 1,
						"column": 6,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "Account",
					"enabled": false
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "Currencye3e9dca7-315d-4d43-9943-dbfb6b875aeb",
				"values": {
					"layout": {
						"colSpan": 6,
						"rowSpan": 1,
						"column": 12,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "Currency",
					"enabled": false
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 2
			},
			{
				"operation": "insert",
				"name": "AccStsf28e15ec-b066-4860-befa-47cd43573bbc",
				"values": {
					"layout": {
						"colSpan": 6,
						"rowSpan": 1,
						"column": 18,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "AccSts",
					"enabled": false
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 3
			}
		]/**SCHEMA_DIFF*/
	};
});

 

OLeg1020,

 

Изменения нужно вносить не в схему редактирования детали, а в схему реестра детали.

Вы невнимательно изучили статью по ссылке, там написано: 'Создать замещающую схему реестра детали'.

Если Вы внесете изменения в схему детали, уверена, что у Вас все заработает.

Вот пример:

 

define("ABExaminationDetail", [], function() {
	return {
		entitySchemaName: "ABExamination",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			getEditRecordMenuItem: Terrasoft.emptyFn,
			getGridSettingsMenuItem: Terrasoft.emptyFn
		}
	};
});

 

P.S. Пункты меню 'Копировать', 'Изменить' и 'Удалить'  неактивны не потому что Ваш код работает, а потому что так работает базовая логика. Эти пункты неактивны до тех пор, пока Вы не выберете любую запись детали.

Алла Савельева,

Нашел где это, спасибо.

Как отрисовать скрытые в другом пакете меню? 

Сергей Шк,

Найти в родителе реализацию и сделать так же

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