18.03.2009, 11:28 | #21 |
Участник
|
|
|
24.03.2009, 14:26 | #22 |
Участник
|
В рамках данной темы вылезла ошибка в задание Коррекции Себестоимости.
Текст Ошибки следующий: --------------------------- Microsoft Dynamics NAV --------------------------- Примен. Операция Но. не должно быть 0 в Товар Журнал Строка Имя Шаблона Журнала='',Код Раздела Журнала='',Строка Но.='0'. --------------------------- ОК --------------------------- В ходе копания дебугером выяснилось, что вылет происходит при попытке дать коррекцию на заказ покупки транспортных услуг(тип товарная издержка) для заказа продажи . Чтобы сформулировать вопрос сначала опишу последовательность выполнения кода: 1) в cu 5895 InventoryAdjastment ф-я PostAdjmtBuf() срабатывает ветка с OrigValueEntry."Expected Cost" = false 2) запускаеться ф-я InitAdjmtJnlLine(ItemJnlLine,OrigValueEntry) в томже cu где заполняеться поле ItemJnlLine."Item Charge No." := OrigValueEntry."Item Charge No."; 3)запускаеться ф-я PostItemJnlLine где проставляються поля "Примен. Операция Но." или "Товар отгрузка Операция Но." по условию IF ItemJnlLine."Value Entry Type" = ItemJnlLine."Value Entry Type"::"Прямая Себест." THEN ItemJnlLine."Item Shpt. Entry No." := "Item Ledger Entry No." ELSE ItemJnlLine."Applies-to Entry" := "Item Ledger Entry No."; По нашему примеру Value Entry Type" = "Прямая Себест." 4) запускаеться учет товарного журнала с проверкой ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim); 5) выполняеться проверка в cu21 ф-я RunChek где вываливается ошибка TESTFIELD("Applies-to Entry") IF ("Value Entry Type" <> "Value Entry Type"::"Прямая Себест.") OR ("Item Charge No." <> '') THEN IF "Inventory Value Per" = "Inventory Value Per"::" " THEN TESTFIELD("Applies-to Entry"); По нашему примеру Value Entry Type" = "Прямая Себест." , "Item Charge No." = 'АВТО', "Inventory Value Per" = " " Собственно вопросы: Почему в пункте 3) работает только одно условие для заполнения поля "Applies-to Entry" а в 5) пункте условий целых три? Правильно ли будет ели я изменю код и добавлю в пункт 3) условие OR ("Item Charge No." <> '') ? Очень не хотелось бы необдуманно менять код. |
|
25.03.2009, 11:45 | #23 |
Участник
|
проблемму решил так cu21 ф-я RunCheck
IF ("Value Entry Type" <> "Value Entry Type"::"Прямая Себест.") OR ("Item Charge No." <> '') THEN IF NOT Adjustment THEN // ctaga fifo to avg IF "Inventory Value Per" = "Inventory Value Per"::" " THEN TESTFIELD("Applies-to Entry"); Еще есть вопрос, почему после коррекции не восстанавливаются галки в таблице 339 в поле Cost Application? Если этой галки нет, то когда проваливаешься в наличие, встаешь на запись и нажимаешь примененные операции , ни чего не показывает.(там код работает который именно по галке фильтрует 339) Самое интересное, если себестоимость у товара изначально рассчитывалась по средней, то галка на расходные операции тоже не ставиться. |
|
25.03.2009, 12:19 | #24 |
Участник
|
Цитата:
Сообщение от Константин!
Вопрос по поводу таблицы 5804, как заполнять поле код склада
у нас в "товар настройка"- поле "Сред. Себестоимость тип расчета" стоит "Товар. & Склад & Вариант" соответственно расчет средней будет идти в разрезе складов и вариантов. Верно ли если я заполню таблицу 5804 в разрезе одного товара Т0001 след оброзом: 1) возьмем все операции по даному товару сгрупируем их по складу и получим список уникальных складов. 2) заполним таблицу 5804 так ТоварНо. Код Склада Дата Переоценки Себестоимость Скоректированна товар1 уникал.скалад1 Дата1 Нет товар1 уникал.скалад2 Дата1 Нет ..... товар1 уникал.скаладN Дата1 Нет где Дата1 = Дате сомого раннего расхода в данном товаре. Так же у нас стоит настройка "Период Расчета Средней Себестоимости" = День Не повлияет ли эта настройка на правельность расчета средней себестоимости? Таким образом для перезаполнения данной таблицы достаточно "поиграться" полями <Average Cost Period> и <Average Cost Calc. Type> на форме Inventory Setup. |
|
26.03.2009, 19:24 | #25 |
Участник
|
RedFox спасибо. Все еще актуально.
Не могу сделать коррекцию перемещений. Корректирует только расходные операции в перемещение(и то не правильно) а приход оставляет пример. было до 1 приход 1шт, 20р, 010109, склад1 2 приход 1шт, 40р, 010109, склад1 3 перемещение -1шт, -20р, 26.03.09, склад1 4 перемещение 1шт, 20р, 26.03.09, транзит 5 перемещение -1шт, -20р, 26.03.09, транзит 6 перемещение 1шт, 20р, 26.03.09, склад2 стало после коррекции 1 приход 1шт, 20р, 010109, склад1 2 приход 1шт, 40р, 010109, склад1 3 перемещение -1шт, -30р, 26.03.09, склад1 4 перемещение 1шт, 20р, 26.03.09, транзит 5 перемещение -1шт, -35р, 26.03.09, транзит 6 перемещение 1шт, 20р, 26.03.09, склад2 Что с этим делать ума не приложу. Самое интересное если товар изначально был по средний, то операции коррекции не формируются, а сразу перемещается по правильной себестоимости 30. Кто знает помогите плиз. |
|
30.03.2009, 09:31 | #26 |
Участник
|
Проблемма решена, нужно было чистить поле Transferred-from Entry No. в 339 таблице.
|
|