В процессе работы с конфигурацией Управление производственным предприятием пользователи нередко сталкиваются с ситуацией, когда автоматическая обработка Регистрация счетов-фактур на аванс выдает неверные суммы или вовсе работает некорректно. Чаще всего это происходит в компаниях, которые используют платежные документы с детализацией Списком, где один банковский платеж распределяется между несколькими заказами покупателей. Давайте разберем, почему это происходит и как решить данную задачу.
Типовой механизм регистрации счетов-фактур был спроектирован разработчиками 1С исходя из модели «один документ оплаты — один заказ». Когда бухгалтер заполняет табличную часть Расшифровка платежа с типом Списком, структура данных усложняется. Алгоритм типовой обработки при сборе данных из регистров накопления и регистров бухгалтерии пытается произвести «схлопывание» (группировку) сумм. В этот момент логика типового кода, ориентированная на простую структуру документа, не учитывает аналитику по строкам табличной части, что приводит к появлению ошибочных сумм или нулевых показателей.
Важно понимать: когда мы создаем счет-фактуру на основании конкретной платежки, система открывает форму документа, которая корректно «видит» контекст строки и позволяет сформировать правильный аванс. Обработка же работает через глобальные запросы к регистрам, которые «не умеют» правильно интерпретировать многострочные платежи в УПП.
Если мы не хотим вмешиваться в код конфигурации, нам необходимо привести учет к тому виду, который «понимает» система. Рассмотрим возможные шаги:
Платежное поручение входящее. Это позволит типовой обработке Регистрация счетов-фактур на аванс корректно подхватывать данные, так как привязка «1 платеж — 1 заказ» будет соблюдена.На основании. Это гарантирует корректность каждой записи, однако при большом объеме операций этот способ становится нерациональным и требует значительных временных затрат от бухгалтерии.Для большинства крупных предприятий, работающих в УПП, единственным эффективным решением является создание собственной внешней обработки. Это позволяет автоматизировать процесс, не снимая конфигурацию с поддержки. Рассмотрим, что именно должен делать алгоритм такой обработки:
Расшифровка платежа.Заказ покупателя необходимо инициировать процедуру создания документа Счет-фактура выданный.Списком.Примерная логика работы кода для разработчика может выглядеть следующим образом:
// Пример логики обработки строк платежного документа
Для Каждого СтрокаТЧ Из Платежка.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(СтрокаТЧ.Заказ) Тогда
НовыйСФ = Документы.СчетФактураВыданный.СоздатьДокумент();
НовыйСФ.ДокументОснование = Платежка.Ссылка;
// Заполняем сумму и аналитику из текущей строки
НовыйСФ.Сумма = СтрокаТЧ.Сумма;
// ... прочая логика заполнения
НовыйСФ.Записать();
КонецЕсли;
КонецЦикла;
Мы выяснили, что стандартная обработка в УПП не адаптирована для работы со сложной аналитикой списочных платежей.
Если вы столкнулись с этой ошибкой, проанализируйте объем ваших платежных документов. Если их количество исчисляется сотнями, рекомендуем заказать написание внешней обработки, которая будет корректно обрабатывать табличную часть Расшифровка платежа. Если же количество документов невелико, рассмотрите возможность изменения внутреннего регламента компании в пользу разделения платежей. Это позволит избежать лишних затрат на доработку системы и обеспечит корректность бухгалтерского учета авансов.