Показать сообщение отдельно
Старый 24.12.2009, 08:55   #71  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Внимание ОШИБКА !!!
Приношу свои извенения. Мой английский меня подвёл .В своём сообщении Удаление разнесенного складского журнала.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если
X++:
delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";
заменить на
X++:
ttsbegin;
while select forupdate InventTrans
where 
    INVENTTRANS.InventTransId == "номер лота из строк журнала"
{
    InventTrans.delete(true);
}
ttscommit;

я ошибся с точностью до наоборот. Параметр dropInventOnHand (название этого параметра меня и подвело, оказывается drop - в смысле пропускать) нужно оставить равным NoYes::No (значение по умолчанию), если хотите чтобы InventSum пересчитался сам. Т.е. код можно оставить ваш (он и InventTrans удалит и одновременно InventSum пересчитает):

Правильный вариант
X++:
// удаление INVENTTRANS и пересчет INVENTSUM
delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";

Последний раз редактировалось S.Kuskov; 24.12.2009 в 08:58.