Задаване на периодичния атрибут на директорията при осчетоводяване на документ

Транзакции

Публикуване на документ

Изявлението Post() в примера по-горе ще публикува документа. При публикуване ще бъде извикана предварително дефинираната процедура PostProcessing(). Стойността („Програмно“) се предава на обработката на осчетоводяване от втората променлива, чрез която процедурата PostProcessing() научава за програмното изпълнение на осчетоводяването. Може да бъде обикновен низ или число, чиято цел е само да посочи факта на изпълнение на програмата.

Ако работите с вече съществуващ документ, тогава методът Post() ще публикува отново документа. А с помощта на метода Posted() можете да разберете дали даден документ е публикуван:

Ако Doc.Passed() > 0 Тогава

Notify("Документ #" + Doc.DocNumber + "публикуван"); …………… // Някои действия, които трябва да бъдат извършени с публикувания документ

За създаване на транзакции и осчетоводявания при осчетоводяване на документи, прочетете раздел Операции и осчетоводявания в глава Счетоводство.

Когато създавате много документи или за да ускорите работата, можете да затворите цикъла в транзакция. В този случай действителният запис на документи ще се извърши само от командата CommitTransaction(). По време на транзакцията записването и публикуването на документи е блокирано за други потребители.

Write-OffMaterials = CreateObject("Document.RequirementInvoice"); Стартиране на транзакция(); За Nom = 1 до 100 цикъла

Write-OffMaterials.New(); ………………… // Попълване на подробности Write-offMaterials.Write(); Материали за отписване.Изпращане();

Позволете ми да ви напомня, че предварително дефинираната процедура Postprocessing() независимо отваря транзакция за публикуване, но има малка функция на документа, създаден от функцията CreateObject(). Факт е, че програмното внедряване на създадените документи не се извършваавтоматично предварително записване, като за да се поддържа последователността на данните на документа и неговите движения (операции) в случай на повреди и грешки, е необходимо записът и осчетоводяването на документа да се комбинират в една транзакция.

Прост пример за такова действие е определянето на нова заплата за служител в директорията на служителите, когато се прави например таблица с персонала.

SetDirectoryAttribute (Служител, "Заплата", Нова заплата, DateDoc);