Возникла задача изменить настраиваемое окно редактирования в БП таким образом, чтобы при допустимом количестве символов, превышающем 250, в окне формировался не 'TextDataControl' (как реализовано в базовой версии), а 'MemoDataControl'.
Решается задача модификацией логики function BuildDataControl(Window, ParentComponent, DatasetLink, DataField) сервиса wnd_CustomEditWindowScript.
Данная функция динамически создает и отрисовывает компоненты в настраиваемом окне редактирования.
Для решения задачи необходимо заменить функцию function BuildDataControl на приведенную ниже:
function BuildDataControl(Window, ParentComponent, DatasetLink, DataField) {
var ComponentType = GetComponentTypeByDataField(DataField);
if (IsEmptyStr(ComponentType)) {
return;
}
var DataFieldName = DataField.Name;
var ComponentName = GetControlName(Window, DataFieldName);
if ((ComponentType == 'TextDataControl')&& (DataField.TextLength > 250)){
var Component = Window.CreateComponent('MemoDataControl', ComponentName);
Component.Height = 45;
} else{
var Component = Window.CreateComponent(ComponentType, ComponentName);
}
Component.DataFieldName = DataFieldName;
Component.DatasetLink = DatasetLink;
ParentComponent.Add(Component);
Component.AlignHorizontal = alhClient;
return Component;
}
Результат будет иметь вид: