Показать сообщение отдельно
Старый 24.02.2004, 16:32   #10  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Прошу прощения, злой я сегодня.
Аргументы:
  1. inventTrans.doUpdate() - это очень сильно. Опустив вызов .update(), вы отключили десятки экранов кода, который обновляет накопленные суммы складских остатков, уменьшая остатки по старому коду аналитики и увеличивая по новому. База данных испорчена до следующего запуска корректировки данных складского модуля.
  2. по существу задачи. Сам тот эффект, с которым вы боретесь, запрограммирован датчанами нарочно в методе InventDim.mergeUsedDim(). На тот счет существует запрос в NSS, в ответе на который объясняется, что сброс аналитики ведет к несоответствиям в данных о резервированию. Лично подтвердить не могу, но им виднее.
  3. среди тех проводок, что вы огребли методом InventTrans::findTransId(), могут быть и разнесенные.
  4. метод InventTrans::findTransId() возвращает только одну запись, хотя отношение строк заказа к складким проводкам - 1:N.
  5. Более того, складские проводки не должны иметь ту же аналитику, что и строка заказа. Пример: заказ на 20 экскаваторов порождает отгрузку 20 единиц с различными серийными номерами. 1 строка заказа -> 20 проводок с различной аналитикой.

Уффф...