Динамическое изменение обязательности заполнения поля

Например, есть поле у которого мы хотим динамически включать/выключать "обязательность заполнения".
Для этого можно использовать следующую функцию:

function SetFieldIsRequried(Window, Dataset, FieldName, IsRequired) {
  if (!Assigned(Window)) {
    return;
  }
  if (IsRequired != false) {
    var IsRequired = true;     
  }
  if (IsRequired) {
    Window.ComponentsByName('edt' + FieldName).CaptionColor =
      LayoutLookAndFeelRequiredItemColor;
  } else {
    Window.ComponentsByName('edt' + FieldName).CaptionColor =
      LayoutLookAndFeelDefaultItemColor;
  }
  Dataset.DataFields.ItemsByName(FieldName).IsRequired = IsRequired;
}

Нужно удостовериться что в вашем скрипте подключен скрипт "scr_Consts",
где описаны 2 константы:
var LayoutLookAndFeelRequiredItemColor = 0x076FF4;
var LayoutLookAndFeelDefaultItemColor = 0x874011;

Нравится

Поделиться

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

Для получения цвета лучше использовать следующую функцию:

var Default16LayoutBlackColor = 0x000000;
 
function GetControlCaptionColorByThemeIsRequirment(IsRequired){
  var Color;
  var Theme = Connector.Attributes('THEME');
  var UseTheme = !((Theme.toUpperCase() == 'FALSE')||(Theme == '0'))
  if (IsRequired) {
    if (UseTheme){
      Color = LayoutLookAndFeelRequiredItemColor;
    } else {
      Color = Default16LayoutRedColor;
    }
  } else {
    if (UseTheme){
      Color = LayoutLookAndFeelDefaultItemColor;
    } else {
      Color = Default16LayoutBlackColor;
    }
  }
  return Color;
}
Показать все комментарии