Цитата:
Сообщение от
buba
Доброго времени суток!
Прошу совета в такой ситуации:
Для собственного модуля "Ценные бумаги (ЦБ)" разрабатывается механиз бух. проводок
Операции по ЦБ совершаются в комбинациях с Клиентами и Поставщиками, соответственно рождаются записи в LedgerTrans, CustTrans (либо VendTrand) и в BillsTrans.
В LedgerTrans две половинки (дебет и кредит), в каждой из которых указывается тип разноски (LedgerPostingType), который может принимать значения "Сальдо по клиенту", "Доход по клиенту" и т.д. (либо "... по постащику" и т.д.) или "Сальдо по ЦБ", "Доход по ЦБ" и т.д.
По логике (возможно ошибочной) проводка в LedgerTrans должна сожержать намек на то, что она затрагивает как сальдо Клиента (либо Поставщика) так и сальдо ЦБ. Следуя этой логике можно в дебетовой половинке указать "Сальдо по поставщику", а в кредитовой "Сальдо по ЦБ" или наоборот, но тогда вопрос: на чем в дальнейшем может сказаться такая вариабельность или по другому: что в аксапте завязано на тип разноски (LedgerPostingType)?
В последних версиях - ничего не зваязано (насколько я знаю)
Разноска не долна содержать намек, что она затрагивает что-то другое.
Суть разносок в следующем.
1. Аксапта начинает создавать операцию
2. В цикле Аксапта передает управление различным модулям
2.1. Каждый модуль создает свои записи в операции (свои проводки)
3. Аксапта выполняет свертку операции
3.1. Одинаковые счета с одинаковой финансовой аналитикой, с одинаковыми валютами и одинаковыми LedgerPostingType суммируются
4. Аксапта проверяет получившуюся операцию
4.1. Проверяет, что есть баланс
4.2. Выполняет другие проверки
После чего проводка записывается
Таким образом, ваш модуль может с легким сердцем ничего не знать о других модулях... до тех пор пока вы работаете с выключенной корреспонденцией.
Корреспонденция здорово вмешивается в этот алгоритм.
Мне кажется, что вам лучше учитывать стандартное поведение Аксапты.
Чтобы модуль корреспонденции правильно работал по вашим проводкам лучше провести дополнительное обучение этого модуля. По-моему.