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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2010, 14:12   #1  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Физ. количество на дату
Не знаю обсуждалось или нет, но сам был очень удивлен поведением системы при расчете Физических запасов на указанную дату.

Началось с того, что бухгалтер сообщил о некоректных данных при формировании журнала Инвентаризация. А именно расчетное количество по системе было ошибочным.
Одновременно с этим «Отчет – Физ. Запасы по номнклатурным группам» также показывал по некоторым номенклатурам неверное количество.

Некорректность данных заключается в том, что количество по отчету не соответствует суммируемому количеству всего физического движения по указанную дату.

Причина в следующем:

Рассмотрим метод selectInventTransPostingPhysical класса InventSumDatePhysical.
X++:
protected void selectInventTransPostingPhysical()
[XPP]
{
InventTrans inventTrans;
InventTransPosting inventTransPostingPhysical;
;
while select forceplaceholders TableId from inventTransPostingPhysical
index hint ItemTypeDateIdx
where inventTransPostingPhysical.ItemId == itemId &&
inventTransPostingPhysical.InventTransPostingType == InventTransPostingType::Physical &&
inventTransPostingPhysical.TransDate > perDate
join sum(Qty) from inventTrans
index hint TransIdIdx
group by StatusIssue,StatusReceipt,DateInvent
where inventTrans.VoucherPhysical == inventTransPostingPhysical.Voucher &&
inventTrans.DatePhysical == inventTransPostingPhysical.TransDate &&
inventTrans.InventTransId == inventTransPostingPhysical.InventTransId
{
this.addInventTransPhysical(inventTrans);
}
}

В выборке присутствует группировка по DateInvent.
Далее вызывается метод
X++:
protected void addInventTransPhysical(InventTrans _inventTrans)
[XPP]
{
super(_inventTrans);
if (_inventTrans.DateInvent && _inventTrans.DateInvent <= perDate)
{
if (_inventTrans.Qty > 0)
registeredQty += _inventTrans.Qty;
else
pickedQty -= _inventTrans.Qty;
}
}

Видно, что при выполнении условия изменяется Зарегистрированное или Скомплектованное количество. И как следствие изменяется физическое количество.

В моем случае формировался отчет по 30.06.2010. В системе были Расходные проводки (Заказ на продажу) с :
DateInvent = 30.06.2010
DatePhysical = 01.07.2010
Данные проводки как раз и давали ошибку.

Исправляется изменением DateInvent = 01.07.2010

Последний раз редактировалось ena_ax; 02.07.2010 в 14:19.
Старый 02.07.2010, 15:40   #2  
twilight is offline
twilight
MCTS
MCBMSS
 
874 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
А в чем ошибка-то? В том, что отчет считает по DateInvent, а не по DatePhysical?
__________________
I could tell you, but then I would have to bill you.
Старый 02.07.2010, 23:40   #3  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Да, считает по DateInvent. Как следствие получаем расхождение с отчетами по движению DatePhisical, например ОСВ по складу

Я не утверждаю что это ошибка, может быть в этом есть какой-то смысл. , хотя сам именно так считаю
Старый 03.07.2010, 10:41   #4  
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
С т.з. архитектуры международной Аксапты — физическое наличие считается корректно. Насчет локализаторских прибамбасов — лучше спросить у них из чего они исходили.

В оригинальной Аксапте запасы увеличиваются в момент регистрации номенклатуры. Именно эта операция заполняет DateInvent. У вас, судя по всему, номенклатуру зарегистрировали 30.06.2010. А отборочную накладную или сразу накладную сделали днем позже. В Аксапте номенклатура была в остатках еще 30.06.2010. И отчет по остаткам на дату вам это показывает.

Аналогичная ситуация возникает и при комплектации.

Если локализаторская складская оборотная ведомость не учитывает операции регистрации и комплектации... если это действительно так, то либо не пользуйтесь ими, либо напишите свой отчет, который будет корректно работать.
__________________
С уважением,
glibs®
Старый 03.07.2010, 10:52   #5  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Цитата:
Сообщение от glibs Посмотреть сообщение
С т.з. архитектуры международной Аксапты — физическое наличие считается корректно. Насчет локализаторских прибамбасов — лучше спросить у них из чего они исходили.

В оригинальной Аксапте запасы увеличиваются в момент регистрации номенклатуры. Именно эта операция заполняет DateInvent. У вас, судя по всему, номенклатуру зарегистрировали 30.06.2010. А отборочную накладную или сразу накладную сделали днем позже. В Аксапте номенклатура была в остатках еще 30.06.2010. И отчет по остаткам на дату вам это показывает.

Аналогичная ситуация возникает и при комплектации.

Если локализаторская складская оборотная ведомость не учитывает операции регистрации и комплектации... если это действительно так, то либо не пользуйтесь ими, либо напишите свой отчет, который будет корректно работать.
Логику понимаю. Но с другой стороны, в таком случае DateInvent должен совпадать с DatePhisical, а система не контролирует это.
И еще, скомплектовано, не значит отгружено.
Старый 03.07.2010, 14:34   #6  
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
Цитата:
Сообщение от ena_ax
...
DateInvent должен совпадать с DatePhisical
...
Не понимаю что значит "должен".
Цитата:
Сообщение от ena_ax
...
скомплектовано, не значит отгружено
...
Я говорил о том, что скомплектованные запасы в Аксапте не числятся как запасы в наличии.
__________________
С уважением,
glibs®
Старый 03.07.2010, 18:24   #7  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Цитата:
Сообщение от glibs Посмотреть сообщение

Я говорил о том, что скомплектованные запасы в Аксапте не числятся как запасы в наличии.
Не буду вдаваться в терминологию слова "в наличии".

Дело в том, что у нас нет отдельной зоны комплектации, и статус скомплетовано, означает лишь его готовность к отгрузке.

Поэтому когда я сформировал журнал инвентаризация, то был сильно удивлен расхождением в количестве.

Теперь это расхождение объяснимо.

Спасибо за обсуждение.
Старый 04.07.2010, 21:45   #8  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от ena_ax Посмотреть сообщение
Дело в том, что у нас нет отдельной зоны комплектации, и статус скомплетовано, означает лишь его готовность к отгрузке.
Ну в идеологии Аксы считается, что раз товар скомплектован, то это уже не отдельные единицы товара, а упакованное в контейнер (паллету) грузоместо. То есть, для инвентаризации нельзя заглянуть в этот контейнер - нужно сначала его разобрать.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Складские остатки на дату Logger DAX: Программирование 13 06.10.2010 16:20
Странное количество в строке журнала инвентаризации pitersky DAX: Функционал 7 16.01.2009 16:46
как отдельно учитывать фактическое и финансовое количество? romulis DAX: Функционал 4 08.02.2007 15:01
Как получить количество номенклатуры, которое физ. доступно? sao DAX: Программирование 2 02.02.2006 20:52
Закупка. Количество введенное в таблицу PurchLine не отображается в накладной ATimTim DAX: Программирование 15 21.06.2004 10:11

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

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

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