Цитата:
Сообщение от
Bishop
Класс DialogField не имеет метода parmFieldName() (в стандарте)...
IMHO, лучше всего пользоваться вот этим "велосипедом":
Modified поля на форме-наследнике RunBase
Тут решена так же проблема перехвата методов RunBase-диалога на стороне сервера.
Извините старая доработка уже все забыл, действительно еще кое что нужно переопределить в классе dialogField
X++:
class DialogField extends DialogControl
{
// Packed
int type;
int fieldNo;
// Is set in init()
DictType dictType;
Types baseType;
boolean checkBox;
anytype dummy;
// C/S optimize
container value; // Hopefully temporary, a container can't be stored in a struct
//доработка -->
boolean useName;
FieldName nameField;
//доработка -->
#properties
#define.widthMode('widthMode')
#define.heightMode('heightMode')
#define.setHeightFromLines('setHeightFromLines')
#localmacro.currentList
type,
fieldNo
#endmacro
}
X++:
str fieldname(int arrIdx = 1)
{
;
//доработка -->
if (useName)
return nameField;
//доработка --->
return #PrefixField+int2str(fieldNo)+'_'+int2str(arrIdx);
}
X++:
void new(
Dialog _dialog,
int _type = 0,
int _fieldNo = 0
)
{
type = _type;
fieldNo = _fieldNo;
//Доработка --->
useName = false;
//Доработка --->
if (_dialog.isOnServer())
{
properties = new Struct();
return;
}
}
X++:
//Доработка -->
FieldName parmFieldName(FieldName _nameField = nameField)
{
;
if (_nameField)
useName = true;
nameField = _nameField;
return nameField;
}
//доработка -->