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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2008, 19:20   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
:( класс InventSumDateValueReportDim Физические запасы?
Работая со строкой таблицы складских проводок. Надо для номенклатуры получить остаток на дату.
Использую класс InventSumDateValueReportDim (http://axapta.mazzy.ru/lib/inventsumdate/)

Класс может возвратить Физически доступно PhysicalQuantity (аналогичное значение получается Управление запасами\запросы\В наличии.) Вкладка в наличии\в наличии.- Физ. доступно.

Как мне получить значение - Физические запасы используя класс InventSumDateValueReportDim ?

P.S. Физические запасы = Физ. доступно + Физ. зарезервировано.
через класс InventSumDateValueReportDim можно получить Физ. зарезервировано.?

если нет то как получить Физические запасы остатком на дату?
2) Получить Себестоимость запасов в наличии на дату, учитывая коррекции. (это уже из оперы про коррекцию InventTrans.CostAmountAdjustment)
Старый 27.06.2008, 11:18   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Система не хранит данные о том, сколько товара было зарезервированно на определенную дату. Поэтому так ставить задачу неверно. Это может иметь смысл только в случае вычисления запасов на текущую дату.
Старый 27.06.2008, 12:09   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
класс InventSumDateValueReportDim как раз и вычисляет остаток на введенную дату.
и кол-во и себестоимость.
Я как раз и спрашиваю с помощью класса InventSumDateValueReportDim можно ли получить ответ на вопрос о Физ. зарезервировано или Физические запасы?

или надо эти значения как то вычислять чере inventSum ?
Старый 27.06.2008, 12:55   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Poleax Посмотреть сообщение
Работая со строкой таблицы складских проводок. Надо для номенклатуры получить остаток на дату.
Использую класс InventSumDateValueReportDim (http://axapta.mazzy.ru/lib/inventsumdate/)
Класс может возвратить Физически доступно PhysicalQuantity (аналогичное значение получается Управление запасами\запросы\В наличии.) Вкладка в наличии\в наличии.- Физ. доступно.
Где вы нашли физ доступно? Или через чего вы пришли к такому выводу?
Это не правильный вывод.
Цитата:
Сообщение от Poleax Посмотреть сообщение
Как мне получить значение - Физические запасы используя класс InventSumDateValueReportDim ?
P.S. Физические запасы = Физ. доступно + Физ. зарезервировано.
через класс InventSumDateValueReportDim можно получить Физ. зарезервировано.?
Никак. Не через этот класс ни через какой нибудь другой.
Цитата:
Сообщение от Poleax Посмотреть сообщение
если нет то как получить Физические запасы остатком на дату?
Физические запасы это термин который вы ввели и формулу вы написали.
С учётом этой формулы ни как.
Цитата:
Сообщение от Poleax Посмотреть сообщение
2) Получить Себестоимость запасов в наличии на дату, учитывая коррекции. (это уже из оперы про коррекцию InventTrans.CostAmountAdjustment)
А здесь я просто не понял к чему это вы.
Старый 27.06.2008, 13:07   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вы поймите как работают классы наследники от InventSumDate
X++:
protected  void setValueQty()
{
    this.selectInventSum();
    this.selectInventTransPostingPhysical();
    this.selectInventTransPostingFinancial();

}
1) Берём остатки по номенклатуре (на текущую дату)
2) Начинаем раскручивать в зад (отнимать) физичечкое количество через складские проводки физического документа .(т.е. то что прошло по отборочной накладной)
3) Начинаем раскручивать в зад финансовое количество через проводки финансового документа(т.е. то что прошло по накладной).
Самая главная функция это setValueQty. Здесь вся логика.
Старый 27.06.2008, 15:25   #6  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от miklenew Посмотреть сообщение
Где вы нашли физ доступно? Или через чего вы пришли к такому выводу?
Это не правильный вывод.

Никак. Не через этот класс ни через какой нибудь другой.

Физические запасы это термин который вы ввели и формулу вы написали.
С учётом этой формулы ни как.

А здесь я просто не понял к чему это вы.
это я нашел в http://axapta.mazzy.ru/lib/inventsumdate/
в таблице с полями

Физически доступно
PhysicalQuantity
Это расчетный метод. Именно это количество показывается в форме В Наличии в колонке Физически доступно.
Старый 27.06.2008, 15:46   #7  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Poleax Посмотреть сообщение
это я нашел в http://axapta.mazzy.ru/lib/inventsumdate/
в таблице с полями
Физически доступно
Здесь правильно написано. Но здесь же не написано что это физ доступно на дату.
PhysicalQuantity
Это расчетный метод. Именно это количество показывается в форме В Наличии в колонке Физически доступно.
Здесь физ доступно на текущую дату.
Что в моём понимание физически доступное количество на дату.
Это допустим сегодня я зашёл в систему зарезервировать номенклатуру.
И вижу физ доступно столько-то.
Прошло 10 дней.
И вот физ доступно на 10 дней назад вы не найдёте.
Почему? Потому что вы не найдёте информацию о том сколько было зарезервировано этой номенклатуры. Так как эта информация безвозвратно теряется после физического движения.
И честно говоря непонятно зачем эта информация может понадобиться.

Последний раз редактировалось miklenew; 27.06.2008 в 15:49.
Старый 27.06.2008, 16:06   #8  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
В лом было, но посмотрел на форму в наличие.
Физ доступно идёт из таблицы InventSum метод
X++:
display InventQtyAvailPhysical availPhysical()
{
    return (this.physicalInvent() - this.reservPhysical);
}
А вот теперь попытайтесь в классах InventSumDate найти префикс reserv.
Ошиблись похоже авторы статьи в утверждении что
Цитата:
PhysicalQuantity - Это расчетный метод. Именно это количество показывается в форме В Наличии в колонке Физически доступно.
Старый 27.06.2008, 18:16   #9  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
И чем же они ошиблись?
по идеи на текущее время Физ доступно из таблицы InventSum должно совпадать с результатом PhysicalQuantity из класса InventSumDateValueReportDim.
Про класс InventSumDateValueReportDim на заданное время расчитывает остатки.. если текущую дату поставить он вам тоже самой что и методы InventSum и выдаст.

Ошибки здесь нет.

>>В лом было, но посмотрел на форму в наличие.
не влом.. смотрел.
думал об классе InventSumDateValueReportDim, может внем что и не досказано.
И как по вашему используя InventSum получить к примеру остатки по номенклатуре месяц назад?
Старый 27.06.2008, 18:43   #10  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Poleax Посмотреть сообщение
И чем же они ошиблись?
Я написал в чём, в том, что PhysicalQuantity это не то количество, которое идёт в форме В наличие под названием физ. доступно.
Цитата:
Сообщение от Poleax Посмотреть сообщение
по идеи на текущее время Физ доступно из таблицы InventSum должно совпадать с результатом PhysicalQuantity из класса InventSumDateValueReportDim.
Про класс InventSumDateValueReportDim на заданное время расчитывает остатки.. если текущую дату поставить он вам тоже самой что и методы InventSum и выдаст.
То что 2+2=1+3, не значит что это всё равно 10+11.
Цитата:
Сообщение от Poleax Посмотреть сообщение
Ошибки здесь нет.
Есть. Не ошибается, тот кто ничего не пишет.
Цитата:
Сообщение от Poleax Посмотреть сообщение
>>В лом было, но посмотрел на форму в наличие.
не влом.. смотрел.
Я писал про себя. Что мне влом было.
Смотрим.
X++:
display InventQtyPhysicalOnhand physicalInvent()
{
    return this.postedQty + this.received - this.deducted + this.registered - this.picked;
}
X++:
display InventQtyAvailPhysical availPhysical()
{
    return (this.physicalInvent() - this.reservPhysical);
}
Получаем
X++:
display InventQtyAvailPhysical availPhysical()
{
    return this.postedQty + this.received - this.deducted + this.registered - this.picked - this.reservPhysical);
}
А в классе
X++:
display InventQty physicalQuantity()
{
    return this.postedQty() - this.deductedQty() + this.receivedQty() + this.registeredQty() - this.pickedQty();
}
6 параметоров и 5. Вот поэтому они и разные.

Последний раз редактировалось miklenew; 27.06.2008 в 19:04.
Старый 30.06.2008, 17:38   #11  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
miklenew смотри как хорошо ты раскопал. В итоге и ответил на мой вопрос.

Получается в http://axapta.mazzy.ru/lib/inventsum...recomendations (выше таблица)
Физически доступно != PhysicalQuantity (ошибочное описание в статье "Как получить складские остатки на произвольную дату в Microsoft Axapta")
а PhysicalQuantity из класса является по аналогии с InventSum - Физическами запасами (как в форме В наличии) inventSum.physicalInventUnit

в классе InventSumDateValueReportDim.PhysicalQuantity()
X++:
display InventQty physicalQuantity()
{
    return this.postedQty() - this.deductedQty() + this.receivedQty() + this.registeredQty() - this.pickedQty();
}
в InventSum.physicalinventUnit()

X++:
display InventQtyPhysicalOnhand physicalInvent()
{
    return this.postedQty + this.received - this.deducted + this.registered - this.picked;
}
мне как раз Физические запасы и нужны.
Спасибо.

Последний раз редактировалось Poleax; 30.06.2008 в 17:46.
Старый 30.06.2008, 18:04   #12  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Осталось только определиться с понятием - себестоимость запасов в наличии на дату, с учитывая коррекции (к примеру если InventTrans там есть поле коррекции CostAmountAdjustment)

Я беру Разнесено физически - PostedPhysicalValue
Правильно?
Старый 01.07.2008, 15:27   #13  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
надо оказывается PostedValue. ;-)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вспомогательный класс для импорта из Excel через ADO gl00mie DAX: База знаний и проекты 80 10.04.2017 10:55
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Отчет Физ.запасы по складам(Ax 3.0) Lyuboff DAX: Функционал 5 21.08.2007 11:45
Класс двумерного массива Владимир Максимов DAX: База знаний и проекты 29 30.04.2004 19:05
Класс xSysLastValue Maxim Gorbunov DAX: База знаний и проекты 0 27.11.2001 17:39

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

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

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