Добрый день!

 

Коллеги, возможно ли запретить определенным пользователям удалять значение справочного поля крестиком?

Например в инсталлмент плане есть поле Инвойс. Крестиком в выделенной записи значение этого поля можно удалять. Можно ли метод, который реагирует на нажатие крестика, переопределить? И как метод называется?

 

Спасибо! 

Нравится

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

а права доступа на объект не подойдут?

Dima Avdoshin, пользователь должен иметь возможность создавать объект, видеть значение колонки Инвойс, но не иметь возможности ее менять. Когда делаю через запрет на редакт колонки, то не видят ее содержимое. Хотел добавить свою логику на крестик. 

Сергей Хоменко,
вариант , который у меня сейчас перед глазами

Для этого тебе надо из своего объекта создать деталь через мастер расставить поля, после мастер создаст карточку для редактирования, на которую ты можешь вешать код. который тебе необходим в твоей логике, это код будет работать и в карточке редактирования справочника и в реестре в справочника

RightUtilities.checkCanExecuteOperation мы проверяем, что у текущего пользователя есть доступ на операцию и сохраняем результат в атрибут, ну или наоборот как в моем случае , если он есть  в группе по операциям то не даем редачить.

От результат мы уже управляем логикой доступности, к примеру ты можешь значение атрибута повесить на доступность поля или как я при изменении проверять и отменять изменения

Вместо initModelColumns, можешь вешать другие ивенты, к примеру при выделении записи
Пример

define("qrtqrtTestObj31ff6c52Page", ["RightUtilities"], function(RightUtilities) {
	return {
		entitySchemaName: "qrtTestObj",
		attributes: {
			"Name": {
				//dataValueType: Terrasoft.dataValueType.FLOAT,
				dependencies: [
					{
						columns: ["Name"],
						methodName: "changeName"
					}
				]
			},
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			initModelColumns: function() {
				this.callParent(arguments);
				this._setColumnsDataModelName();
				this._setResourceColumns();
				this.console.log("initModelColumns");
				var self = this;
				RightUtilities.checkCanExecuteOperation({
                    operation: "qrtRulesSalesInInvoice"
                  }, function(result) {
                      self.console.log("RESULT" + result);
                      self.set("qrtSalesRules", result);
                  }, this);
			},
 
			changeName : function name() {
				if(!this.isNewMode()) {
					var isOk = this.get("qrtSalesRules")
					if(isOk) {
						this.showInformationDialog("У вас нет права на редактирование этой колонки")
						//отменяем действие
						this.onDiscardChangesClick();
					}
				}
			}
        },
      dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "Name1cacb119-4c62-4e85-929a-e7a877e24794",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "Name"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "Description5836d8b4-157f-49bf-a943-3e6d3c28cf1e",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "Description"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 1
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Dima Avdoshin,

возьму это и попробую. Но было бы все таки проще переопределить ф-ю, которая отрабатывает на нажатие на крестик у колонки детали. Например для той же детали для колонки Products нашел ф-ю 

clearSupplyPaymentElementProducts, переопределение которой решает часть задачи без лишних маневров.

Самый простой способ использовать бизнес-правила. БП проверяете со значением булевого атрибута. А атрибуту устанавливаете значение true/false в зависимости от того, входит ли текущий пользователь в коллекцию тех, кому доступ запрещен (коллекцию можно сформировать через справочник, либо в зависимости от группы/роли, либо даже захаркодить(что не рекомендую)). Такое решение будет самым быстрым и легким, на мой взгляд 

Спасибо!

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

В числовых полях, для которых назначено округление (и для которых оно не назначено тоже) в Creatio, и которые не заполнены (например, пользователь импортирует из excel свои данные заполняя карточку какую-нибудь, и там не все ячейки заполнены), отображается ЦИФРА, а не пустое поле. Сейчас обратила внимание на данную проблему, есть ли какое-либо решение?
 

Нравится

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

Это не проблема. Так работает система, так как для всех числовых полей системы на уровне ядра прямо в БД установлено значение по умолчанию - 0. Это происходит потому что в СУБД нет для числовых колонок такого понятия, как пустое значение. Если число, то обязательно 0. Так же если логическое, то FALSE.

Это не проблема. Так работает система, так как для всех числовых полей системы на уровне ядра прямо в БД установлено значение по умолчанию - 0. Это происходит потому что в СУБД нет для числовых колонок такого понятия, как пустое значение. Если число, то обязательно 0. Так же если логическое, то FALSE.

Владислав Литвинчук,

Спасибо! Для меня это стало проблемой, когда пользователь проводит расчеты, и видит 0 вместо пустой ячейки, как он вводил в excel. Сделать поля другого формата не получится, потому как позже это поле где-то используется как для математических операций

Добрый день!

Описанное Вами поведение не является ошибкой и соответствует базовой логике, которая присуща всем полям.
Если поле имеет тип - Число или Дробное число, то значение 0 или 0,00 - это пустое значение, то есть поле не заполнено.

Также, когда Вы пытаетесь сохранить карточку с 0,00 в числовом поле со свойством обязательности заполнения, система выдает сообщение, что в поле необходимо указать значение.

Значения 0 или 0,00 является пустым значением, они отображаются в пустых полях для того, чтобы визуально пользователи понимали формат поля.

 

В качестве обходного решения, можем предложить заменить данное числовое поле на текстовое. Но хотим заметить, что при данном типе поля не будет возможности, например, сравнивать значение данного поля с определенной константой (например, для построения фильтров) или выполнять арифметические операции. 

Жмурко Сергей,

Спасибо за объяснения) к сожалению, да, заменить на текстовое поле не получится..

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

Добрый день!

 

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

 

Сейчас все длинные текстовые поля выводятся целиком, с переносом строки, если они не влезают в ширину колонки (пример креплю).

 

Нравится

2 комментария

Что интересно, если открыть настройку колонок детали, то там в предпросмотре так, как Вы хотите.

По идее, нужно найти, какое свойство в CSS отвечает за такой перенос и заменить его значение. Сначала для пробы прямо в инструментах разработчика в браузере, чтобы сразу увидеть результат, потом уже вносить правки в схеме на вкладке для CSS.

Сходу нашёл, как смена стандартного word-wrap: normal на word-wrap: break-word; у [class*='grid-cols-'] меняет перенос по словам на перенос по буквам, но как сделать чтобы вообще без переноса, пока не нашёл. Может, у Вас выйдет.

Уже заведена и принята идея:

В списочном реестре необходимо иметь опцию, которая бы позволяла отображать значения в одну строку, а не переносить на несколько, если текст в текстовой колонке длинный. Где надо:

1. реестр раздела
2. списки в итогах

Но пока в планах на новые версии её нет.

Зверев Александр, 

Спасибо за мысль! Подумаю, что делать с этим))  Было бы здорово, если бы такая функция  появилась

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

Доброго времени суток коллеги, я столкнулся с проблемой. Имею колонки и кнопку Мне нужно при нажатии на кнопку "Очистить"  очистить данные у всех полей. 
Прочитал пару ответов поэтому вопросу тут в Community,  и написал функцию: 
 

clearFileBalance: function() {
  var budgetSales = this.get("UsrBudgetSales");
      this.set(budgetSales, null);
  var facticallySum = this.get("UsrFacticallySum");
      this.set(facticallySum, null);
  var result = this.get("UsrEqualsBudget");
      this.set(result, null);
  }
},

Она вызывается тут по клику: 

clearFileBalanceClick: function(clearFileBalance) {
       this.clearFileBalance();
 }

Он почему-то она не работает. Что я делаю не так? Спасибо

Нравится

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

Доброе утро.

this.get("НазваниеПоля") - получает значение

 

this.set("НазваниеПоля", Значение) - устанавливает Значение в НазваниеПоля. Название поля в данном случае должно быть текстом

 

 

var budgetSales =  this.get("UsrBudgetSales"); //код запишет в переменную budgetSales ЗНАЧЕНИЕ поля UsrBudgetSales.

Чтобы очистить поле, нужно в UsrBudgetSales записать null:

this.set("UsrBudgetSales", null);

 

Есть еще вот такой вариант записи:

this.$UsrBudgetSales = null;

Доброе утро.

this.get("НазваниеПоля") - получает значение

 

this.set("НазваниеПоля", Значение) - устанавливает Значение в НазваниеПоля. Название поля в данном случае должно быть текстом

 

 

var budgetSales =  this.get("UsrBudgetSales"); //код запишет в переменную budgetSales ЗНАЧЕНИЕ поля UsrBudgetSales.

Чтобы очистить поле, нужно в UsrBudgetSales записать null:

this.set("UsrBudgetSales", null);

 

Есть еще вот такой вариант записи:

this.$UsrBudgetSales = null;

Дмитрий А., Я понял) Спасибо ) Заработало)

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

Добрый день! Бьюсь уже 2 неделю и никак не могу найти информацию о том, как можно динамические регулировать количество полей на модальном окне, либо мини-карточке.

 

Задача: открывать модальное окно с параметрами из объекта Specification (Характеристика), что бы просто показать информацию из него.

 

Но проблема в том, что для каждой сущности, которая привязана к Характеристике необходимо в зависимости от типа данных выставить тип поля, а от количества этих сущностей - вывести поля.

Нравится

1 комментарий

Тимофей, насколько понимаю, простых решений нет, слишком базовые схемы надо переопределять, которые являются модулями.

 

Как обходное решение, можно заранее создать несколько скрытых полей и программно показывать нужное их количество в зависимости от потребности. Но ведь Вам ещё нужно разных типов.

 

Либо, если нужно только смотреть, можно создать многострочное поле, где вывести в каждой строке название и содержимое каждого параметра. А синхронизировать с деталью можно в БП на событиях её объекта.

 

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

Задача рассматривалась уже не раз, но я никак не могу понять, где отклоняюсь от правильной процедуры.

Задача: добавить на страницу пользовательское поле, значение которого рассчитывается по изменению значения другого поля. Значение должно только отображаться на странице, сохранять его в БД нет смысла (оно строго вычисляется исходя из значений двух других колонок).

Вроде бы все должно работать, и значение поля CalculatedValue должно вычисляться после загрузки страницы и после изменения значений в полях TurnoverF и TurnoverP. Но реально изменение случается только при загрузке страницы - т.е. метод, прописанный в dependencies, не срабатывает. Почему?

entitySchemaName: "UsrTenant",
attributes: {
 "CalculatedValue": {
     dataValueType: Terrasoft.DataValueType.FLOAT,
     dependencies: {
       columns: ["TurnoverF", "TurnoverP"], 
       methodName: "calculateValue"
     }
  }
},
methods: {
  onEntityInitialized: function() {
    this.callParent(arguments);				
    this.calculateValue();
  },
  calculateValue: function() {
    var turnoverF = this.get("TurnoverF");
    if (!turnoverF) {
      turnoverF = 0;
    }
    var turnoverP = this.get("TurnoverP");
     if (!turnoverP) {
       turnoverP = 0;
     }				
    var result = (turnoverP === 0) ? 0 : (turnoverF / turnoverP - 1);
    this.set("CalculatedValue", result);
  }
},
diff : {
//.....................
{
  "operation": "insert",
  "name": "INT_TurnoverF",
  "values": {
    "layout": {
      "colSpan": 12,
      "rowSpan": 1,
      "column": 0,
      "row": 0,
      "layoutName": "Tab7ec5c1bfTabLabelGridLayout4f9aa333"
    },
    "bindTo": "TurnoverF",
    "enabled": true
  },
  "parentName": "Tab7ec5c1bfTabLabelGridLayout4f9aa333",
  "propertyName": "items",
  "index": 0
},
{
  "operation": "insert",
  "name": "INT_TurnoverP",
  "values": {
    "layout": {
      "colSpan": 12,
      "rowSpan": 1,
      "column": 12,
      "row": 0,
      "layoutName": "Tab7ec5c1bfTabLabelGridLayout4f9aa333"
    },
    "bindTo": "TurnoverP",
    "enabled": true
  },
  "parentName": "Tab7ec5c1bfTabLabelGridLayout4f9aa333",
  "propertyName": "items",
  "index": 1
},
{
  "operation": "insert",
  "name": "INTCalculatedValue",
  "values": {
    "caption": "Вычисляемое поле",
    "bindTo": "CalculatedValue",
    "layout": {
      "column": 12, 
      "rowSpan": 1,
      "row": 4, 
      "layoutName": "Header",
      "colSpan": 9
    }
  },
  "parentName": "Header",
  "propertyName": "items",
  "enabled": true,
  "index": 9
},
//.....................
}

 

Нравится

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

Добрый день.

Попробуйте добавить квадратные скобки после dependencies, как на примере ниже:

	"dependencies": [
		{
			"columns": ["Patient"],
			"methodName": "setPatientFieldsValue"
		}
	]

 

Добрый день.

Попробуйте добавить квадратные скобки после dependencies, как на примере ниже:

	"dependencies": [
		{
			"columns": ["Patient"],
			"methodName": "setPatientFieldsValue"
		}
	]

 

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

как и предполагалось, ошибка была абсолютно дурацкой...
Спасибо!

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

Коллеги, добрый день. 

 

Столкнулся с проблемой. 

1) На форме обращения дублируется поле "Сервисный договор", несмотря на то, что в конструкторе раздела отображается только одно 

2) Порядок полей на форме не соответствует порядку полей в конструкторе

Бизнес-правила отключил. 

Конфигурацию перекомпилировал полностью. 

Скрины вложением

Помогите понять в чём проблема ? 

 

Нравится

3 комментария

Это может быть из-за того, что расположение полей задано в схеме кодом, слишком сложным для разбора мастером разделов. Откройте схему CasePageV2 и поищите упоминания этого поля в пакете Custom с Вашими изменениями и в других пакетах.

Зверев Александр,

Предлагаете его переопределить?

Когда Вы меняете в мастере, оно и так переопределяется, в пакете Custom создаётся CasePageV2 с новым порядком полей. Но, видимо, в одном из пакетов выше по иерархии описано иначе и конфликтует.

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

По примеру "создать заказ из продажи" был создан "создать договор из продажи" и "создать проект из продажи". Проблема в том что при переносе продуктов в деталях этих нем текстового поля для названия что отображает название продукта, потому было создано текстовое поле для нормальной работы выбора продукта. Проблема в том что это поле выбирается при выборе продукта. Можно изменить его руками и поставить "Продкут.Название", но вот при сохранении настройки глобально она не сохраняется для всех пользователей

 

Нравится

1 комментарий

Дело может быть в том, что объект детали «Продукт в продаже» (OpportunityProductInterest) сделан на основе базового объекта, а другие подобные детали «Продукт в заказе» (OrderProduct) и «Продукт в счете» (InvoiceProduct) — на основе виртуального объекта «Базовое вхождение продукта» (BaseProductEntry). Соответственно, у объектов OrderProduct и InvoiceProduct есть поле «Название» и оно является первичным для отображения.

Сравните между собой детали и попробуйте сделать аналогично.

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

Здравствуйте.Очень хотелось бы получить возможность самостоятельно давать название, которое используется в коде для вкладок и групп полей. Также хотелось бы, чтобы мастер использовал какой-то единый стандарт для именования созданных разделов,деталей, вкладок, групп полей. От версии к версии продукта именование меняется и, к сожалению, не всегда в лучшую сторону. Например: 1. Не всегда используются ресурсы в карточках редактирования для свойства caption в diff. 2. Созданный раздел (и все относящиеся к нему схемы) в заголовке имеют название родительской схемы 3. К станицам деталей и самим схемам детали зачем-то приписывается 1. (UsrSchema1Detail, UsrAddIfro1Page) 4. Вкладки и группы полей именуются с добавлением id, хотя в одной из версий была возможность давать имя для вкладки. 5. В какой-то из версий можно было дать название вкладкам, в более поздних версиях данный функционал отсутствует. Прикреплю скриншет результата работы мастера раздела в версии 7.9

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

Ой, еще некоторые схемы после работы Мастера начинаются с UsrUsr (зачем-то повторяется)

И добавлю сюда пожелание при создании страниц раздела для разных типов использовать наследование (с возможностью редактирования родительской страницы). Так как чаще всего все страницы Контрагентов, например, на 80% должны иметь общий наследуемые функционал, а не повторяться в странице каждого типа

"Владимир Соколов" написал:при создании страниц раздела для разных типов использовать наследование (с возможностью редактирования родительской страницы)

Поддерживаю, буквально недавно стояла такая задача, пришлось править таблицы в БД.

"Пащенко Александр Сергеевич" написал:пришлось править таблицы в БД

Мы без правок БД наследовали, но
1) много ручной работы
2) родительскую схему после этого получается редактировать только руками

Но плюсы перевешивают эти минусы!

Александр, здравствуйте!

Ниже обратная связь по Вашим замечаниям:

"Пащенко Александр Сергеевич" написал:
Очень хотелось бы получить возможность самостоятельно давать название, которое используется в коде для вкладок и групп полей.
Также хотелось бы, чтобы мастер использовал какой-то единый стандарт для именования созданных разделов,деталей, вкладок, групп полей.

Зафиксировали и передали информацию в департамент разработки для рассмотрения реализации в будущих версиях приложения.

"Пащенко Александр Сергеевич" написал:
1. Не всегда используются ресурсы в карточках редактирования для свойства caption в diff.

Если мы правильно поняли, то такая ситуация возможна если замещенная схема находится по иерархии выше родительского.

"Пащенко Александр Сергеевич" написал:
2. Созданный раздел (и все относящиеся к нему схемы) в заголовке имеют название родительской схемы

Зафиксировали и передали информацию в департамент разработки для рассмотрения реализации в будущих версиях.

"Пащенко Александр Сергеевич" написал:
3. К станицам деталей и самим схемам детали зачем-то приписывается 1. (UsrSchema1Detail, UsrAddIfro1Page)

Паттерн добавления порядного номера в схеме страницы необходим для уникальности, если будут созданы несколько страниц редактирований.

"Пащенко Александр Сергеевич" написал:
4. Вкладки и группы полей именуются с добавлением id, хотя в одной из версий была возможность давать имя для вкладки.

Данная логика была реализована в текущих версиях для того, чтобы избежать возникновения дублей с одинаковыми названиями в схеме. Если Вы знакомы с программированием, то Вы наверняка знаете, что нельзя, чтобы в коде были объявлены два и более объекта с одинаковым названием.

5. В какой-то из версий можно было дать название вкладкам, в более поздних версиях данный функционал отсутствует.


[/quote]

Такая возможность есть на текущий момент в мастере раздела (рис. 1).

"Владимир Соколов" написал:

И добавлю сюда пожелание при создании страниц раздела для разных типов использовать наследование (с возможностью редактирования родительской страницы). Так как чаще всего все страницы Контрагентов, например, на 80% должны иметь общий наследуемые функционал, а не повторяться в странице каждого типа

Пожелание зафиксировали. К сожалению, при создании нескольких страниц редактирования, созданные страницы наследуются от BasePageV2.
Для решения твоей задачи:
1) Типизируй страницы редактирования раздела
Предположим при типизации раздела была создана страница с названием OldPage
2) Перейди в конфигурацию
3) Создай свою схему в конфигурации, назвав ее нужным именем (например MyPage)
4) Унаследуй ее от нужной страницы редактирования
5) Сохрани изменения
6) Выполни запрос:
update SysModuleEdit
set CardSchemaUId = (select Uid from SysSchema where name = MyPage and ExtendParent = 0)
where CardSchemaUId = (select Uid from SysSchema where name = OldPage and ExtendParent = 0)

"Владимир Соколов" написал:

Ой, еще некоторые схемы после работы Мастера начинаются с UsrUsr (зачем-то повторяется)

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

Дмитрий, спасибо за быструю обратную связь.
В третьем пункте также было замечание, что детали называются UsrSchema1Detail. (вне зависимости от того, как называется объект).

"Вильшанский Дмитрий" написал:5. В какой-то из версий можно было дать название вкладкам, в более поздних версиях данный функционал отсутствует.

Такая возможность есть на текущий момент в мастере раздела (рис. 1).

Здесь речь идет не о том, какой заголовок вкладки будет видеть пользователь в интерфейсе, а именно о том, как она будет называться в коде в секции diff (свойство Name).

"Пащенко Александр Сергеевич" написал:Здесь речь идет не о том, какой заголовок вкладки будет видеть пользователь в интерфейсе, а именно о том, как она будет называться в коде в секции diff (свойство Name).

Да, потом сложно в коде ориентироваться

Добавлю, что при включенном svn мастер самостоятельно не ставит замки на схемы.

"Пащенко Александр Сергеевич" написал:

Добавлю, что при включенном svn мастер самостоятельно не ставит замки на схемы.

Здравствуйте!

Отдел разработки работает над исправлением этой проблемы.

Добрый день. Вот еще новые "Фичи" работы мастера. Теперь если добавлять новое поле на страницу, то в названии у него никак не фигурирует название колонки, вместо этого написано, например "Float"+случайный Id.

Кроме того, все проблемы, которые описаны в данной теме все еще присутствуют, а уже прошло более года.

Александр, здравствуйте!

Улучшения находятся в работе, наши команды разработки постоянно улучшают наш продукт, с каждым новым релизом появляется все больше функционала и исправляются ошибки. Все реализованные доработки можно посмотреть здесь. Пожелания по наполнению схем мы все передаем, разработчики о них знают и, возможно, в последующих версиях ситуация улучшится.

Касательно замечания "Теперь если добавлять новое поле на страницу, то в названии у него никак не фигурирует название колонки, вместо этого написано, например "Float"+случайный Id.". Название колонки прописано в атрибуте "bindTo" в "values" поля. Данное поведение реализовано намеренно и скорее необходимо для того, чтоб если поля добавлять несколько раз в карточку, они в схеме были уникальными, и не было потом свалов в Мастере, например. Пожелание на доработку мы, конечно же, передали.

Одеяненко Юлия,

Безусловно, мастер стал более функциональным и удобным.

Ранее он брал название поля, а не его тип и добавлял к нему Id. Это было понятно. Сейчас же почему-то это изменили. Это влечет за собой дополнительную работу по исправлению названий для разработчиков, чтобы это хоть как-то было читаемо в дальнейшем. 

Аналогично с названием схем, созданных мастером деталей. Префикс в названии страницы дублируется дважды, детали называются по схема "Schema{0}Detail", их тоже приходится переименовывать.

В одной из версий системы, можно было давать название вкладкам, позже это убрали, хотя функционал был полезным.

 

Для пользователя, который не заходит в конфигурацию, никакой разницы нет, а для разработчика - это двойная работа, которая отнимает время.

Хотелось бы узнать предполагаемые сроки для данных правок и планируются ли они вообще?

Александр, здравствуйте!
К сожалению, точных сроков по реализации улучшению форматирования кода схем и названий схем, которые создаются Мастером, мы предоставить не можем. Проблем в данном посте озвучено достаточно много, они все находятся на рассмотрении у аналитиков продукта. Возможно, улучшения будут внедряться в будущих релизах, постепенно.

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

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

Нравится

3 комментария

Добрый день Андрей!!!

я предлагаю вам ничего не кодировать, а выполнить вашу задачу путем разграничения прав "по колонкам". Для выполнения данной задачи прошу ознакомиться с документацией по Администрированию и настройки прав. Ссылка на Академию террасофт: Раздел [Доступ к объектам] Прошу обратить внимание "Администрирование по колонкам", "Администрирование по записям". именно данный метод вам подойдет для решения вашей задачи. Будут вопросы пишите.

Михаил спасибо за ответ, но так наверное, решить задачу не получиться, т.к поля должны блокироваться и разблокироваться по условию :
(поля должны быть заблокированы если с момента даты завершения Активности прошло более 10 дней и соответственно поля должны быть доступны если прошло менее 10 дней )

Тогда вам Андрей требуется доработка и переработка всей карточки редактирования. Но здесь возникает вопрос и определенная сложность. А если Задача (Активность) участвует в бизнес-процессе, тогда как вы будете использовать данную карточку? Ведь тогда Бизнес-процесс просто будет зависший. Это один момент. Второй момент во время исполнения Бизнес-процесса на карточки редактирования могут появляться Генерируемые поля. С ними что вы будите делать. Я думаю вы слишком замудреную поставили задачу. Ее решить можно но нужно будет предусмотреть все. А это переписать и заместить придется не только карточку редактирования Активности. Может вы как-то упростите задачу. И тогда я вам подскажу как правильно ее решить.

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