Как реализовать продажу товара в долг в 1С:Розница?

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

Проблема учета продаж "в долг" или "под запись" является одной из самых актуальных для розничной торговли, особенно в небольших магазинах формата "у дома". Традиционно такие операции фиксируются в тетрадях, что приводит к злоупотреблениям со стороны персонала и невозможности оперативного контроля дебиторской задолженности. В типовой конфигурации 1С:Розница 2.x прямой функции "Продажа в долг" для физических лиц в режиме РМК не предусмотрено, однако мы можем реализовать этот функционал несколькими способами: от использования штатных механизмов до разработки собственного модуля.

Способ 1: Использование штатного механизма оплаты банковским кредитом

Проанализируем самый быстрый вариант, не требующий глубокого вмешательства в программный код. В системе существует вид оплаты Оплата банковским кредитом. Этот механизм можно адаптировать под внутренние долги магазина. Рассмотрим, как это сделать:

  1. Перейдем в раздел Администрирование — Продажи — Оплата.
  2. Создадим новый Вид оплаты с типом оплаты Банковский кредит. Назовем его "В долг (внутренний)".
  3. В настройках укажем банк-кредитор (можно создать фиктивного контрагента "Наш магазин").
  4. Теперь в РМК при нажатии кнопки "Сложная оплата" (или F8) появится возможность выбрать оплату в долг.

Преимущества этого метода: не нужно переписывать логику проведения чека и отчеты по выручке. Суммы долгов будут отражаться в стандартном отчете Оплаты чеков ККМ отдельно от наличных и эквайринга. Недостаток: отсутствует пофамильный учет должников и контроль лимитов задолженности непосредственно в момент продажи.

Способ 2: Программная доработка системы (Пошаговое руководство)

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

Шаг 1: Создание структуры данных

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

  1. Справочник ПокупателиДолжники: можно использовать типовой справочник Физические лица или Контрагенты, но для чистоты учета в рознице удобнее создать отдельный справочник или добавить дополнительные реквизиты к существующим. Нам понадобятся поля: ЛимитДолга, СрокВозврата (в днях), Телефон.
  2. Регистр накопления ДолгиПокупателей: вид регистра — Остатки.
    • Измерения: Покупатель (тип: СправочникСсылка.ПокупателиДолжники), Магазин.
    • Ресурсы: Сумма.

Шаг 2: Модернизация интерфейса РМК

Теперь выясним, как кассир будет взаимодействовать с системой. Нам необходимо изменить форму ФормаЧекРМК. Рассмотрим алгоритм действий:

  1. Добавим на форму РМК новую кнопку "Оплата в долг".
  2. При нажатии кнопки должна открываться форма выбора покупателя из нашего нового справочника.
  3. При выборе покупателя система должна проверять текущий остаток по регистру ДолгиПокупателей и сравнивать его с лимитом, установленным в карточке покупателя.

Пример кода для проверки лимита при выборе покупателя:


Функция ПроверитьЛимитДолга(ПокупательСсылка, СуммаТекущегоЧека) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	ЕСТЬNULL(ДолгиПокупателейОстатки.СуммаОстаток, 0) КАК ТекущийДолг
        |ИЗ
        |	РегистрНакопления.ДолгиПокупателей.Остатки(, Покупатель = &Покупатель) КАК ДолгиПокупателейОстатки";
    
    Запрос.УстановитьПараметр("Покупатель", ПокупательСсылка);
    Результат = Запрос.Выполнить().Выбрать();
    
    Если Результат.Следующий() Тогда
        Если (Результат.ТекущийДог + СуммаТекущегоЧека) > ПокупательСсылка.ЛимитДолга Тогда
            Возврат Ложь;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Истина;
КонецФункции

Шаг 3: Проведение документа и фискализация

Важный момент касается 54-ФЗ. Согласно законодательству, продажа в долг — это передача товара без полной оплаты. В чеке должен быть указан признак способа расчета ПОЛНЫЙ РАСЧЕТ (если оплата позже) или ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ. Проанализируем, как это реализовать:

При формировании данных для печати чека на ККТ, мы должны сопоставить нашу внутреннюю оплату "В долг" с типом оплаты, который передается в драйвер кассы. Обычно это тип оплаты №3 или №4 (в зависимости от настроек драйвера), который фискализируется как "Кредит" или "Последующая оплата".

Шаг 4: Погашение долга

Для приема денег от должника нам потребуется создать отдельный интерфейс или использовать документ Приходный кассовый ордер (ПКО). При проведении ПКО по виду операции "Прочее" (или специально созданному виду) мы должны делать движение "Расход" по регистру ДолгиПокупателей.

Посмотрим, как должна выглядеть процедура проведения погашения:


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

Учет в условиях распределенных информационных баз (РИБ)

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

  1. Ускорение обмена: Настройте автоматический обмен данными между магазинами и центральным узлом с минимальным интервалом (например, каждые 5-10 минут).
  2. Проверка через HTTP-сервис: Самый надежный, но технически сложный вариант. При выборе покупателя в РМК программа обращается к центральной базе через HTTPСервис, запрашивая актуальный остаток долга в реальном времени. Это исключает возможность обмана системы при наличии интернета.
  3. Включение объектов в план обмена: Не забудьте добавить новый справочник ПокупателиДолжники и регистр ДолгиПокупателей в состав вашего плана обмена (например, "ОбменМагазины").

Контроль и отчетность

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

Практический совет: настройте автоматическую рассылку этого отчета владельцу магазина каждое утро. Это дисциплинирует продавцов и позволяет вовремя выявлять недобросовестных покупателей. Также можно добавить функционал блокировки: если у покупателя есть просроченный долг хотя бы на 1 день, кнопка "Оплата в долг" для него становится неактивной до полного погашения.

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

← На главную