Публикация

Проверка заполненности поля с выводом сообщения об ошибке

Если необходимо проверить заполненность поля в карточке редактирования, то можно использовать следующую функцию:

function CheckCustomFieldDataIsEmpty(Value, Caption, IsRequired) {
  if (IsRequired) {
    if (IsEmptyValue(Value)) {
      var ErrorMessage = FormatStr(RequiredFieldError, Caption);
      ShowWarningDialog(ErrorMessage);
      return false;
    }
  }
  return true;
}

Предварительно подключить скрипт "scr_WindowUtils"

Параметры могут быть такими:

var Value = Dataset.Values(FieldName);
var Caption = Dataset.DataFields.ItemsByName(FieldName).Caption;

var Value = Edit1.Value;
var Caption = Edit1.Caption;

Нравится

Поделиться

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

А почему его просто не сделать обязательным? Тогда система сама будет обрабатывать ошибку.

Бывают окна содержащие просто текстовые поля, не связаные с Dataset'ом (например окно настройки отчета)

>>Параметры могут быть такими:
>>var Value = Dataset.Values(FieldName);
>>var Caption = Dataset.DataFields.ItemsByName(FieldName).Caption;

этот пример, заполнения параметров, может пригодиться для проверки EnumDataField
в которых нельзя менять свойство IsRequired в режиме RunTime (в версиях до 3.2.0)

Спасибо за великолепную функцию.
Интересно, зачем нужен параметр IsRequired в данной ф-ии?

Например "обязательность" поля может изменяться в "RunTime", тогда в месте вызова моей функции(перед сохранением карточки) каждый раз приходилось бы использовать конструкцию вида:
if ("обязательное") {
CheckCustomFieldDataIsEmpty()
} else {
//do nothing
}
На мой взгляд удобнее сразу передавать параметр.

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