10.02.2012, 12:04 | #1 |
Участник
|
Сторнирование накладной в заказе на продажу
Всем привет! С аксаптой знаком недавно, так что не судите строго.
Вопрос в следующем: Мне нужно сторнировать накладную в журнале накладных (форма CustInvoiceJournal). Для этого у меня есть соответсвующая кнопка на форме. Когда пользователь её нажимает, то делаются некоторые проверки на возможность сторнирования, типа: существует ли заказ на продажу для выбранной накладной (таблица SalesTable по полю SalesId) и т.п. С проверками разобрался. После них, если все в порядке, необходимо выполнить проведение сторнирующей накладной автоматически, воспроизведя стандартный алгоритм разноски как на форме "Разноска накладной" (форма SalesTable "Заказ на продажу" -> кнопка "Разноска" -> "Накладная" -> открывается форма SalesEditLines). После разноски создается накладная в таблице CustInvoiceJour. Для разноски накладной стандартным функционалом используется класс SalesFormLetter. Таким образом мне нужно сделать наоброт: у меня есть выбранная накладная CustInvoiceJour, по ней я нахожу заказ на продажу SalesTable, и для найденного заказа делается разноска накладной еще раз (для сторнирования). Дак вот, как это сделать программно? Вызвать класс SalesFormLetter, что бы он отработал не выводя на экран форму "Разноска накладной". Имея курсор заказа на продажу: X++: salesTable = SalesTable::find(custInvoiceJour.SalesId); X++: Args args = new Args(); Args formArgs = new Args(); Object objForm; ; //Проверки... formArgs.name(formstr(SalesTable)); objForm = ClassFactory.FormRunClass(formArgs); args.caller(objForm); args.record(SalesTable::find(custInvoiceJour.SalesId)); args.parmEnum(DocumentStatus::Invoice); SalesFormLetter::main(args); |
|