Для того, чтобы поле "Решение" в карточке обращения стало обязательным, Вы можете воспользоваться мастером раздела, для этого:
1. Перейдите в "Обращения" и нажмите кнопку "Вид"-->"Открыть мастер раздела"
2. Выбрав пакет для редактирования, перейдите на страницу редактирования обращения, потом на детали "Решение", выбрав колонку "Решение" нажмите кнопку "Изменить" и Вы сможете в открывшемся окне поставить признак "Является обязательным"
Тогда оно станет просто обязательным, а не обязательным по условию.
Мой вопрос звучал так: Как можно сделать такое поле обязательным по какому-либо условию
( например, при состоянии "разрешено" требовать обязательность его заполнения)
причем обычное бизнес-правило для обязательности поля
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство REQUIRED поля.
property: BusinessRuleModule.enums.Property.REQUIRED,
conditions...
Александр, как я уже писала, конкретно для этого поля не работает подобное бизнес-правило.
"Solution: {
"Rule1": {
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
property: BusinessRuleModule.enums.Property.REQUIRED,
conditions: [{
leftExpression: {
type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
attribute: "Status",
attributePath: "IsResolved"
},
comparisonType: this.Terrasoft.ComparisonType.EQUAL,
rightExpression: {
type: BusinessRuleModule.enums.ValueType.CONSTANT,
value: true
}
}]
}
}
}
Любое другое поле из карточки напишу вместо "Solution" - будет работать.
Для поля же "Решение" (Solution) не работает - с ошибкой вылетает.
Возможно дело в том, что само поле на карточке отображается не так, как все остальные поля - а как кусок текста
Если добавить
{
"operation": "merge",
"name": "Solution",
"values": {
"caption": {
"bindTo": "Resources.Strings.SolutuinCaption"
},
"isRequired": true
}
}
то возле поля появляется красная звездочка, но обязательным оно не становится.
И в любом случае это же необязательность по условию...
поле "Решение" в карточке отображается как структурированный текст.
Может быть в том случае как-то по-другому надо проверять заполненность?
В таком случае, Вы можете переопределить метод Save и провести валидацию в нем, например вот так:
save: function () {
if (this.get("Solution")) {
this.callParent(arguments);
} else {
this.showInformationDialog("Необходимо заполнить поле решение");
}
}
Произвели анализ изменений, которые требуются для решения Вашей задачи.
И получили результат:
HTML - контролл типа RICHTEXT, которым является данное поле «Решение» не поддерживает данную функциональность..
У нас возникла такая же задача сделать поле "Решение" обязательным по условию, скажите пожалуйста, стало ли это возможно в версии 7.10.2? Или предусмотрено реализация данной возможности в других релизах?
Есть проблема: в карточке есть поле "Состояние", имеет аттрибут обязательного, источник - справочник.
Выставил на него уровень доступа - только чтение. Соответственно поле стало серым, то есть не активным. С созданными ранее карточками проблем нет.
Но есть проблема с вновь создаваемыми карточками: по-умолчанию данные не хотят вставляться, хотя при полном доступе все ок, система требует заполнить обязательное поле и следовательно карточка не сохраняется.
"Осауленко Александр" написал:Тут одно или другое, не может быть обязательное поле на чтение. Или уберите ограничение на чтение, или уберите ограничение обязательное.
система не умеет автоматически ставить данные в ограниченные поля?
______________ www.abs.com.kz
Агентство недвижимости АБС Royal Estate
Нужно разобраться с бизнес-логикой. Объясните зачем Вам понадобилось такое противоречие?
Пользователь, может только заводить документы, но не должен управлять их состояниями?
Тогда нужно оставить доступ на поле на изменение, но пусть пользоватеь видит (доступ на чтение) только то состояние, которое проставляется по-умолчанию (например, "Новый").
Правда для этого нужно будет включить раздачу прав по записям на этот справочник и скриптами раздавать доступ на записи состояния.
Юлия, карточку могут создавать все, только определенная группа не может изменять состояние этой карточки(записи).
Насколько я вижу, в системе при раздаче прав доступа на поле есть только "Полный доступ", "Запрет" и "Чтение", а "Изменения" там нет.
"Старун Юлия" написал:Правда для этого нужно будет включить раздачу прав по записям на этот справочник и скриптами раздавать доступ на записи состояния.
спасибо, передам программисту
______________ www.abs.com.kz
Агентство недвижимости АБС Royal Estate
Полный доступ - это и есть изменение :)
А вот то, что определенная группа не может именно "менять" состояние. Т.е. должны иметь право видеть ВСЕ состояния, но не менять его. При этом иметь возможность записывать начальное состояние.
Мой предыдущий вариант не проходит.
Тут нужно именно скриптами закрыть право изменения поля в карточке группе пользователей.