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