На деле в коде все довольно просто, если эмулировать именно ручное сопоставление, а не делать его самому из кода
1. нужно напихать галок в SpecTrans (для этого есть класс SpecTransManager, это в АХ2009, до этого класс был другой, SpecOffsetVoucher вроде)
2. нужно дернуть метод CustTrans::settleTransact (Важно, на вход он берет курсор клиента и обрабатывает сразу все галки оптом, потому в коде делаем по парам, если хотим этим управлять осознано, а не по некому внутреннему алгоритму)
По поставщику все симметрично
Это все касается разнесенных проводок.
Для неразнесенных делаем аналогично (галки в СпекТранс), но только для пар (или 1 к Н) по неразнесенной и нескольким разнесенным
При разноске журнала или документа сопоставление должно пройти само.
Тут лучше посмотреть как это через интерфейс отрабатывает. Но по сути нам нужно сэмулировать именно простановку галки сопоставления, при разноске само вызовется.
Как связать две нерезнесенные проводки (попросту не проводки, а записи в документах) не ясно. Штатно такого нет
Нужно делать свой функционал, который при разноске будет отмечать проводку (что-то же раньше разнесут, что-то позже) и связывать ее уже с помощью штатных функций.
То есть тоже можно, но уже не простым вызовом готовых методов.
Последний раз редактировалось BOAL; 10.12.2011 в 18:24.
|