07.10.2008, 15:58 | #1 |
Участник
|
Коллеги! помогите разобраться с ситуацией.
имеем nav 4-0 sp3. в товаре настраиваем измерение (например товгруппа) и ставим ему единый код этого измерения создаем заказ покупки на этот товар сооздаем другой заказ с типом в строках товарная издержка распределяем эту издержку на товар из первого заказа пытаемся учесть заказ с товарной издержкой получаем ошибку о том что надо проставить измерение для товара. смотрел код в 90 кю видел место где создается новая строка которая учитывается но смег рабобраться как к ней дописать измерения из товара. помогите плиз! |
|
08.10.2008, 09:26 | #2 |
Участник
|
Товарные издержки распределяются функцией PostItemCharge. В ней пересчитывается себестоимость на строке покупки и вызывается функция PostItemJnlLine, которая формирует и учитывает товарный журнал.
С измерения в товарный журнал попадают из строки покупки, точнее из таблички TempDocDim, предварительно заполненной фунцией CopyAndCheckDocDimToTempDocDim. В Вашем случае возможные варианты: 1. Если это не противоречит логике - копировать (с переписыванием при наличии или нет) измерений из примененной товарной операции. В фунции PostItemJnlLine фильтруйте табличку Ledger Entry Dimension по Table ID=32 и "Entry No."=ItemLedgShptEntryNo в функции PostItemJnlLine и формируйте записи в TempJnlLineDim. 2. В функции PostItemCharge перед вызовом PostItemJnlLine дописываете в TempDocDim на строку покупки дефолтовые измерения товара (таблица 352). После вызова PostItemJnlLine удаляете, дабы лишняя информация не попала в Posted Document Dimension. |
|
08.10.2008, 10:21 | #3 |
Участник
|
спасибо за ответ! иммено так я и пытался делать, вернее шел по второму варианту ихотел использовать стандартный мехвнизм из 39 таблицы
TableID[1]:=DATABASE::Item; No[1]:=PurchLine."No."; DimMgt.GetDefaultDim(TableID,No,SourceCodeSetup.Purchases, PurchLine."Shortcut Dimension 1 Code",PurchLine."Shortcut Dimension 2 Code"); IF PurchLine."Line No." <> 0 THEN BEGIN DimMgt.UpdateDocDefaultDim( DATABASE::"Purchase Line",PurchLine."Document Type",PurchLine."Document No.",PurchLine."Line No.", PurchLine."Shortcut Dimension 1 Code",PurchLine."Shortcut Dimension 2 Code"); CopyAndCheckDocDimToTempDocDim; END; но это не сработало. думаю придется напрямую выбирать из 352 и писать в TempDocDim . еще раз спасибо. p.s. что мне подсказывает что это явный баг! |
|
08.10.2008, 11:21 | #4 |
Участник
|
Цитата:
Сообщение от Arshak
спасибо за ответ! иммено так я и пытался делать, вернее шел по второму варианту ихотел использовать стандартный мехвнизм из 39 таблицы
TableID[1]:=DATABASE::Item; No[1]:=PurchLine."No."; DimMgt.GetDefaultDim(TableID,No,SourceCodeSetup.Purchases, PurchLine."Shortcut Dimension 1 Code",PurchLine."Shortcut Dimension 2 Code"); IF PurchLine."Line No." <> 0 THEN BEGIN DimMgt.UpdateDocDefaultDim( DATABASE::"Purchase Line",PurchLine."Document Type",PurchLine."Document No.",PurchLine."Line No.", PurchLine."Shortcut Dimension 1 Code",PurchLine."Shortcut Dimension 2 Code"); CopyAndCheckDocDimToTempDocDim; END; но это не сработало. несмотря на то что в строке покупке для целей учета поставили номерок товара. К сожалению (или к счастью) на строку распределения тов. издержек нельзя привязать измерения. Можно считать это багом, можно недоработкой. Я лично не вижу необходимости такого функционала в стандарте. |
|
08.10.2008, 14:08 | #5 |
Участник
|
я думаю что если для целей учета проставили номерок товара, а у товара есть стандартное измерение то стоило бы позаботиться чтоб оно проставлялось везде где фигурирует товар IHMO
|
|
08.10.2008, 17:21 | #6 |
Участник
|
Тогда самый прямой и на мой взгляд самые неправильный путь - проставлять измерения в 22 кодеюните .
|
|
09.10.2008, 14:46 | #7 |
Участник
|
ок, еще раз спасибо за совет все получилось с прописыванием в лоб! а все остальное на совести Микрософта
|
|
09.10.2008, 23:23 | #8 |
Administrator
|
глубокий минус им за это.
сам расстраивался, помню. |
|
10.10.2008, 09:57 | #9 |
Участник
|
|
|