суббота, 7 мая 2016 г.

Двойная проводка при проведении платежных документов.

При проведении платежных документов, например Платежного поручения, порой проводка может делиться на 2 строки. В итоге сумма верная, но поделена на 2 записи в регистре бухгалтерии.

Дело оказалось в том, что при проведении, движения документа, формируются на дату исполнения. А вот проверка остатков, осуществляется на дату документа. Если в один день было несколько движений, то у нас проводки могут плодиться.

Исправить это можно установив корректную дату для запроса остатков ...

Общий модуль: УчетРасчетов.
Функция ТаблицаРасчетовСПогашениемЗадолженности(...)

// Получим остатки задолженности со счетов бухгалтерского учета.ПериодОстатков = ?(Реквизиты.Свойство("ПериодОстатков"), Реквизиты.ПериодОстатков, Новый Граница(Реквизиты.Ссылка.МоментВремени(), ВидГраницы.Исключая)); //+ИЗМЕНЕНИЕ НАЧАЛО здесь некорректно устанавливается граница, так как проведение идет по дате исполнения а не по дате документа//На всякий случай делаем все в попыткеПопытка ДПроведения = БухгалтерскиеОперации.ДатаИсполненияДокумента(Реквизиты.Ссылка); //в остатках не будут учтены движения регистра, произошедшие в тот же момент времени //то что нам и нужно Если ЗначениеЗаполнено(ДПроведения) Тогда ПериодОстатков = ?(Реквизиты.Свойство("ПериодОстатков"), Реквизиты.ПериодОстатков, Новый МоментВремени(ДПроведения, Реквизиты.Ссылка)); Иначе ПериодОстатков = ?(Реквизиты.Свойство("ПериодОстатков"), Реквизиты.ПериодОстатков, Новый Граница(Реквизиты.Ссылка.МоментВремени(), ВидГраницы.Исключая)); КонецЕсли;Исключение ПериодОстатков = ?(Реквизиты.Свойство("ПериодОстатков"), Реквизиты.ПериодОстатков, Новый Граница(Реквизиты.Ссылка.МоментВремени(), ВидГраницы.Исключая));КонецПопытки;//-ИЗМЕНЕНИЕ КОНЕЦ ОстаткиЗадолженности = ОстаткиЗадолженности(ПериодОстатков, РасшифровкаПлатежа, Реквизиты);
Добавленный текст выделен синим цветом. Актуально для версии 2.0.42.37 и младше. Когда исправят неизвестно. 

Комментариев нет:

Отправить комментарий