Как учитывать в Navision закупку ресурсов
Статья — вольный перевод заметки Карен Хиггинс, оригинал статьи находится по адресу: http://mibuso.com/howtoinfo.asp?FileID=20
Запрос на возможность проводить закупки ресурсов — один из частых запросов на доработки Navision. В этой заметке полностью пошагово описана данная доработка. В результате работы, записи с типом Ресурс будут записаны в таблицах G/L Entry, Resource Ledger Entry и, если потребуется, в Job Ledger Entry.
1. Добавьте «Ресурс» в список option’ов для поля Тип.
2. Измените ссылки в этом поле на таблицу ресурсов, если тип = ресурс. Сделайте это для следующих таблиц:
- a. 39 — Purchase Line;
- b. 121 — Purch. Rcpt. Line;
- c. 123 — Purch. Inv. Line;
- d. 125 — Purch. Cr. Memo Line;
- e. 6651 — Return Shipment Line.
3. Измените триггер OnValidate для поля Но. в таблице 39 Purchase Line: добавьте локальную переменную Res, тип — Record Resource, и добавьте следующий код:
// ERROR(Text003); BEGIN RES.GET("No."); RES.TESTFIELD(Blocked,FALSE); RES.TESTFIELD("Gen. Prod. Posting Group"); Description := RES.Name; VALIDATE("Unit Cost",RES."Unit Cost"); VALIDATE("Direct Unit Cost",RES."Direct Unit Cost"); "Gen. Prod. Posting Group" := RES."Gen. Prod. Posting Group"; "VAT Prod. Posting Group" := RES."VAT Prod. Posting Group"; "Tax Group Code" := RES."Tax Group Code"; "Allow Item Charge Assignment" := FALSE; "Unit Price (LCY)" := RES."Unit Price"; "Unit of Measure Code" := RES."Base Unit of Measure"; END;
4. Если вы пользуетесь функционалом Работы, измените триггер OnValidate по полю Job No. в таблице 39 Purchase Line:
//IF NOT (Type IN [Type::Item,Type::"G/L Account"]) THEN IF NOT (Type IN [Type::Item,Type::"G/L Account",Type::Resource]) THEN
5. Таблицы 203 и 207.
- a. Добавьте Поставщика (Vendor) в список Option’ов после Customer для поля Source Type.
- b. Добавьте option Purchase в поле Entry Type.
- c. Измените свойства этих полей, так чтобы при выборе Source Type = Vendor ссылка вела на таблицу Vendor.
6. Кодеюнит 90.
- a. Добавьте локальную переменную ResJnlLine, тип — Record, Res. Journal Line.
- b. Добавьте локальную переменную ResJnlPostLine, тип — Codeunit, Res. Jnl.-Post Line. Затем измените код (см.ниже):
//3: ERROR(Text015); PurchLine.Type::Resource: IF PurchLine."Qty. to Invoice" <> 0 THEN BEGIN ResJnlLine.INIT; ResJnlLine."Posting Date" := "Posting Date"; ResJnlLine."Document Date" := "Document Date"; ResJnlLine."Reason Code" := "Reason Code"; ResJnlLine."RESource No." := PurchLine."No."; ResJnlLine.Description := PurchLine.Description; ResJnlLine."Source Type" := ResJnlLine."Source Type"::Vendor; ResJnlLine."Source No." := PurchLine."Buy-from Vendor No."; ResJnlLine."Job No." := PurchLine."Job No."; ResJnlLine."Unit of Measure Code" := PurchLine."Unit of Measure Code"; ResJnlLine."Shortcut Dimension 1 Code" := PurchLine."Shortcut Dimension 1 Code"; ResJnlLine."Shortcut Dimension 2 Code" := PurchLine."Shortcut Dimension 2 Code"; ResJnlLine."Gen. Bus. Posting Group" := PurchLine."Gen. Bus. Posting Group"; ResJnlLine."Gen. Prod. Posting Group" := PurchLine."Gen. Prod. Posting Group"; ResJnlLine."Entry Type" := ResJnlLine."Entry Type"::Purchase; ResJnlLine."Document No." := GenJnlLineDocNo; ResJnlLine."External Document No." := GenJnlLineExtDocNo; ResJnlLine.Quantity := PurchLine."Qty. to Invoice"; ResJnlLine."Unit Cost" := PurchLine."Unit Cost (LCY)"; ResJnlLine."Total Cost" := PurchLine."Unit Cost (LCY)" * ResJnlLine.Quantity; ResJnlLine."Unit Price" := PurchLine.Amount/PurchLine.Quantity; ResJnlLine."Total Price" := PurchLine.Amount; ResJnlLine."Source Code" := SrcCode; ResJnlLine.Chargeable := TRUE; ResJnlLine."Posting No. Series" := "Posting No. Series"; ResJnlLine."Qty. per Unit of Measure" := PurchLine."Qty. per Unit of Measure"; TempJnlLineDim.DELETEALL; TempDocDim.RESET; TempDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line"); TempDocDim.SETRANGE("Line No.",PurchLine."Line No."); DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim); ResJnlPostLine.RunWithCheck(RESJnlLine,TempJnlLineDim); END;
Проверьте, как работает ваша доработка :)

Автор: Андрей Стрельников
В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.
Количество статей, опубликованных автором: 86.