При интеграции розничного магазина с интернет-площадкой владельцы бизнеса часто сталкиваются с критической проблемой: остатки на сайте обновляются только после закрытия кассовой смены в 1С:Розница. Это происходит потому, что стандартный механизм обмена данными с 1С:Управление торговлей (УТ) или напрямую с сайтом ориентирован на документ ОтчетОРозничныхПродажах, который формируется раз в день. В этой статье мы подробно разберем, как добиться оперативного списания товаров и актуализации данных на сайте сразу после пробития каждого чека.
Рассмотрим для начала, как ЧекККМ работает с остатками в типовой конфигурации. Вопреки распространенному мнению, ЧекККМ делает движения по регистру накопления ТоварыНаСкладах сразу в момент проведения, если смена еще не закрыта. Однако здесь есть важный технический нюанс, который мы должны проанализировать.
Когда кассир пробивает чек, товар фактически резервируется или списывается в оперативном учете. Но при выполнении операции Закрытие кассовой смены система удаляет движения всех чеков за день и формирует один сводный документ ОтчетОРозничныхПродажах. Если ваша система обмена настроена только на передачу этого отчета, то в течение дня УТ 11 или сайт не увидят изменений остатка, так как документ ЧекККМ обычно исключен из стандартного обмена EnterpriseData.
Важный момент: Если вы видите, что ЧекККМ не делает движений даже до закрытия смены, проверьте, не включена ли на складе Ордерная схема. При использовании ордерного склада чек лишь фиксирует факт продажи, а фактическое списание остатков происходит только после оформления документа РасходныйОрдерНаТовары.
Проанализируем ситуацию, когда обмен идет по цепочке Розница -> УТ -> Сайт. Это "двойное плечо" значительно увеличивает задержку данных. Одним из наиболее эффективных решений является исключение промежуточного звена в виде УТ для части оперативных данных.
Многие пользователи ошибочно полагают, что в Рознице 2.2 нет модуля обмена с сайтом. На самом деле, для 1С:Розница существует отдельный официальный модуль от компании 1С-Битрикс. Рассмотрим шаги по его внедрению:
Отчета о розничных продажах.Такой подход позволяет сайту получать информацию о доступном остатке (Остаток на складе минус Резервы по заказам) практически мгновенно.
Выясним причину, по которой иногда проще отказаться от 1С:Розница. Если магазин и интернет-площадка требуют максимально жесткой синхронизации, рассмотрим вариант настройки Рабочего места кассира (РМК) непосредственно в УТ 11. В этом случае:
Однако этот метод требует постоянного и стабильного интернет-канала между магазином и сервером с УТ, так как работа будет вестись в единой базе.
Если архитектура Розница — УТ — Сайт принципиальна, разберем, как изменить правила обмена. Стандартный обмен через формат EnterpriseData можно модифицировать, чтобы включить в него передачу документов ЧекККМ.
Посмотрим на пример логики, которую нужно реализовать в правилах выгрузки:
// Пример логики в обработчике ПередВыгрузкойДанных
Если ТипЗнч(ДанныеОбъекта) = Тип("ДокументОбъект.ЧекККМ") Тогда
// Проверяем, что чек пробит и смена еще не закрыта
Если ДанныеОбъекта.СтатусЧекаККМ = Перечисления.СтатусыЧековККМ.Пробитый Тогда
// Разрешаем выгрузку чека как документа реализации или через специальное сообщение обмена
ВыполнитьСтандартнуюРегистрацию(ДанныеОбъекта);
КонецЕсли;
КонецЕсли;
Внимание: При реализации этого метода необходимо крайне осторожно подойти к моменту закрытия смены в УТ. Чтобы остатки не списались дважды (один раз чеками, второй раз отчетом), в УТ должен быть настроен механизм автоматического сторнирования или удаления загруженных ранее чеков при получении Отчета о розничных продажах за этот же период.
Проанализируем еще одну стратегию. В Рознице 2.2 существует функционал ЗаказПокупателя. Если ваша цель — актуальность остатков на сайте для предотвращения "перепродаж" (оверселлинга), мы можем использовать механизм резервирования:
ЗаказПокупателя.ТоварыЗарезервированные).Доступно = СвободныйОстаток - Резерв.Даже если ЧекККМ еще не пробит, товар уже будет числиться недоступным для других покупателей на сайте. В Рознице для этого необходимо включить функциональную опцию Использовать заказы покупателей в настройках CRM и продаж.
Рассмотрим самый простой, "административный" способ решения задачи без программирования. Если нагрузка на кассу позволяет, можно настроить бизнес-процесс так, чтобы закрытие смены и формирование Отчета о розничных продажах происходило несколько раз в день (например, в обед и вечером).
В 1С:Розница это можно автоматизировать через РегламентныеЗадания. Создадим задание, которое будет проверять наличие пробитых чеков и инициировать закрытие смены. Однако помните, что это потребует частой печати Z-отчетов на фискальном регистраторе и может быть неудобно для кассиров при сверке наличности.
Мы проанализировали несколько путей решения проблемы оперативных остатков. Выбор зависит от ваших ресурсов и сложности ИТ-инфраструктуры:
ТоварыНаСкладах данные из еще не закрытых чеков.Выясним причину выбора конкретного метода вместе с вашим системным администратором, учитывая стабильность связи и требования к актуальности данных (нужна ли задержка в 1 минуту или достаточно 15 минут).