Как в отчете «Ведомость по контрагентам» в 1С 7.7 вывести только просроченные долги без оплаченных документов прошлых лет?

Пользователь 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При анализе дебиторской задолженности в конфигурации «Торговля и склад 7.7» (ред. 9.2) пользователи часто сталкиваются с ситуацией: при установке флага «Только просроченные долги» отчет выводит контрагентов, у которых есть текущая просрочка, но в детальных строках отображает абсолютно все документы движения за прошлые периоды, включая давно закрытые и оплаченные накладные. Разберем причины такого поведения типового механизма и выясним, как получить чистый реестр неоплаченных документов без лишних движений.

Причины некорректного вывода данных в типовом отчете

Проанализируем, как устроен механизм формирования типовой ведомости взаиморасчетов:

  1. Логика фильтрации в запросе: флаг «Только просроченные долги» в типовом отчете Ведомость по контрагентам работает как фильтр верхнего уровня (по контрагенту или договору). Если у клиента есть хотя бы один просроченный долг, программа включает контрагента в выборку целиком. При включенной детализации по документам движения отчет выводит все регистраторы за выбранный период, не отсекая строки с нулевым конечным сальдо.
  2. Механизм партийного учета взаиморасчетов (FIFO): учет задолженности ведется в регистрах Покупатели и Поставщики в разрезе измерения КредитныйДокумент. Если в настройках отчета выбрана группировка по регистраторам (документам движения), а не по кредитным документам, отчет показывает обороты каждого документа, а не актуальный остаток задолженности.
  3. Ввод документов задним числом: при изменении или проведении оплат задним числом без последующего восстановления последовательности документов измерение КредитныйДокумент может содержать неактуальные хвосты взаиморасчетов, из-за чего закрытые накладные продолжают числиться с остатком.

Способ 1. Корректная настройка параметров типового отчета

Решить задачу можно штатными средствами без изменения программного кода отчета. Для этого настроим параметры группировок и период следующим образом:

  1. Откроем отчет Ведомость по контрагентам.
  2. В списке используемых группировок найдем строку «Док-ты движения» и отключим ее (снимем флаг).
  3. Включим группировку «Кредитный док-т». В отличие от документов движения, кредитный документ группирует задолженность по конкретным накладным-основаниям с учетом их закрытия оплатами.
  4. Установим период отчета: начальную дату и конечную дату задаем равными текущему рабочему дню (один день). Если выбрать широкий диапазон дат, типовая ведомость выведет все обороты за этот интервал. Формирование отчета на текущую дату показывает только актуальные конечные остатки.
  5. Установим флаг «Только просроченные долги».
  6. Нажмем кнопку «Сформировать».

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

Способ 2. Программная доработка внешнего отчета

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

  1. Отсечение нулевых остатков при выводе строк: в цикле обхода группировки кредитных документов добавим проверку конечного остатка. Если сумма долга по документу равна нулю, вывод секции пропускается.
  2. Скрытие колонок оборотов: при формировании отчета по просрочке подавляем вывод вертикальных секций начального остатка, прихода и расхода, оставляя только конечный долг и срок просрочки.

Посмотрим на пример доработки цикла обхода результатов запроса в модуле отчета:


Пока Запрос.Группировка("Контрагент") = 1 Цикл
    // Проверяем наличие долга по контрагенту в целом
    Если Запрос.КонОст("СуммаВал") = 0 Тогда
        Продолжить;
    КонецЕсли;
    
    Таб.ВывестиСекцию("Контрагент");
    
    Пока Запрос.Группировка("КредитныйДокумент") = 1 Цикл
        // Проверяем, есть ли остаток долга по конкретной накладной
        СуммаДолга = Запрос.КонОст("СуммаВал");
        Если СуммаДолга <= 0 Тогда
            // Пропускаем полностью закрытые и переплаченные документы
            Продолжить;
        КонецЕсли;
        
        // Выводим строку с кредитным документом и суммой задолженности
        Таб.ВывестиСекцию("Документ");
    КонецЦикла;
КонецЦикла;

Рекомендации по поддержанию корректности взаиморасчетов

Чтобы отчеты по взаиморасчетам и просроченной задолженности формировались без искажений, обратим внимание на регламентные процедуры:

  1. Восстановление последовательности документов: регулярно выполняем восстановление последовательности партионного учета и взаиморасчетов. Это гарантирует правильное автоматическое распределение платежей по накладным по методу FIFO.
  2. Контроль договоров: проверяем корректность реквизита СрокКредита в договорах контрагентов и флага ведения взаиморасчетов («По договору в целом» либо «По счетам/накладным»).
  3. Схлопывание пересортицы: если перепроведение документов задним числом невозможно из-за закрытого периода, выравниваем некорректные остатки по отдельным накладным с помощью документа Корректировка долга.
← На главную