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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2007, 21:03   #1  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Angry Маркировка - достала!
Надоело копать эту муть - что ни полезешь - баги вылезают в стандарте...

Поэтому хочу обратить внимание общественности на две критичных ошибки в этой форме:

1. При включенном партионном учете (когда складская проводка в верхней части формы начинает распадаться на 2 и более), поле qtyMarked считается в разрезе всей складской проводки, относительно которой проводится маркировка, а не конкретной записи InventTrans (если быть точнее, то не относительно аналитик финансового склада, как было бы правильнее). Поэтому поле Остаток, используемое, как основа для вычисления доступного к маркировке кол-ва по проводке, считается некорректно, и даже может быть отрицательным, если маркированное кол-во превысит кол-во в какой-либо части складской проводки - основы. Фикс достаточно тривиален для знакомого с методом InventTrans.packTmpMark.

2. При попытке ручного изменения уже маркированного кол-ва (с зеленой пометкой) в сторону уменьшения (через поле Маркировать в проводках в нижней части формы) не на полное маркированное кол-во, происходит размаркировка этой проводки из нижней части формы, но не на разницу в кол-ве, а на ПОЛНОЕ маркированное кол-во. Размаркирование проводки из верхней части происходит корректно. В результате имеем помеченную вопросиком проводку из нижней части формы с отсутствующей ссылкой на лот и некорректную маркировку со стороны проводки из верхней части формы. Это может привести к нерезервированию помеченной номенклатуры при оприходовании закупки, помеченной для какого-либо заказа, т.к. при оприходовании выполняется метод DeleteInvalidMarking, очищающий подобные маркировки.
Скажу, что ошибка ВЕСЬМА труднонаходима (из категории - ошибка в 1 символ). Метод InventTrans.updateMarking.

Axapta 3.0 SP3 CU1. Собственно, в более поздних SP не исправлено.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 25.01.2007 в 21:06.
За это сообщение автора поблагодарили: Logger (4).
Старый 29.01.2007, 10:27   #2  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Спасибо, тоже считаю что ошибками можно и нужно делиться - а то в мелкософт пока дойдет..
Старый 29.01.2007, 11:51   #3  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Немного пообщался с сотрудниками Microsoft...
Решил выложить исправление 2го бага:

Вместо строки
X++:
                    if (abs(inventTrans.financialOpenQty() > abs(qtyRemain)))
Должно быть
X++:
                    if (abs(inventTrans.financialOpenQty()) > abs(qtyRemain)) /// by AMV 25.01.2007 BUG497_AMV_InventMarking - mistake in standard Axapta
Дело в месте одной из круглых скобок.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Теги
ax2009, ax3.0, bug, баг, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Маркировка altap DAX: Программирование 0 29.07.2008 11:03
Маркировка платежа Himan DAX: Программирование 11 13.11.2006 16:23
Маркировка авансового платежа с несколькими заказами BlueRose DAX: Прочие вопросы 2 20.09.2006 14:14
Маркировка или учет по партиям? Starling DAX: Функционал 5 10.05.2006 10:49
Сторнирование или маркировка накладных tolstjak DAX: Функционал 3 05.07.2004 17:03

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

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

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