Добрый день, коллеги!
Есть проблема с маркировкой, может кто-то посоветует с какой стороны её решить (кроме отказа работать с 4кой)
Есть исправление функционала в updateMarking, связанного с кредит-нодой, это отразилось на процедуре сторнирования журналов переноса
есть постановка о том, что
Цитата:
В момент создания строк/разноски? сторно журнала для исходных строк должно заполняеться:
- у строки StatusReceipt (Куплено...) - InventRefTransId (проставляется InventTransId сторнирующей строки)
- у строки StatusIssue (Продано...)- InventTransIdReturn (проставляется InventTransId сторнирующей строки)
У сторнирующих строк:
- у строки StatusReceipt (Куплено...) - InventTransIdReturn и InventRefTransId (проставляется InventTransId исходной строки)
- у строки StatusIssue (Продано...) InventRefTransId (проставляется InventTransId исходной строки)
но для updateMarking есть изменение: добавлено условие
X++:
if ((inventTrans.InvoiceId != '') && (inventTrans.InvoiceId == _invoiceId)) // здесь обернули строку кода в условие
{
inventTrans.InventRefTransId = _inventRefTransId;
}
если убрать условие, система вылетает с ошибкой в InventJourCopyStorno.run()
X++:
Qty1 = InventTrans::updateMarking(transOrig.InventTransId, transNew.InventTransId , transOrig.Qty);
Qty2 = InventTrans::updateMarking(transNew.InventTransId , transOrig.InventTransId, -transOrig.Qty);
if (Qty1 != -Qty2)
error('Не удалось сопоставить проводки');
эта ошибка вообще вылетает почти на каждый чих, частично для журналов проводок удалось решить её доработкой метода delete на таблице InventTrans: т.е. зачищать значение в поле, тк оно не затиралось, но для журналов переноса это не сработало...
задача срочная, если есть какие-то мысли в каком направлении двигаться, подскажите, пожалуйста.
то, что нашлось по теме
http://axforum.info/forums/archive/i...p?t-17558.html
Маркировка - достала!