22.10.2024, 20:04 | #1 |
Участник
|
Как правильно сопоставлять платежи с оптатами?
Ax2012
Мне нужно сопоставлять платежи с оплатами при импорте строк журнала. Мне дается при импорте номер счет-фактуры, с которой надо сопоставить строку журнала. Это надо делать как при импорте журналов клиентов так и для строк журналах платежей поставщиков (в любом случае делаем сопоставление). Если оплата неполная, то сумма должна корректно перерасчитаться на проводке помеченной к оплате. Вот кода, например https://axgenius.blogspot.com/2016/11/how-to-mark-vendor-open-settlement.html сопоставляет для поставщиков и использует custvendopentransmanager Нахожу также код , где используется spectransmanager (ну, например, даже тут Сопоставление VendTrans) Как правильно это делать? И можно ли сделать так, чтобы работал код и для пославщиков и для клиентов или есть какие-то различия в бизнес-логике такие, что это незозможно? Спасибо PS: Также вопрос про markedInvoice на строках журнала. Нужно ли его заполнять при сопоставлении платежей с оплатами поставщика? Вроде как не заполняется, но не понимаю почему он не нужен Последний раз редактировалось Lankey; 22.10.2024 в 20:13. |
|
23.10.2024, 02:15 | #2 |
Участник
|
А тут https://www.theaxapta.com/2015/03/au...ice-in-ax.html иcпользуют custVendTransData
PS: Прошу прощения за опечатки. Впопыхах писала первое сообщение, и сейчас уже нельзя ни удалить, ни исправить |
|
23.10.2024, 10:45 | #3 |
Участник
|
Первая ссылка - маркирование проводок по документам, которые еще не разнесены в системе (в момент разноски сформируется проводка и она будет сопоставлена с той, по которой сделана маркировка перед разноской).
Ссылка из второго сообщения - сопоставление уже сформированных проводок (т.е. когда у вас уже есть в системе и накладная и оплата). Варианты реализации, которые видятся (оба варианта - что маркирование до разноски\что после для CustVend будут выглядеть +- одинаково (использование мапов CustVendTrans\CustVendTransOpen и т.д. думаю поможет сделать идентичным, пример из коробки CustVendAutoSettlement_RU), если не использовать markedInvoice или допилить его использование для поставщиков) : - Выполнить маркирование не разнесенной строки журнала с уже проведенной проводкой накладной (в момент создания\отдельным методом после создания всех строк). Пример как это сделать есть в первой ссылке. Для клиентов из коробки можно использовать поле markedInvoice (заполняем номер, код компании) и дополнительно вызываем код из DS write формы клиентов платежей - по сути он выполняет тоже самое, что и код маркирования, в случае оплаты для одной накладной, скажем так - код получается чуть проще. Для поставщиков не используется, только если допиливать для своих нужд. - Выполнить разноску строки журнала и уже после сопоставлять сформированные проводки оплаты и накладной (пример из второго сообщения). Я сейчас уже не вспомню всех нюансов, но о чем стоит подумать и посмотреть : - можно ли маркировать две разных строки журнала на одную накладную (т.е. у вас накладная на 200 руб, придет 2 оплаты по 100 рублей, не будет ли проблемы с маркированием второй проводки на 100, пока первая еще также помечена и не разнесена, кажется что не должно). Просто помню иногда из интерфейса открываешь проводки для сопоставления, а там проводка может быть помечена красной рукой и эту проводку выбрать для пометки уже нельзя. - если журналы большие - много строк, мало клиентов - то сопоставление в момент создания\разноски журнала, может стать узким местом и возможно имеет смысл сделать отдельную ПО для сопоставления уже в отдельной транзакции после разноски.
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: Lankey (1). |
23.10.2024, 14:04 | #4 |
Участник
|
Спасибо, Сергей! Да, мне нужно строку неразнесенного журнала промаркировать с разнесенной счет-фактурой. В отличае от 1го примера, у меня могут быть частичные оплаты. То есть, сумма оплаты меньше, чем сумма счет-фактуры. Поэтому,видимо, не нужно обновлять сумму на журнале,как в примере, а вызывать custvendopentransmanager.updateSettleAmount(myJourLinePaymAmount). Вопрос, нужно ли потом еще и taxWitholdTrans пересчитывать(. В примере этого нет, а вот в форме vendOpenTrans editSettleAmoutCur() вызывает такой пересчет)
Не понимаю, почему столько вариантов даже в стандарте для простого, казалось бы, сопоставления. Будто по минному полю ходишь (. Может, есть какая-то документация для разработчиков, где можно почитать о том, как правильно это делать, чтобы не наломать дров? Как Вы все с этим разбирались ? По коду или читали где-то док с архитектурой этого процесса (какие классы и таблицы за что отвечают и тд) |
|
Теги |
ax2012 |
|
|