Столкнулся с проблемой отсутствия корреспонденции проводок.
На основании проводок по сопоставлению в конце процедуры закрытия склада система формирует разноску в ГК в соотв. с параметрами (по номенклатуре, ном.группе, общее кол-во). Так сложилось, что используется группировка по номенклатуре.
Это было вступление, теперь сама суть:
Допустим имеется 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.
|