AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2007, 18:03   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Остатки на дату InventSumDatePhysical
Странная ситуация с остатками. Выполнил следующую последовательность действий:
1) Совсем новая номенклатура, по ней сделал закупку
2) По закупке создал отборочную накладную 20.03.2007 на 5 единиц.
3) При помощи поля "Немедленное получение" с минусовым количеством отсторнирвал её тем же числом - все 5 единиц.
4) Создал новую отборочную накладную 21.03.2007 на 5 единиц
5) Создан финансовую накладеную 21.03.2007 на 5 единиц
Я считал, что используя класс InventSumDatePhysical получу на 15.03.2007 остаток равный нулю, но не тут-то было: остаток -5 (минус пять).
Код в принципе простейший:
X++:
inventDimParm.initFromInventDim(_inventDim);
inventSumDate   = InventSumDatePhysicalDim::newParameters(_dateSaldo, _inventTable.ItemId, _inventDim, inventDimParm);
tmpQty          = inventSumDate.physicalQuantity();
Ползал отладчиком, в итоге пришел к выводу, что какая-то проблема с соответствием InventTrans и InventTransPosting по физическим разноскам (один ваучер, заданный в поле InventTrans в качестве физического, в таблице разноски идет по строке с финансовой разноской).
Вопрос: сталкивался ли кто-нибудь с подобным поведением? Пока не могу понять копать стандартный функционал или модификации приводят к такому?
Ax 3.0 SP 3 с некоторыми вытяжками из SP 5
Старый 28.03.2007, 20:08   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А в отчете стандартном (Физ. наличие по складам) такая же картина?
__________________
С уважением,
glibs®
Старый 29.03.2007, 09:06   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Да, та же самая (там же используется класс из той же иерархии).
Вчера просто не было возможности проверить. Сегодня получил доступ к стандартным SP3 и SP5 - на них ошибка не воспроизводится. В нашем приложении в InventTransPosting при сториноровании отборочной накладной по закупке создается на одну запись меньше, чем в стандартном приложении.
Так что сегодня буду искать, что там за 3 года "намодифицировали".
Старый 29.03.2007, 11:27   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Поспешил. Оказывается у меня не чистый SP3. Оказывается, ошибка была до SP4, о чем говорит такой код в методах updateTransPhysicalReturnedReceipt и updateTransPhysicalReturnedIssue класса InventUpd_Physical.
X++:
// START: 1947 SP4
inventTrans.voucher= _ledgerVoucher.lastVoucher();
localBuffer.Voucher         = inventTrans.Voucher;
localBuffer.VoucherPhysical = inventTrans.Voucher;
this.postingPhysical(true);
// END:   1947 SP4
Как только накатил это изменение, записи стали корректными. Так что, если кто столкнется с подобной ошибкой, то может мои мытарства помогут. Без этого методы selectInventTransPostingPhysical классов, наследников InventSumDate в случае, если было сторнирование отборочных накладных до создания финансовых, работают некорректно.
Осталось придумать, как исправить существующие записи.
За это сообщение автора поблагодарили: Lemming (2), kashperuk (3), _AnK_ (2).
Старый 10.05.2007, 12:34   #5  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Raven Melancholic, во первых спасибо за то что подсказали, в чем причина "съехавших" остатков на дату и как пофиксить код.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
...
Осталось придумать, как исправить существующие записи.
В данный момент я как раз пишу Job, который исправит последствия. Что удалось выяснить(только предположения, в складском контуре я не силен):
1. При создании сторно отборочной накладной в таблице InventTransPosting не создается запись с InventTransPostingType = InventTransPostingType::Physical.
2. Для складской проводки не прописываются DateFinancial, Voucher.

Вроде бы по этим двум признакам джобом можно найти неверные данные и создать недостающие записи в InventTransPosting, проапдейтить неправильные в InventTrans, но увы это не решает проблему. То есть что то я таки упустил, сижу разбираюсь дальше, но пока с идеями не очень густо .

Если у кого то есть какие либо мысли по данному вопросу, заранее спасибо за информацию!
Старый 10.05.2007, 13:04   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Вот класс, исправляющий существующие записи. У него есть ограничение: исправляет только те возвраты которые были сделаны при помощи указания отрицательного значения в поле "немедленная поставка". Если возврат осуществлялся другим способом (отдельными лотами в том же заказе/закупке, вообще отдельными документами), то такие записи не исправляются. Так же не исправляются записи в случае, если по одному лоту несколько возвратов.
Для нас эти ограничения неважны, если для вас это критично, то думаю доделать несложно.
Вложения
Тип файла: xpo CorrectBad1974_OK.xpo (10.8 Кб, 681 просмотров)
За это сообщение автора поблагодарили: Logger (7).
Старый 10.05.2007, 15:29   #7  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Thumbs up
Спасибо за класс, он окончательно подсказал верное направление!
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остатки товара на определенную дату Lucky13 DAX: Программирование 7 27.03.2007 14:27
Скачут остатки Def DAX: Программирование 3 03.05.2006 14:27
Остатки на дату. Bars DAX: База знаний и проекты 119 15.02.2006 20:35
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56
Остатки dog37 DAX: Программирование 6 02.06.2005 11:25
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:17.