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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.01.2006, 18:42   #14  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Подниму тему. Интересная такая фишка получается.
Проблема: стали появляться в системе журналы переноса, у которых проводка расхода идет с полной комбинацией складских аналитик, а в проводке прихода все аналитики пустые, только склад указан. Один из путей, как этого можно достичь: создаем строку журнала переноса, указываем со склада/на склад и, например, из партии. А в партию не указываем. Резервируем лот. Готово дело - проводка прихода с пустой аналитикой. Хорошо, но для партии у нас НЕ установлен "Пропуск для приходов". А журнал с легкостью разносится. Недолгие копания в коде скорее породили дополнительные вопросы, нежели ответы

1) Класс InventUpdate, метод updateTransDimTransferReceipt(InventTrans inventTransIssue,
InventDim _inventDimIssueNew)


В нем идет поиск проводки прихода для того, чтобы изменить аналитику/разбить проводку при изменении проводки расхода. Но поиск идет как-то странно: сначала делается merge аналитики прихода с аналитикой расхода

PHP код:
inventDimReceiptOrig InventDim::find(_inventTransIssue.orig().inventDimId);
inventDimReceiptOrig.mergeUsedDim(movement.dimGroupId(),movementReceipt.inventdim());
inventDimReceiptOrig InventDim::findOrCreate(inventDimReceiptOrig); 
а потом полученная аналитика джоинится к InventTrans при поиске приходной проводки

PHP код:
select forupdate inventTransReceipt
                where inventTransReceipt
.inventTransId      == movement.transId()       &&
                      
inventTransReceipt.statusIssue        == StatusIssue::None        &&
                      
inventTransReceipt.statusReceipt      == StatusReceipt::Ordered   &&
                      
inventTransReceipt.transChildType     == InventTransChildType::None
            
#inventDimJoin(inventTransReceipt.inventDimId,inventDimReceipt,inventDimReceiptOrig,inventDimParm); 
Т.е. по этой логике в проводке прихода должны быть заполнены те же аналитики, что и в проводке расхода. Непонятно.

2) Но это пол-беды. Почему появляется приходная проводка с пустой аналитикой, для которой "Пропуск для расходов" не установлен? Находим проверку в классе InventMov_Jour_Transfer

PHP код:
boolean dimAllowBlankReceipt(InventDimSearch _dimSearch)
{
    return 
_dimSearch.dimAllowBlankReceipt() || _dimSearch.dimAllowBlankIssue();

Для "Пропуска для расходов" аналогичный метод.
Что интересно, в потомках этого класса InventMov_Jour_TransferIssue и InventMov_Jour_TransferReceipt эти методы не перекрыты. Вроде бы нигде в мануалах я не встречал указания на то, что галки "Пропуск для расходов" и "Пропуск для приходов" надо ставить только парами...

Если второй пример (с галками) я склонен считать откровенной багой, то с первым у меня такой уверенности нет. Объясните - в чем тут глубинный смысл, которого я явно не догоняю?
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
пересчет себестоимости в журналах переноса? Aquarius DAX: Функционал 39 26.10.2009 23:27
Закрытие склада. Пересчет себестоимости в журналах переноса. PavelM DAX: Функционал 4 31.07.2008 12:37
Нужен запрет на изменения данных журнала переноса после его распечатки ATimTim DAX: Программирование 4 19.01.2005 12:16
Автоматическое резервирование в журналах переноса Wobbler DAX: Функционал 14 11.11.2004 14:30
Привязка пользователя к журналам переноса. ATimTim DAX: Функционал 9 14.07.2004 14:43

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

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

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