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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.10.2011, 20:27   #41  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Мне все таки кажется, что последняя цена закупки тут непричем. Если заглянуть в названный мною метод, там есть такой кусок кода:
X++:
case BOMCalcCostPrice::OnhandPrice  :

            dimGroupId  = InventTable::find(itemId).DimGroupId;
            inventDimParmFinancial.initFinancialInvent(dimGroupId);
            inventDimParmActive.initDimActive(dimGroupId);

            inventOnhand = InventOnhand::newParametersActive(itemId,
                                                             inventDim,
                                                             inventDimParmFinancial,
                                                             inventDimParmActive);
            if(inventOnhand)
            {
                costPrice = inventOnhand.costPricePcs(true);
                if(costPrice)
                {
                    costPriceUnit   = 1;
                    costMarkup      = 0;
                    costPriceDate   = systemdateget();
                }
            }
BOMCalcCostPrice::OnhandPrice это одна из моделей рассчета цены из групп калькулирования. InventOnHand - это класс-обертка вокруг inventSum. А CostPricePcs, это как раз метод, который считает мгновенную среднюю, поделив сумму из InventSum на количество оттуда же...
С последней ценой в inventTableModule это не связано по моему...
Старый 06.10.2011, 22:20   #42  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
Мне все таки кажется, что последняя цена закупки тут непричем. Если заглянуть в названный мною метод, там есть такой кусок кода:
X++:
case BOMCalcCostPrice::OnhandPrice  :

            dimGroupId  = InventTable::find(itemId).DimGroupId;
            inventDimParmFinancial.initFinancialInvent(dimGroupId);
            inventDimParmActive.initDimActive(dimGroupId);

            inventOnhand = InventOnhand::newParametersActive(itemId,
                                                             inventDim,
                                                             inventDimParmFinancial,
                                                             inventDimParmActive);
            if(inventOnhand)
            {
                costPrice = inventOnhand.costPricePcs(true);
                if(costPrice)
                {
                    costPriceUnit   = 1;
                    costMarkup      = 0;
                    costPriceDate   = systemdateget();
                }
            }
BOMCalcCostPrice::OnhandPrice это одна из моделей рассчета цены из групп калькулирования. InventOnHand - это класс-обертка вокруг inventSum. А CostPricePcs, это как раз метод, который считает мгновенную среднюю, поделив сумму из InventSum на количество оттуда же...
С последней ценой в inventTableModule это не связано по моему...
Тоже надо попробовать. А то я зациклился на BOMCalcCostPrice::CostPrice.
Хотя мне кажется, результат должен быть идентичным. Там же цена меняется не только по не последней покупке, а по последней проводке инвенттранс.
Старый 07.10.2011, 11:08   #43  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Пожалуйста, скажите, что не правильно настроено.
Имеем остатки по партиям, себестоимость, естественно по партиям, в группе складских аналитик на партии стоит галка "Финансовые запасы".
В строке спецификации по этому материалу партия не указана, мы же не можем знать - какие партии будут приходить во всем периоде действия спецификации.
Однако же inventSum.costPricePcs(_onHandOnly, _priceDate) ищет себестоимость именно по инвендиму строки спецификации, которого в инвентсаме быть не может. и возвращает, разумеется 0. Меня бы устроило, чтобы себестоимость усреднилась без учета партий именно для расчета спецификации. Но как этого добиться - не понимаю.

Последний раз редактировалось Hard; 07.10.2011 в 11:12.
Старый 07.10.2011, 11:26   #44  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Вероятно придется подхакать названный мною метод, чтобы после inventDimParmFinancial.initFinancialInvent(dimGroupId);
в inventDimParmFinancial очищались флаги для BatchId (InventBatchIdFlag).
Просто у вас партия указана как аналитика финансового склада, вот по ней и пытается усреднить (то есть ищет строки с пустой партией). А если вы флажек очистите, аналитика будет просто исключена из усреднения...
Старый 07.10.2011, 11:48   #45  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
Вероятно придется подхакать названный мною метод, чтобы после inventDimParmFinancial.initFinancialInvent(dimGroupId);
в inventDimParmFinancial очищались флаги для BatchId (InventBatchIdFlag).
Просто у вас партия указана как аналитика финансового склада, вот по ней и пытается усреднить (то есть ищет строки с пустой партией). А если вы флажек очистите, аналитика будет просто исключена из усреднения...
А не повлечет ли это то, что по партиям не будет усредняться фактическая себестоимость? Этого не хочется. В общем-то флажок в группе аналитик и вводили для расчета себестоимости партий.
Старый 07.10.2011, 12:02   #46  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Обсчет спецификации не связан с рассчетом фактической себестоимости. Если рассчет спецификации подправите, на фактическую себестоимость это не повлияет...
Старый 07.10.2011, 12:19   #47  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
Обсчет спецификации не связан с рассчетом фактической себестоимости. Если рассчет спецификации подправите, на фактическую себестоимость это не повлияет...
Ясно, просто подменяем значение InventBatchIdFlag на false уже в контексте CalcCostModel.
Странно, что это не сделано в стандарте.

Кстати с флагом "Последняя себестоимость" все работает для модели CostPrice. Сейчас попытаюсь добиться, чтобы с OnhandPrice тоже заработало.
Старый 07.10.2011, 13:34   #48  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Добавил строчку. Все получилось.

Есть разница по сравнению с моделью CostPrice и использованием галки "Последняя себестоимость". При модели OnhandPrice действительно берется мгновенная средняя. А при выставленной галке: мгновенная средняя запишется в цену только если в самих проводках она вычисляется, например журнал Перенос. С журналом Проводка и заказами на покупку дело хуже. Их себестоимость вводится по сути ручками. И именно это значение запишется цену номенклатуры. Там очень просто сделано: себестоимость из проводки пишется в себестоимость номенклатуры.

Так что использование для покупных материалов модели OnhandPrice гораздо предпочтительнее (правда, требует небольшого допила в виде вставки по одной строке для каждой из аналитик, у которых включены финансовые запасы, но не заполнены значения в строках спецификаций, например, "Партия" и "Серийный номер").

Спасибо всем, кто помог разобраться!
Старый 11.10.2011, 12:40   #49  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
У меня возник еще один вопрос.
Требуется включить в плановую себестоимость некую фиксированную величину по отдельной группе затрат, например, "Прочие затраты". Величина зависит от конкретной поставки, но не зависит от количества изделий. То есть в одном заказе она может быть фиксировано 10000, в другом 12000 и т.д.
На эту группу затрат накручиваются косвенные затраты.
Я пока не могу придумать ничего лучше включения номенклатуры с типом "Услуга" строкой с постоянным потреблением в спецификацию верхнего уровня с номенклатурной аналитикой, по которой веду поиск цены покупки.
Но мне кажется, должно быть более красивое решение. Напрашивается возможность привязки к спецификации неких накладных расходов, причем таких, которые можно сопоставить с группой затрат.
Есть в аксапте что-то подобное?
Старый 11.10.2011, 14:00   #50  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
В стандарте этого нет, хотя и очень нужно. Мы (фирма FWI) для себя это сделали, но я не рекомендую повторять путь программирования, не каждый может себе позволить такую сложную модификацию. Ваш вариант - наилучший.
Старый 11.10.2011, 15:57   #51  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
В стандарте этого нет, хотя и очень нужно. Мы (фирма FWI) для себя это сделали, но я не рекомендую повторять путь программирования, не каждый может себе позволить такую сложную модификацию. Ваш вариант - наилучший.
Спасибо за ответ. Жаль, конечно.
Старый 12.10.2011, 13:26   #52  
niksen is offline
niksen
Участник
Самостоятельные клиенты AX
 
284 / 28 (1) +++
Регистрация: 05.07.2011
Адрес: Татарстан
Hard
а чем вас действительно не устраивает везде добавлять услугу, у которой проставлять стоимость как вы сами захотите? если вы отталкиваетесь от заказа на производство, то в спецификацию на корневую номенклатуру всегда можно добавлять эту самую услугу. Другой вариант тоже есть: если заранее известны все спецификации верхнего уровня, которые не включают друг друга, то можно просто в них добавить эту услугу и тогда даже в заказе на продажу будет эта услуга и всё.
Старый 13.10.2011, 10:50   #53  
Hard is offline
Hard
Участник
 
169 / 19 (1) ++
Регистрация: 15.04.2003
Адрес: Москва
Цитата:
Сообщение от niksen Посмотреть сообщение
Hard
а чем вас действительно не устраивает везде добавлять услугу, у которой проставлять стоимость как вы сами захотите? если вы отталкиваетесь от заказа на производство, то в спецификацию на корневую номенклатуру всегда можно добавлять эту самую услугу. Другой вариант тоже есть: если заранее известны все спецификации верхнего уровня, которые не включают друг друга, то можно просто в них добавить эту услугу и тогда даже в заказе на продажу будет эта услуга и всё.
Это не меня не устраивает, а заказчика. Они не хотят "портить" спецификации и не могут заставить технологов вести абстрактные строки в спецификациях.
Отдельной строкой в заказ - не вариант, поскольку это не попадет в лист калькуляции цены. И кроме того заказа еще нет, рассчитываем из номенклатуры, потому что нужно уметь рассчитывать по разным версиям цен.
Теги
затраты, как правильно, накладные расходы, себестоимость

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Себестоимость и длинные производственные заказы Blog bot DAX Blogs 13 21.11.2013 16:57
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Себестоимость готовой продукции pdojn DAX: Функционал 13 07.10.2008 19:23
Как настроить Распределяемые Затраты? Aquarius DAX: Функционал 11 09.03.2007 13:55
Как рассчитывается фактическая себестоимость готовой продукции в Аксапте? rdv DAX: Функционал 15 30.01.2003 15:25

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

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

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