08.02.2005, 15:01 | #1 |
Участник
|
Столкнулся с проблемой отсутствия корреспонденции проводок.
На основании проводок по сопоставлению в конце процедуры закрытия склада система формирует разноску в ГК в соотв. с параметрами (по номенклатуре, ном.группе, общее кол-во). Так сложилось, что используется группировка по номенклатуре. Это было вступление, теперь сама суть: Допустим имеется 1 номенклатура, 3 расходные проводки, по которым сформировались 3 проводки по сопоставлению: 1. BalAcc: сч.1, OppAcc: корр.сч1, CostAmAdj = 100 2. BalAcc: сч.1, OppAcc: корр.сч2, CostAmAdj = 50 2. BalAcc: сч.1, OppAcc: корр.сч3, CostAmAdj = -150 Здравый смысл подсказывает, что проводки должны быть следующими (во внимание не принимаем признак коррекции - его нет): 1. Дт. сч.1 - Кт. корр.сч.1 100 2. Дт. сч.1 - Кт. корр.сч.2 50 3. Дт. корр.сч.3 - Кт. сч.1 150 На самом деле имеем: 1. ПУСТО - Кт. корр.сч.1 100 2. ПУСТО - Кт. корр.сч.2 50 3. Дт. корр.сч.3 - ПУСТО 150 Немного поразбиравшись (попытавшись разобраться) в механизме корреспонденций в методе end() класса LedgerVoucherTransSum происходит группировка временной таблицы по определенному набору признаков, эти данные далее используются для формирования ledgerTrans и т.д. По "счастливому" стечению обстоятельств сумма по сч.1 сошлась в нуль. Проводка в ledgerTrans не появилась, по корр.счетам соответственно появились. Таким образом образовались неоткорреспондированные проводки. Внимание, вопрос! 1. А какого ...?! 2. Сталкивался ли кто-нибудь с подобной проблемой? 3. Как быть и что делать? PS: модифов 0. |
|