Как реализовать учет и списание проданных минут со сроком действия в 1С:Розница

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

В розничной торговле и сфере услуг часто возникает задача продажи «пакетов минут», абонементов или авансовых услуг, которые имеют ограниченный срок жизни. Например, клиент покупает 100 минут солярия или 10 посещений детской комнаты, которые должны «сгореть» через 30 дней. Реализация такого функционала в 1С:Розница требует понимания как архитектуры регистров, так и требований законодательства (54-ФЗ).

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

Вариант 1. Собственная подсистема на регистрах накопления

Если типовой функционал по каким-то причинам не подходит, проанализируем структуру собственного регистра накопления. Главная сложность здесь — корректное отсечение «протухших» минут.

Проектирование регистра

Создадим регистр накопления (вид — Остатки) со следующей структурой:

  1. Измерения:
    • Клиент (СправочникСсылка.Контрагенты или СправочникСсылка.ФизическиеЛица).
    • ДокументПродажи (ДокументСсылка.ЧекККМ или ДокументСсылка.РеализацияТоваровУслуг) — это позволит нам знать дату возникновения пакета.
    • ПакетУслуг (СправочникСсылка.Номенклатура) — вид купленной услуги.
  2. Ресурсы:
    • Количество (Число) — остаток минут.

Важный нюанс: Не рекомендуется добавлять ДатаОкончания в измерения регистра накопления. Это приведет к тому, что записи в таблице итогов не будут «схлопываться», так как для каждой продажи дата будет уникальной. Это раздует базу и замедлит получение остатков. Лучше хранить дату окончания в реквизитах документа-основания или в отдельном регистре сведений.

Вариант 2. Логика «сгорания» минут

Рассмотрим, как заставить минуты исчезать по истечении срока. Существует три основных подхода:

1. Динамический расчет в запросе

Мы не делаем специальных движений по списанию просроченных минут. Вместо этого при получении остатков мы всегда накладываем фильтр по дате продажи.


ВЫБРАТЬ
    Рег.Клиент,
    СУММА(Рег.КоличествоОстаток) КАК ОстатокМинут
ИЗ
    РегистрНакопления.МинутыКлиентов.Остатки(&Период, ) КАК Рег
ГДЕ
    ДОБАВИТЬКДАТЕ(Рег.ДокументПродажи.Дата, МЕСЯЦ, 1) >= &ТекущаяДата
СГРУППИРОВАТЬ ПО
    Рег.Клиент

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

2. Регламентное списание

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

3. Двойная запись (Приход и Расход в будущем)

Проанализируем необычный метод: в момент продажи система делает две записи. Первую — Приход текущей датой. Вторую — Расход датой «Текущая + 30 дней». В этом случае остатки на текущий момент всегда будут верными без дополнительных действий. Однако стоит учитывать, что это может усложнить анализ оборотов за период.

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

Методически «пакет минут» очень похож на подарочный сертификат. В 1С:Розница этот механизм уже содержит все необходимое:

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

Вариант 4. Бонусные программы (сгораемые баллы)

Если бизнес-логика позволяет приравнять 1 минуту к 1 бонусному баллу, то использование бонусного сервиса — самый простой путь без программирования. Рассмотрим преимущества:

  1. Настройка правил начисления бонусов при покупке определенной номенклатуры.
  2. Возможность автоматического сгорания бонусов через N дней (настраивается в правилах бонусной программы).
  3. Типовое регламентное задание по очистке истекших бонусов.
  4. Готовая отчетность по накоплению и списанию баллов.

Важный аспект: Налоговый учет и 54-ФЗ

Проанализируем ситуацию с юридической стороны. Продажа пакета минут — это получение аванса. Согласно 54-ФЗ, вы обязаны сформировать два чека:

  1. Первый чек: При получении денег. Признак способа расчета — «Аванс» или «Предоплата 100%».
  2. Второй чек: При фактическом оказании услуги (когда клиент пришел тратить минуты). Признак способа расчета — «Полный расчет», где сумма оплаты закрывается «Встречным предоставлением» (зачетом аванса).

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

Рекомендация по реализации

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

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

← На главную