При работе в программе 1С:Управление торговлей редакции 10.3 пользователи часто сталкиваются с ситуацией, когда в типовом отчете Ведомость по взаиморасчетам с контрагентами начинают отображаться документы многолетней давности. Даже если за текущий период движений по этим накладным не было, а общий баланс по контрагенту кажется верным, старые записи продолжают «висеть» в колонках начального и конечного остатка. Разберем подробно, почему это происходит и какими способами можно привести отчет в порядок.
Проанализируем механику работы системы. В конфигурации УТ 10.3 взаиморасчеты фиксируются параллельно в нескольких регистрах накопления. Основными являются Взаиморасчеты с контрагентами (где данные хранятся в целом по договору) и Взаиморасчеты с контрагентами по документам расчетов (где учет ведется детально по каждой накладной и платежке).
Проблема «зависания» старых документов возникает из-за так называемого разрыва регистров. Представим ситуацию: по договору в целом долга нет, но если посмотреть детально, то по «Реализации №1» висит остаток +1000 рублей, а по «Платежному поручению №2» висит аванс -1000 рублей. В общем итоге — ноль, но для программы это две незакрытые сделки. Типовой отчет, настроенный на вывод детальных расчетов, обязан показать эти суммы как остатки на начало периода, так как они формально не были «схлопнуты» между собой.
Рассмотрим основные факторы, приводящие к этому:
Если нам необходимо быстро получить «чистый» отчет без внесения изменений в учетные данные за прошлые периоды, проанализируем возможности настройки самого отчета. Этот метод подходит, когда документы 8-летней давности нельзя трогать по регламенту компании.
Воспользуемся следующими шагами в настройках отчета:
Ведомость по взаиморасчетам с контрагентами.Начальный остаток и Конечный остаток. Если нам нужны только текущие обороты за месяц, это полностью решит проблему визуального шума.Приход не равен 0 ИЛИ Расход не равен 0. Таким образом, отчет выведет только те документы, по которым реально были движения в выбранном периоде.Документ движения (регистратор), система схлопнет данные до уровня договора, и старые долги перестанут отображаться отдельными строками, если итог по договору равен нулю.Этот метод является наиболее правильным с технической точки зрения, так как он устраняет первопричину — «хвосты» в регистрах. Рассмотрим, как грамотно «схлопнуть» записи, чтобы они навсегда исчезли из отчетов.
Для этого выполним следующую последовательность действий:
Корректировка записей регистров.Взаиморасчеты с контрагентами по документам расчетов.Проанализируем пример заполнения: если у нас висит «плюс» по одной реализации и «минус» по другой, мы должны сделать две записи в корректировке. Первая запись будет с видом движения Расход по документу с плюсом, вторая — с видом движения Приход (или сторно) по документу с минусом. Важно, чтобы общая сумма корректировки по договору равнялась нулю, иначе мы изменим сальдо взаиморасчетов.
Пример программного кода для понимания структуры движений (в случае автоматизации процесса):
// Создание записи в регистре через корректировку
НоваяЗапись = РегистрНабор.Добавить();
НоваяЗапись.ВидДвижения = ВидДвиженияНакопления.Расход;
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.ДоговорКонтрагента = СсылкаНаДоговор;
НоваяЗапись.Контрагент = СсылкаНаДоговор.Владелец;
НоваяЗапись.ДокументРасчетов = СтарыйДокументСДолгом;
НоваяЗапись.СуммаВзаиморасчетов = ОставшийсяХвост;
Вместо ручного исправления регистров, разберем работу стандартного механизма. В УТ 10.3 предусмотрен документ Корректировка долга с операцией Проведение взаимозачета.
Посмотрим на алгоритм действий:
Корректировка долга.Проведение взаимозачета.Заполнить — Заполнить остатками по взаиморасчетам.Важный нюанс: Этот документ сделает движения не только по управленческим регистрам, но и по бухгалтерским (если ведется учет), что обеспечит единообразие данных во всех отчетах.
Иногда документы «висят» из-за того, что программа просто «забыла» распределить оплаты. Рассмотрим работу обработки Проведение документов по восстановлению состояния расчетов.
Проанализируем ситуацию: в УТ 10.3 есть механизм автоматического распределения оплат по накладным. Если этот механизм дал сбой 8 лет назад, достаточно запустить восстановление за тот период. Однако будьте предельно осторожны! Перепроведение или пересчет расчетов за столь старый период в рабочей базе может привести к изменению текущих остатков, если в базе были ручные правки или удаление документов. Перед запуском этой процедуры обязательно выполните ее на копии базы и сверьте конечные остатки.
В сообщениях форума упоминается, что самописный отчет на Системе Компоновки Данных (СКД) может не показывать эти документы. Выясним причину такой разницы.
Типовой отчет УТ 10.3 построен на построителе отчетов и часто обращается к виртуальной таблице ОстаткиИОбороты с определенной периодичностью и детализацией. Если в запросе типового отчета жестко прописано использование аналитики ДокументРасчетов, он будет выводить каждую строку. Отчет на СКД может быть настроен иначе: например, он может брать данные из регистра Взаиморасчеты с контрагентами (общий), где аналитики по документам просто нет, поэтому там всегда будет «красивый» ноль.
Рассмотрев все варианты, выделим оптимальную стратегию:
Взаиморасчеты с контрагентами по документам расчетов.Помните, что чистота регистров взаиморасчетов напрямую влияет не только на отчеты, но и на скорость работы системы, так как при проведении новых документов программа каждый раз анализирует все незакрытые остатки прошлых лет для автоматического зачета авансов.