Скрипты
Разработка

Пересчет суммы в детали раздела

Здравствуйте!

Возник следующий вопрос. В разделе Счета есть действие "пересчитать сумму", аналогичным образом в разделе Документы также было реализованно действие пересчета суммы. Однако нужно, чтобы сумма пересчитывалась при добавлении\изменении продукта в детали разделов. Но деталь Продукты реализованна один раз для обоих разделов. Т.е. при написании функции пересчета, надо учитывать в каком разделе мы находимся. Подскажите, как это можно определить.

Спасибо.

Нравится

1 комментарий

Здравствуйте Александра,
На сколько я понял, Вы пишете собственную логику пересчета суммы, для того что бы понять в каком разделе вы находитесь в окне wnd_OfferingsDetailTreeArea можете воспользоваться
[javascript]
Window.ParentWindow.ParentContainer.ParentWindow.Caption
[/javascript]
Пример:
[javascript]
function wnd_OfferingsDetailTreeAreaOnPrepare(Window) {
MessageBox(Window.ParentWindow.ParentContainer.ParentWindow.Caption);
ProcessPrepare(Window);
UpdateColumns(Window);
}
[/javascript]

Но если посмотреть с другой стороны, код действия amiRecalcAmountOnExecute:
1
[javascript]
function amiRecalcAmountOnExecute(ActionMenuItem) {
var Dataset = BaseWorkspace.GridDataset;
if (IsDatasetEmpty(Dataset)) {
return;
}
if (InvoiceWorkspace.IsRecalcAmount) {
return;
}
Dataset.DisableEvents();
InvoiceWorkspace.IsRecalcAmount = true;
...
[/javascript]

строчка
[javascript]
var Dataset = BaseWorkspace.GridDataset;
[/javascript]
получает датасет главного грида раздела, проверьте тут же какой датасет используется и в зависимости от этого меняйте логику

[javascript]
if (ExtractUSICodeEx(Dataset.USI)=='ds_Invoice')
{
...
}
else
{
...
}
[/javascript]

Показать все комментарии