Как продавать электронные подарочные сертификаты в 1С:УНФ без предварительного оприходования на склад?

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

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

Архитектурные особенности учета подарочных сертификатов в 1С:УНФ

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

  1. Товарная природа сертификата: В типовой архитектуре 1С:УНФ позиция с типом Подарочный сертификат жестко относится к подсистеме складского учета запасов. Программа рассматривает карту сертификата как материальную ценность (бланк, пластик), хранящуюся на конкретном складе компании.
  2. Контроль списания запасов: В момент продажи документами Чек ККМ, Отчет о розничных продажах, Расходная накладная или Заказ-наряд конфигурация списывает сертификат со склада, формируя движения по регистру накопления Запасы и затраты. Если физический или виртуальный остаток отсутствует, контроль остатков блокирует проведение.
  3. Учет по сериям: Если сертификат идентифицируется индивидуальным номером (что стандартно для электронных сертификатов с уникальными буквенно-цифровыми кодами), программа требует привязки к справочнику Серии номенклатуры. Чтобы списать конкретную серию, она должна числиться в остатках именно на том складе, с которого оформляется продажа.

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

Решение 1. Автоматическое создание документов оприходования «на лету»

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

  1. Проверяет наличие элемента в справочнике Серии номенклатуры для позиции подарочного сертификата. Если серии с переданным номером нет, создает и записывает новый элемент.
  2. Программно формирует и проводит документ Оприходование запасов или Приходная накладная на специальный виртуальный склад (например, «Склад электронных сертификатов») с нулевой себестоимостью.
  3. После появления остатка на складе сразу же формирует документ продажи (Чек ККМ или Расходная накладная), который списывает только что оприходованную серию.

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


// Создание или поиск серии
НоваяСерия = Справочники.СерииНоменклатуры.СоздатьЭлемент();
НоваяСерия.Владелец = НоменклатураСертификат;
НоваяСерия.Наименование = НомерСертификатаС Сайта;
НоваяСерия.Записать();

// Создание документа оприходования
ДокОприходование = Документы.ОприходованиеЗапасов.СоздатьДокумент();
ДокОприходование.Дата = ТекущаяДатаСеанса();
ДокОприходование.СтруктурнаяЕдиница = СкладЭлектронныхСертификатов;

СтрокаЗапасов = ДокОприходование.Запасы.Добавить();
СтрокаЗапасов.Номенклатура = НоменклатураСертификат;
СтрокаЗапасов.Количество = 1;
СтрокаЗапасов.Серия = НоваяСерия.Ссылка;
СтрокаЗапасов.Цена = 0;
СтрокаЗапасов.Сумма = 0;

ДокОприходование.Записать(РежимЗаписиДокумента.Проведение);

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

Решение 2. Смена модели эмиссии: генерация пула номеров на стороне 1С

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

  1. В 1С заранее генерируется пул серийных номеров (например, на 1000 или 5000 штук вперед).
  2. Документом Оприходование запасов или Ввод начальных остатков этот пул ставится на учет на виртуальный склад.
  3. Сайт по API (через HTTP-сервисы или OData) запрашивает у 1С свободный серийный номер в момент оформления корзины.
  4. 1С отдает незанятый номер и помечает его как зарезервированный, а после подтверждения оплаты проводит стандартную продажу по уже имеющемуся остатку.

Этот подход исключает неожиданные ошибки в транзакциях при одновременной покупке и защищает систему от появления дублей серийных номеров.

Решение 3. Учет виртуальных сертификатов как прямых авансов

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

  1. Покупка электронного сертификата на сайте фиксируется не как реализация номенклатуры, а как получение предоплаты (документ Поступление на счет или Поступление в кассу).
  2. В качестве идентификатора сертификата используется номер договора, заказа покупателя или дополнительный реквизит документа оплаты.
  3. При последующем отоваривании покупателем на сайте или в магазине сумма закрывается не стандартной оплатой сертификатом, а штатным зачетом аванса по контрагенту.

Решение 4. Доработка через расширение конфигурации

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

  1. В расширении перехватывают обработку проведения расходных документов (например, в модуле менеджера или объекта документа ЧекККМ).
  2. Для строк, содержащих номенклатуру с типом Подарочный сертификат, программно отключают движения по регистру Запасы и затраты, предотвращая проверку остатка запаса.
  3. При этом движения по регистрам учета подарочных сертификатов и расчетам с покупателями сохраняются в полном объеме.

Выбор варианта зависит от масштаба проекта. Для быстрой реализации без доработки типового кода оптимальным является вариант автоматического создания оприходования «на лету» либо предварительная генерация пула свободных серий в базе 1С.

← На главную