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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2008, 20:45   #2  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Сразу оговорюсь что у меня Ax3.0 SP5
Поэтому у вас возможны отличия. Но если в 4-ке код несильно поменялся, то

скорее всего работают методы
\Classes\InventUpd_Physical\updatePhysicalReturnedReceipt
или
\Classes\InventUpd_Physical\updatePhysicalReturnedIssue


На примере
\Classes\InventUpd_Physical\updatePhysicalReturnedReceipt
Там вначале ищется расход (физическое или финансовое движение) по аналитике из строки. Если найден, то на основе него делается возврат, подхватывается аналитика и все такое.

X++:
            while select forupdate inventTrans
                Index hint TransIdIdx
                order by inventDimId Desc
                where inventTrans.inventTransId         == movement.transId()       &&
                      inventTrans.statusIssue           == statusIssue              &&
                      inventTrans.statusReceipt         == StatusReceipt::None      &&
                      inventTrans.packingSlipReturned   == 0
                #InventDimJoin(InventTrans.inventDimId,InventDim,inventDimCriteria,inventDimFlags)
            {
                if (inventTrans.InventTransIdReturn)
                    continue;

                addQty = this.updateTransPhysicalReturnedReceipt(_ledgerVoucher, inventTrans, addQty);


Если что-то не получилось. (Скорее всего это и есть ваш случай) В силу каких то причин не нашлась проводка. (Например, проставлен Номер возвращенного лота inventTrans.InventTransIdReturn - т.е. этот лот кто то уже использовал) то тогда она продолжает поиск без учета аналитик, работает такой код :
X++:
        while select forupdate inventTrans
            Index hint TransIdIdx
            order by inventDimId desc
            where inventTrans.inventTransId         == movement.transId()       &&
                  inventTrans.statusIssue           == statusIssue              &&
                  inventTrans.statusReceipt         == StatusReceipt::None      &&
                  inventTrans.packingSlipReturned   == 0
        {
            if (inventTrans.InventTransIdReturn)
                continue;

            addQty = this.updateTransPhysicalReturnedReceipt(_ledgerVoucher, inventTrans, addQty);
            if (!addQty)
                break;
и тут может произойти "перескок" аналитик.

Ставьте точки останова и смотрите что реально там у вас происходит.

Последний раз редактировалось Logger; 12.09.2008 в 21:09.
За это сообщение автора поблагодарили: evv (1).
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бухгалтерские проводки по отборочной накладной PMS DAX: Функционал 12 24.04.2012 13:45
Проблемы при разноске отборочной накладной Ek@terin@ DAX: Функционал 7 11.12.2008 16:06
Повисание при разноски отборочной накладной Poleax DAX: Функционал 8 14.12.2007 12:46
Отчет по отборочной накладной Uma Turman DAX: Функционал 0 01.08.2006 12:57
Должностные лица в отборочной накладной Zveriok DAX: Функционал 4 27.01.2005 15:28

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

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

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