Всем добрый день! К примеру, имею следующий код:
X++:
public void displayOption(Common _record, FormRowDisplayOption _options)
{
int i;
container changedFieldIds = _record.(fieldnum(ProductionGoodsSet, ChangedFieldIds));
;
if (conlen(changedFieldIds))
_options.backColor(winapi::rgb2int(255, 200, 200));
for(i = 1; i <= conlen(changedFieldIds); i++)
{
_options.affectedElementsByField(fieldId2Ext(conpeek(changedFieldIds, i), 1));
if (conpeek(changedFieldIds, i) == fieldnum(ProductionGoodsSet, BusRelAccount))
{
_options.affectedElementsByControl(busRelNameAlias.id());
}
}
}
super(_record, _options);
Контейнер, содержащий ид полей, которые нужно подкрасить и, если в этом контейнере имеется ид поля BusRelAccount, то нужно подкрасить контрол, в котором описан дисплей метод по этому полю.
Если использую только функцию affectedElementsByField() или только affectedElementsByControl(), то окрашивание происходит корректно, но если использую обе сразу - не работает.
В наличии ид нужных полей убедился.
При этом не хочется из-за одного дисплейного поля ограничиваться методом affectedElementsByControl() для всех полей.
Может в чём-то ошибаюсь? Прошу подсказать. Спасибо!