![]() |
#1 |
Участник
|
Коллеги! помогите разобраться с ситуацией.
имеем nav 4-0 sp3. в товаре настраиваем измерение (например товгруппа) и ставим ему единый код этого измерения создаем заказ покупки на этот товар сооздаем другой заказ с типом в строках товарная издержка распределяем эту издержку на товар из первого заказа пытаемся учесть заказ с товарной издержкой получаем ошибку о том что надо проставить измерение для товара. смотрел код в 90 кю видел место где создается новая строка которая учитывается но смег рабобраться как к ней дописать измерения из товара. помогите плиз! |
|
![]() |
#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. |
|
![]() |
#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. что мне подсказывает что это явный баг! ![]() |
|
![]() |
#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; но это не сработало. несмотря на то что в строке покупке для целей учета поставили номерок товара. К сожалению (или к счастью) на строку распределения тов. издержек нельзя привязать измерения. Можно считать это багом, можно недоработкой. Я лично не вижу необходимости такого функционала в стандарте. |
|
![]() |
#5 |
Участник
|
я думаю что если для целей учета проставили номерок товара, а у товара есть стандартное измерение то стоило бы позаботиться чтоб оно проставлялось везде где фигурирует товар IHMO
|
|
![]() |
#6 |
Участник
|
Цитата:
![]() |
|
![]() |
#7 |
Участник
|
ок, еще раз спасибо за совет все получилось с прописыванием в лоб! а все остальное на совести Микрософта
![]() |
|
![]() |
#8 |
Administrator
|
глубокий минус им за это.
сам расстраивался, помню. |
|
![]() |
#9 |
Участник
|
|
|