Показать сообщение отдельно
Старый 30.11.2002, 12:06   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано glibs
В общем, если у тебя все действительно работает так, как ты пишешь, подтверди
Мдя, точно. В стандартной Аксапте цена берется карточки номенклатуры. Следовательно, стандартная себестоимость в стандартной Аксапте одна для всех конфигураций. Мало того, в стандартной Аксапте нет возможности указать цену для склада. Виноват. Забыл. Приношу извинения.

Что надо сделать:

Например, в методе InventJournalTrans.initFromInventTable вместо кода
PHP код:
this.costPrice inventTableModule.price();
this.priceUnit inventTableModule.priceUnit();
this.costMarkup inventTableModule.markup();
this.costAmount this.calcCostAmount(); 
надо написать код как в SalesPruchLine::setPriceAgreement(). Обратите внимание, что на перечисление поля relation

Вот список всех методов, которые вызывают inventTableModule.price().
\Data Dictionary\Tables\InventJournalTrans\Methods\initFromInventSum
\Data Dictionary\Tables\InventJournalTrans\Methods\initFromInventTable
\Classes\PriceDisc\findItemPrice
\Data Dictionary\Tables\RAssetScrap\Methods\initFromInventTable
\Classes\BOMCalcCost\calcInternal

Для верности, лучше всего поменять код во всех этих методах.

Ну и, естественно, пользователю надо предоставить возможность заносить эти цены.
Для этого предоставить возможность править таблицу PriceDiscTable. Как это делается можно посмотреть в формах PriceDiscGroup и PriceDiscTable. Хотя на мой взгляд эти формы сильно перегружены, можно и нужно сделать проще.

С переносом в бюджет. Подобное у меня было - правил.

Похоже надо наводить ревизию в моих правках. Эх, не получается без программирования. Хочется. Но совсем без него никак. Остается только минимизировать правки.