Почему взаимозачет задолженности не отражается в ведомости расчетов с поставщиками в 1С:УТ 11.4?

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

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

В этой статье мы подробно разберем, почему возникает данное расхождение аналитик, как устроена архитектура взаиморасчетов в современных версиях ERP-платформ 1С (УТ 11, КА 2, ERP 2), и рассмотрим пошаговый алгоритм исправления этой проблемы.

Выясняем причину: как работает аналитика учета по партнерам

Для того чтобы понять корень проблемы, проанализируем, каким образом система 1С определяет, к какому партнеру и контрагенту относится конкретная хозяйственная операция. Начиная с версии 11.4, в УТ используется оптимизированная архитектура взаиморасчетов. Вся ключевая информация по участникам расчетов хранится в специальном регистре сведений АналитикаУчетаПоПартнерам. Этот регистр содержит уникальные ключи (идентификаторы), которые состоят из жесткой связки трех реквизитов:

При проведении любого документа, влияющего на взаиморасчеты (будь то ПриобретениеТоваровУслуг, РеализацияТоваровУслуг или ВзаимозачетЗадолженности), система обращается к этому регистру сведений. Если связка «Организация — Партнер — Контрагент» уже существует, программа берет готовый ключ аналитики. Если связки нет, создается новая запись.

Проблема, описанная автором темы, заключается в том, что в движениях документа ВзаимозачетЗадолженности система использует ключ аналитики, в котором реквизит Партнер остался пустым. В то же время документы закупки и реализации были проведены с полноценным заполнением партнера. В результате в регистрах накопления образуются две разные ветки расчетов: одна — по партнеру "Ромашка", другая — по пустому партнеру при том же самом контрагенте. При формировании отчета "Ведомость расчетов" с установленным фильтром по конкретному партнеру система просто отсекает все движения, где в ключе аналитики партнер не заполнен.

Рассмотрим основные причины, из-за которых в движениях взаимозачета может сформироваться пустой партнер.

Причина 1. Расхождение аналитики в объектах расчетов

При создании произвольного или ручного взаимозачета в табличной части документа в качестве Объекта расчетов указываются конкретные первичные документы (например, ЗаказПокупателя на стороне дебиторской задолженности и ПриобретениеТоваровУслуг на стороне кредиторской). При проведении взаимозачета алгоритмы системы получают аналитику партнера напрямую из этих объектов расчетов, а не из реквизитов шапки самого документа взаимозачета.

Если в исходном заказе покупателя или документе приобретения партнер по какой-то причине не был заполнен (или возник конфликт дублирующих записей), то и во взаимозачет подтянется пустая аналитика.

Причина 2. Офлайн-режим ведения взаиморасчетов

В конфигурациях УТ 11.4 существует два принципиально разных режима ведения взаиморасчетов (настроить которые можно в меню НСИ и администрирование — Казначейство и взаиморасчеты):

Если в вашей базе включен режим "Офлайн", то до момента запуска соответствующего регламентного задания отчеты будут показывать некорректное, "разорванное" сальдо, а новые документы взаимозачетов могут отображаться без привязки к партнерам.

---

Пошаговый алгоритм решения проблемы

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

Шаг 1. Проверяем первичные документы расчетов

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

  1. Откроем документ взаимозачета и перейдем на вкладку дебиторской/кредиторской задолженности.
  2. Выясним, какие именно документы выбраны в колонке "Объект расчетов" (например, ПриобретениеТоваровУслуг).
  3. Перейдем в эти документы и проверим реквизиты Партнер и Контрагент. Они должны строго соответствовать партнеру и контрагенту, указанным в самом взаимозачете.
  4. Обратим особое внимание на ведение учета по договорам. Если в заказе или приобретении договор не используется, а во взаимозачете выбран конкретный договор, это гарантированно приведет к раздвоению аналитики.

Шаг 2. Использование помощника зачета оплаты

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

  1. Откроем целевой документ (например, ПриобретениеТоваровУслуг, по которому висит долг перед поставщиком).
  2. Нажмем на кнопку Зачет оплаты на панели инструментов.
  3. В открывшейся форме перейдем на вкладку Неиспользованные авансы. Здесь система автоматически подберет все доступные авансы и переплаты по данному контрагенту с учетом правильных ключей аналитики.
  4. Нажмем кнопку Зачесть платеж. Программа самостоятельно сформирует корректный документ взаимозачета, исключая возникновение пустых полей в регистрах сведений.

Шаг 3. Актуализация расчетов и регламентные задания

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

  1. Перейдем в раздел Администрирование — Обслуживание — Регламентные операции.
  2. Найдем регламентное задание ВыполнениеОтложенныхРасчетовПоКлиентамПоставщикам (или Выполнение отложенных расчетов по клиентам/поставщикам).
  3. Запустим его выполнение вручную и дождемся завершения процесса.
  4. Также актуализацию расчетов можно выполнить через обработку Закрытие месяца (раздел Финансовый результат и контроллинг). Перепроведение и расчет взаиморасчетов на этом этапе часто устраняют все расхождения.

Шаг 4. Поиск и исправление "битых" ключей аналитики (для разработчиков)

Если проблема носит массовый характер и документы были перенесены из другой информационной базы с ошибками, ключи аналитики могли создаться некорректно. Проанализируем программный код формирования ключа аналитики. За получение ключа отвечает метод менеджера регистра сведений АналитикаУчетаПоПартнерам. Типовой вызов выглядит следующим образом:


// Пример получения ключа аналитики по партнерам
ПараметрыАналитики = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьНаборЗаписей();
КличАналитики = РегистрыСведений.АналитикаУчетаПоПартнерам.ПолучитьКлючАналитики(Организация, Партнер, Контрагент);

Если при вызове этого метода переменная Партнер передается пустой (например, равна Справочники.Партнеры.ПустаяСсылка()), система вернет существующий (или создаст новый) ключ без партнера. Для исправления этой ситуации в базе данных можно использовать групповую обработку или написать обработку пересчета ключей аналитики. Пример логики исправления представлен ниже:


Выборка = Документы.ВзаимозачетЗадолженности.Выбрать(НачалоПериода, КонецПериода);
Пока Выборка.Следующий() Цикл
    ДокументОбъект = Выборка.ПолучитьОбъект();
    // Проверяем заполнение партнеров в табличных частях
    Для Каждого СтрокаДебет Из ДокументОбъект.ДебиторскаяЗадолженность Цикл
        Если Не ЗначениеЗаполнено(СтрокаДебет.Партнер) Тогда
            // Пытаемся восстановить партнера из контрагента
            СтрокаДебет.Партнер = ПолучитьПартнераПоКонтрагенту(СтрокаДебет.Контрагент);
        КонецЕсли;
    КонецЦикла;
    
    Если ДокументОбъект.Модифицирован() Тогда
        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    КонецЕсли;
КонецЦикла;

После восстановления правильных значений партнеров в документах-источниках и перезаписи документов взаимозачета, система автоматически обновит движения в регистрах накопления, перепривязав их к корректным ключам аналитики с заполненным партнером. После этого документ ВзаимозачетЗадолженности корректно отобразится в отчете "Ведомость расчетов с поставщиками" даже при установленном отборе по партнеру.

← На главную