Цитата:
Сообщение от
Ivanhoe
Может, в настройках модуля РП стоит Суммарная обработка = Нет, и этот параметр автоматически подтягивается в форму обработки накладной.
Цитата:
Сообщение от
kalex_a
Вы правы, хотя я в передаю параметр
X++:
purchParmUpdate.SumBy = AccountOrder::None;
но такое чуство что он его не видит
'Программно' функционал класса purchFormLetter это действительно 'не видит' по причине того что часть логики отночительно значения
reArrangeNow отрабатывает непосредственно на форме PurchEditLines и значение
reArrangeNow передается в класс в качестве параметра (в методе new() класса PurchFormLetter reArrangeNow инициализируется значением true).
Цитата:
Сообщение от
Sada
...
Нада посмотреть почему при стандартной оброботке эта переменная false
Можно отследить что происходит при работе с формой
PurchEditLines при вызове purchFormLetter.prompt() в части работы с параметром
reArrangeNow :
Forms\PurchEditLines\init():
X++:
...
sumBy.selection(purchEditLinesForm.sumBy());
element.sumByChanged(true);
...
метод purchEditLinesForm.sumBy():
X++:
AccountOrder sumBy()
{;
return PurchParameters::find().SummaryUpdateBy;
}
возвращает значение из параметров модуля "Рачеты с поставщиками". (В Вашем случае получается что "Суммарная обработка" = Нет)
Forms\PurchEditLines\sumByChanged():
X++:
void sumByChanged(boolean _init)
{
...
if (_init && purchParmUpdate.SumBy == AccountOrder::None)
reArrangeNow = false;
else
reArrangeNow = true;
buttonReArrange.enabled(reArrangeNow);
...
}
На входе метода параметр _init =
true, после открытия формы переменная
reArrangeNow = false (визуально кнопка "Упорядочить" при этом недоступна). Если параметр "Суммарная обработка" не трогать, то при закрытии формы:
X++:
void closeOk()
{
...
purchFormLetter.reArrangeNow(reArrangeNow);
...
}
значение false уходит в класс purchFormLetter, что Вы и констатировали:
Цитата:
Сообщение от
kalex_a
, а если разносить через форму заказа ("Разноска" -> "Накладная" и т.д.) то она имеет значение "False".
При таком раскладе конструкция:
X++:
purchFormLetter.reArrangeNow(false);
...
purchParmUpdate.SumBy = AccountOrder::None;
вполне укладывается в штатное поведение Ax, imho
P.S. Oops...

пока излагал свою мысль
Ivanhoe уже ответил в тему.