Есть пара реквизитов, которые из договора должны попадать в документ («Заказ поставщику», «Приобретение товаров и услуг», «Списание безналичных денежных средств» …), а затем влияют на проведение документа по регистрам взаиморасчётов. Это реквизиты "ПорядокРасчетов" (детализация расчётов) и "НаправлениеДеятельности" – если направления деятельности включены в настройках. Однако – не всегда попадают, и это приводит к проблемам. Реквизит "ПорядокРасчетов" – используется, при проведении документов, но от неверного значения именно в шапке документа, я заметил только одно последствие: в списке заказов (ФормаСпискаДокументов) вместо статуса "Закрыт" – будет "Ожидает оплаты", если ПорядокРасчетов="По договорам", потому что оплата – привяжется к договору. Расскажу подробно про реквизит «НаправлениеДеятельности», вот он – влияет на регистры накопления напрямую.
Для Приобретения и Заказа должно быть в шапке НаправлениеДеятельности=Договор.НаправлениеДеятельности. Для документа Списание ДС - реквизиты находятся в строках табличной части РасшифровкаПлатежа: в строке должно быть НаправлениеДеятельности=ОбъектРасчетов.Договор.НаправлениеДеятельности.
Например, в Приобретении реквизит заполнен, а в Списании ДС не заполнен – «Наш долг» и «Долг поставщика» – имеют разные аналитики, и потому не «схлопываются», вот вам и двойное сальдо.
В ситуации с ошибкой «Запись не верна! …» – несколько сложнее: при проведении документа (нового, а не того, где ошибка), происходят вычисления по регистрам – ожидается, что в связанных документах – аналитика совпадает, а она – отличается.
Выявить неверно заполненные, а значит, и неверно проведённые документы можно запросом по одному из регистров накопления (РасчетыСПоставщиками, РасчетыСПоставщикамиПоСрокам, РасчетыСПоставщикамиПланОплат). В регистрах РасчетыСПоставщикамиПоСрокам и РасчетыСПоставщикамиПланОплат – реквизит упрятан в «Аналитику учёта по партнёрам», там же находится и сам договор. Ещё одна копия «Аналитики учёта по партнёрам» – содержится по ссылке в поле "Регистратор" регистра накопления, в документе типа "Документ.РегистраторРасчетов".
В нормальной ситуации:
РасчетыСПоставщикамиПланОплат.АналитикаУчетаПоПартнерам.НаправлениеДеятельности
=РасчетыСПоставщикамиПланОплат.АналитикаУчетаПоПартнерам.Договор.НаправлениеДеятельности
И РасчетыСПоставщикамиПланОплат.АналитикаУчетаПоПартнерам.НаправлениеДеятельности
=РасчетыСПоставщикамиПланОплат.Регистратор.АналитикаУчетаПоПартнерам.НаправлениеДеятельности
И РасчетыСПоставщикамиПланОплат.АналитикаУчетаПоПартнерам.НаправлениеДеятельности
=РасчетыСПоставщикамиПланОплат.Регистратор.АналитикаУчетаПоПартнерам.Договор.НаправлениеДеятельности
Перепровести проблемные документы – не так просто: часто, после распроведения - остаются следы в виде записей в тех же регистрах. Причина тут точно такая же, как и с ошибкой «Запись не верна! …»: механизм распроведения делает отбор по одному составу аналитики, а в записи - другая. Неверные записи - не попадают в отбор для очистки и – остаются.
Соответственно, нужно контролировать отсутствие следов распроведения и зачищать их:
- вручную: пометить на удаление соответствующий "Документ.РегистраторРасчетов" + удалить помеченные
- программно: удалить "Документ.РегистраторРасчетов" вместе с записями регистров
Вылечить проблему на будущее – гораздо проще, чем выяснить причину или починить старые: достаточно сделать «подписку на событие» с заполнением соответствующих реквизитов документа из договора.