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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.03.2007, 10:42   #1  
AraraT® is offline
AraraT®
Участник
1C
 
158 / 106 (4) +++++
Регистрация: 13.01.2006
Адрес: Республика Татарстан, г. Казань
Ошибка при регистрации
Ax 3.0 SP4

Заметил интересную особенность поведения Аксапты при выполнении регистрации в журналах переноса.

Рисунок 1:
Еще нет регистрации, мы только собираемся ее сделать.

Рисунок 2:
Мы зарегестрировали номенклатуру

Рисунок 3:
Мы отменили регистрацию

При отмене регистрации склад становится как у отправителя.
Если глянуть в табличку InventTrans - то там у обеих записей поле InventDimId соответствует аналитике склада-отправителя.
И после разноски журнала ситуация не меняется, т.е. номенклатура со склада никуда не уйдет.
будет приход и расход по одному складу.

Залез в дебаггер и нашел очень интересное место в классе InventUpd_Registered, в методе updateRegisterLess() на строке #67:
X++:
...
        inventTrans.inventDimId         = movement.inventDimId();
...
Если эту строку закомментировать, то всё встаёт на свои места.

Кто что может сказать по этому поводу?
Разве я первый кто заметил эту ошибку?
Миниатюры
Нажмите на изображение для увеличения
Название: регистрация1.JPG
Просмотров: 433
Размер:	71.4 Кб
ID:	2459   Нажмите на изображение для увеличения
Название: регистрация2.JPG
Просмотров: 495
Размер:	70.4 Кб
ID:	2460  

Нажмите на изображение для увеличения
Название: регистрация3.JPG
Просмотров: 453
Размер:	69.8 Кб
ID:	2461  

Последний раз редактировалось AraraT®; 06.03.2007 в 10:47.
Старый 06.03.2007, 11:37   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Не знаю кто первый это заметил, но ошибка известная. Дело в том, что к конструктор класса InventMovement в одном месте не передается признак того, что нужно смотреть ту сторону журнала переноса, которая является "В". Мы просто в классе InventTransWMS_Register, в методе updateInvent устранили этот баг.
Старый 06.03.2007, 11:59   #3  
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
Суть в следующем. При регистрации/комплектации вы можете изменить аналитики в складской проводке. И они станут не такими, которые указаны в строке журнала. Причем сделать это можно даже не не делая регистрацию и комплектацию, а просто поменяв в форме регистрации и комплектации аналитику и сохранив изменения.

Так вот. При отмене регистрации и комплектации система пытается вернуть (восстановить) аналитику из строки журнала (типа вдруг вы ее поменяли при регистрации/комплектации).

Обнаруженный вами код, очевидно, без проблем работает на всех видах складских журналов, кроме переноса. На переносе возникает ошибка .

То, что вы закомментировали строчку, к ошибке не приведет, но уводит вас от стандартного поведения системы. По идее, правильным решением будет отловить факт работы с журналом вида "Перенос", и взять аналитику из поля ToInventDimId строк журнала складских проводок.

Кстати, в 4.01 не воспроизводится. В 30сп4 не проверял.

Ради любопытства проверил еще одну багу, с которой столкнулся в сп5. Тоже не воспроизводится в 4.01... Хорошо.
__________________
С уважением,
glibs®
Старый 06.03.2007, 12:07   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от glibs Посмотреть сообщение
По идее, правильным решением будет отловить факт работы с журналом вида "Перенос", и взять аналитику из поля ToInventDimId строк журнала складских проводок.
В принципе даже отлавливать ничего не нужно. Достаточно в указанном мной методе в месте создания класса Inventmovement немного расширить код: там в стандарте идет одна вется для закупок, другая для прочих. В этом месте можно еще один путь задать для складских журналов: передать в последнем параметре True. На остальные журналы это не повлияет, а ошибку для переноса устранит (работает так уже 6 месяцев без проблем)
Старый 06.03.2007, 12:58   #5  
AraraT® is offline
AraraT®
Участник
1C
 
158 / 106 (4) +++++
Регистрация: 13.01.2006
Адрес: Республика Татарстан, г. Казань
Спасибо за ответы/советы.
Регистрация у нас больше нигде, кроме переносов не используется и я думаю, что не будет. Поэтому я пока оставлю строку закомментированной.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка (?) при печати приходного ордера в DAX 4.0 SP2 Ivanhoe DAX: Программирование 7 19.01.2021 14:13
Не запускается Axapta. Общая ошибка сети. Lucky13 DAX: Администрирование 3 25.09.2007 13:02
Ошибка в формате числа. 36AC DAX: Программирование 7 19.10.2006 10:04
Ошибка при обработке С-Ф Sergo DAX: Программирование 7 20.01.2006 11:56
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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