Показать сообщение отдельно
Старый 23.12.2008, 13:21   #18  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от 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 уже ответил в тему.

Последний раз редактировалось petergunn; 23.12.2008 в 13:26. Причина: Похожее содержание ответа