Как получить задолженность контрагента в разрезе номенклатуры в 1С?

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

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

Проанализируем методические причины такого поведения системы и рассмотрим практические варианты решения данной задачи.

Почему в типовых конфигурациях нет отчета по долгам в разрезе номенклатуры?

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

Если контрагент отгружен по одной накладной на 10 000 рублей (где 3 позиции номенклатуры), а затем перечислил частичную оплату в размере 4 000 рублей, система фиксирует только уменьшение общего долга по договору или накладной. Она не может однозначно определить, какую именно номенклатуру из трех контрагент уже оплатил, а за какую удерживает долг.

Вариант 1. Доработка внешнего отчета с виртуальным распределением долга

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

Рассмотрим основные методики распределения:

  1. Распределение по методу LIFO/FIFO (по последним продажам): отчет определяет сумму текущего долга по контрагенту или договору, после чего берет последние документы отгрузки в обратном хронологическом порядке и набирает позиции номенклатуры с их табличных частей до тех пор, пока сумма выгруженных товаров не сравняется с суммой задолженности.
  2. Пропорциональное распределение: текущий остаток долга по документу отгрузки пропорционально раскидывается по всем строкам накладной в зависимости от доли стоимости каждого товара в общей сумме документа.

Рассмотрим пример алгоритма выборки неоплаченных товаров по документу методом перебора строк:


// Пример логики выборки номенклатуры под остаток долга
ОстатокДолга = ДокументРеализации.СуммаДокумента - СуммаОплаты;

Если ОстатокДолга > 0 Тогда
    Для Каждого СтрокаТЧ Из ДокументРеализации.Товары Цикл
        СуммаСтроки = СтрокаТЧ.Сумма;
        
        Если ОстатокДолга >= СуммаСтроки Тогда
            ДолгПоТовару = СуммаСтроки;
            ОстатокДолга = ОстатокДолга - СуммаСтроки;
        Иначе
            ДолгПоТовару = ОстатокДолга;
            ОстатокДолга = 0;
        КонецЕсли;
        
        // Вывод строки Номенклатура - ДолгПоТовару в отчет
        
        Если ОстатокДолга = 0 Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
КонецЕсли;

Вариант 2. Разделение расчетов по договорам или заказам покупателей

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

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

Вариант 3. Использование схемы комиссионной торговли

Если юридически и фактически переданный товар остается в собственности продавца до момента полной оплаты покупателем, задействуем схему комиссионной торговли (передача товара на реализацию). В этом случае отгрузка оформляется документом Реализация товаров и услуг с видом операции На комиссию.

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

Резюме

Для быстрого получения справочных данных без изменения структуры базы данных оптимальным решением является создание внешнего отчета с виртуальным распределением суммы долга по позициям последних накладных. Для строгого учета следует использовать детализацию расчетов до документа Заказ покупателя или разделять взаиморасчеты по специализированным договорам.

← На главную