Почему в отчете Задолженность поставщикам по срокам в УТ 11 двоятся данные или отображаются неверные остатки

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В конфигурации «1С:Управление торговлей», редакция 11 (особенно в версиях ветки 11.4), пользователи часто сталкиваются с ситуацией, которую называют «полтергейстом» во взаиморасчетах. Суть проблемы заключается в следующем: документы поступления (Приобретение товаров и услуг) и оплаты (РКО или Списание с безналичных денежных средств) оформлены и проведены, но отчет «Задолженность поставщикам по срокам» продолжает показывать долг, который может даже удваиваться или отображаться одновременно в колонках долга и предоплаты.

Разберем детально, почему это происходит, как диагностировать проблему и какими методами ее можно решить, основываясь на внутреннем устройстве регистров 1С.

Разберем архитектуру: два движка взаиморасчетов

Прежде всего, нам необходимо понять, что в современных версиях УТ 11 сосуществуют две принципиально разные архитектуры ведения взаиморасчетов. Именно из-за этого возникает путаница при попытке проанализировать запрос отчета в конфигураторе.

  1. Офлайн-взаиморасчеты (старый режим): В этом режиме данные пишутся в регистры РасчетыСПоставщиками и РасчетыСПоставщикамиПоДокументам. Для того чтобы оплаты «привязались» к накладным, требуется запуск специального регламентного задания или выполнение операции в помощнике закрытия месяца.
  2. Онлайн-взаиморасчеты (новый режим): Данные фиксируются в регистрах РасчетыСПоставщикамиПоСрокам и РетроспективныеРасчетыСПоставщиками. Здесь распределение происходит мгновенно в момент проведения документа.

Проанализируем ситуацию: если вы открываете отчет в конфигураторе и видите запрос к регистру РегистрНакопления.РасчетыСПоставщикамиПоСрокам, но при этом в самой базе этот регистр абсолютно пуст — это означает, что у вас включен офлайн-режим. Отчет «Задолженность поставщикам по срокам» является универсальным объектом, который с помощью функциональных опций динамически меняет схему компоновки данных (СКД). Таким образом, запрос, который вы видите «глазами» в конфигураторе, может не иметь никакого отношения к тем данным, которые выводятся на экран в режиме предприятия.

Почему данные могут удваиваться

Рассмотрим механизм возникновения «фантомных» долгов. В режиме офлайн-расчетов задолженность фиксируется в регистре РасчетыСПоставщикамиПоДокументам. Проблема удвоения часто связана с некорректным заполнением измерений или графика оплаты.

Когда мы проводим «Приобретение товаров», система делает запись в регистр с указанием объекта расчетов и плановой даты платежа. При проведении оплаты (например, РКО) система должна найти соответствующую запись долга и «закрыть» ее. Если же между документами возникло расхождение (например, разные Объекты расчетов, разные Договоры или сбой в Графике оплаты), отчет может интерпретировать это как две независимые сущности: неоплаченный долг перед поставщиком и нашу предоплату поставщику. В итоге в колонке «Долг поставщика» мы видим обе суммы, если они не схлопнулись по аналитике.

Проанализируем данные с помощью консоли запросов

Для диагностики рекомендуется использовать консоль запросов и проверить состояние регистра РасчетыСПоставщикамиПоДокументам. Нам необходимо убедиться, что записи по одному и тому же объекту расчетов корректно закрывают друг друга.

Выполним запрос следующего вида для проверки остатков и оборотов:


ВЫБРАТЬ
    Взаиморасчеты.Организация,
    Взаиморасчеты.Поставщик,
    Взаиморасчеты.ОбъектРасчетов,
    Взаиморасчеты.СуммаОстаток,
    Взаиморасчеты.ПредоплатаОстаток
ИЗ
    РегистрНакопления.РасчетыСПоставщикамиПоДокументам.Остатки(&ДатаОтчета, ) КАК Взаиморасчеты

Если в результате запроса вы видите две строки по одному контрагенту, где в одной заполнена СуммаОстаток, а в другой — ПредоплатаОстаток, значит, автоматическое распределение не сработало. Выясним, почему это произошло.

Шаг 1: Проверка регламентных заданий

Поскольку мы работаем в режиме офлайн, ключевым звеном является регламентное задание «Распределение взаиморасчетов». Даже если вы нажимаете кнопку «Выполнить формирование движений» в закрытии месяца, стоит проверить технический регистр сведений ЗаданияКРаспределениюВзаиморасчетов. Если в этом регистре висят записи, которые не исчезают после запуска задания, это сигнализирует о программной ошибке или «зависшем» фоновом процессе.

Шаг 2: Перепроведение цепочки документов

Иногда помогает стандартная процедура:

  1. Распровести все документы по данному поставщику (и приобретения, и оплаты).
  2. Последовательно провести их в хронологическом порядке.
  3. Запустить актуализацию расчетов в разделе «Финансовый результат и контроллинг — Закрытие месяца».

Шаг 3: Тестирование и исправление (ТИИ)

Как показывает практика, часто причиной «полтергейста», когда в движениях документа записей нет, а в остатках отчета они появляются, является расхождение итогов в регистрах накопления. 1С хранит итоги в отдельных таблицах базы данных (Totals), и если эти таблицы «разъехались» с основной таблицей движений, отчеты будут выдавать неверную информацию.

Для исправления ситуации выполните следующие действия:

  1. Создайте резервную копию информационной базы (обязательно!).
  2. Запустите конфигуратор и перейдите в меню «Администрирование — Тестирование и исправление...».
  3. Выберите пункты:
    • Пересчет итогов (исправит расхождения между движениями и остатками).
    • Проверка логической целостности информационной базы.
    • Очистка ссылок на несуществующие объекты (поможет, если в измерениях регистра затесалась «битая ссылка» — Object Not Found).
  4. Нажмите «Выполнить» и дождитесь окончания процесса.

После завершения ТИИ пересчитанные итоги регистра РасчетыСПоставщикамиПоДокументам должны прийти в соответствие с реальными документами, и «лишние» суммы из отчета исчезнут.

Профилактика проблем в будущем

Чтобы избежать подобных ситуаций, рекомендуется рассмотреть переход на онлайн-режим взаиморасчетов (доступно в настройках «НСИ и администрирование — Казначейство и взаиморасчеты»). Это исключит стадию отложенного распределения и позволит видеть актуальную задолженность сразу после проведения документов.

Также полезно использовать скрытую обработку «Исправление ошибок в данных взаиморасчетов» (ее можно найти через поиск в меню «Все функции» или «Функции для технического специалиста»). Она позволяет выявить и устранить логические ошибки в регистрах, которые не всегда исправляются обычным перепроведением.

Важный момент: Если вы видите, что данные в отчете все равно не сходятся, обратите внимание на настройку Распределять взаиморасчеты при формировании отчетов. Если она включена, система пытается выполнить расчеты в момент открытия отчета, что при наличии ошибок в базе может приводить к визуальным искажениям данных.

← На главную