Маркировка остатков в распределенной рознице: Как промаркировать более 100 тыс. товаров в нескольких десятках магазинов без хаоса и ошибок

10.12.25

Учетные задачи - Логистика, склад и ТМЦ

Маркировка остатков более 100 тыс. товаров в сети розничных магазинах без ошибок. Я разработал и внедрил решение для маркировки остатков в рознице, которое исключает человеческий фактор и хаос. Клиент-Серверное решение работает по принципу сканируешь в магазине ШК - получаешь КМ на принтере этикеток, независимо от того, какое кассового ПО (Frontol, 1С и т.д.) у вас в магазине. Внутри - практический опыт, четкий регламент и готовый комплект кода (Расширение 1С + Клиентское приложение) для быстрого внедрения

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Архив 1. Готовый комплект для быстрого запуска (Расширение для 1С, с открытым кодом, remains.exe, setting.json)
.zip 10,02Mb
0 4 550 руб. Купить
Архив 2. Исходный код (onescript) клиентского приложения - remains.os
.zip 2,88Kb
0 4 550 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

В прошлой моей статье Маркировка остатков товаров на складе: Как мы сделали все быстро и без ошибок (мой практический опыт) я сфокусировался на работе со складом, а сегодня поговорим об "Автомате Калашникова для розницы" - максимально простом, надежном и безотказном инструменте для печати кодов маркировки на остатки товаров в розничной сети. Это история о том, как мы промаркировали более 100 тыс. остатков товаров за полгода в нескольких десятках магазинов, устранив ошибки и сохранив высокую скорость работы.

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

🔗 Для тех, кто все еще работает на старой конфигурации УТ 10.3:

Эта статья - логичное продолжение темы сквозной автоматизации маркировки. Если ваша компания, как и наша, всё ещё работает на УТ 10.3 и ищет способ подключиться к "Честному знаку" и работать с маркировкой без срочного и болезненного перехода на УТ 11.5 - вам будет полезна моя предыдущая статья, где я детально разобрал рабочую гибридную схему:

👉 Древняя УТ 10.3 (10.3.6.8) и маркировка товара: как обойтись без перехода на УТ 11.5 (мой практический опыт)

Там вы найдете готовые доработки для УТ10.3 и стабильный механизм обмена с УТ 11.5.

🛑 Классический, но провальный сценарий

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

Проблема Описание Риск
Печать списком Распечатка тысяч КМ в
офисе или на складе, передача их в
три десятка магазинов.

 
Сотруднику в магазине нужно вручную сопоставить номенклатуру, размер, артикул, а затем найти этот товар на полке.
100% гарантия ошибок и путаницы.
Ручной
ввод в 1С
Печать КМ поштучно
по запросу из 1С в
каждом магазине.

 
Требует от продавца знаний 1С, ввода данных, поиска, открытия формы и печати, отвлекая его от основной работы.
Пересорт
КМ
КМ для размера
S случайно наклеили на товар размера M.
Товар нельзя будет продать на кассе.

 

Главный вывод:
НЕОБХОДИМО исключить человека из процесса сопоставления ШК/Номенклатура и КМ. 

💡 Решение

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

Вся сложная логика была вынесена на сторону центральной базы 1С в офисе, а интерфейс для магазина сведен к минимуму - простому клиентскому консольному приложению, написанному на onescript. Хочу выразить отдельную благодарность создателям этого замечательного инструмента - без него решение было бы гораздо сложнее.

🏛 Архитектура решения

Решение построено на Клиент-Серверной архитектуре, которая обеспечивает надежность и масштабируемость:

  1. Клиент (Консольное приложение написанное на OneScript и скомпилированное в exe файл - remains.exe):

    • Устанавливается на рабочем месте в торговой точке.

    • Читает Штрихкод (ШК) со сканера.

    • Отправляет HTTP-запрос на сервер (в 1С).

    • Получает готовый PDF, закодированный в Base64, декодирует его и отправляет на локальный принтер этикеток.

    💡 Ключевое преимущество: Благодаря использованию отдельного консольного приложения, абсолютно всё равно, какое кассовое или учетное ПО установлено в магазине (1С, Frontol, самописное ПО и т.д.). Это обеспечивает полную независимость процесса маркировки остатков товаров от кассовой программы.

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

  2. Сервер (Расширение 1С):

    • Роль сервера выполняет Расширение 1С с опубликованным HTTP-сервисом.

    • Сервис принимает запрос с ШК, обрабатывает его, выбирает свободный код маркировки из регистра (Пула кодов маркировки).

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

Справочник "Шаблоны этикеток и ценников" в 1С:

 

 

 

Настройка шаблона этикетки:

 

 

После установки расширения, необходимо настроить шаблон и опубликовать http сервис. На этом настройка 1С закончена.

🛠 Техническая реализация: Детализация обмена

Клиентское консольное приложение использует файл setting.json для настройки соединения и параметров печати:

Файл настроек setting.json:

{
  "АдресСервера": "http://ваш_сервер_1с/hs/mark/GetByEan/",
  "Логин": "логин_для_доступа_к_сервису",
  "Пароль": "пароль",
  "ИмяПринтера": "", // имя принтера или пусто для принтера по умолчанию
  "ИННОрганизации": "7700000000",
  "ИмяШаблона": "rem" // 'rem' - наименование элемента справочника шаблона этикетки в 1С
}

Что делает сервис (Запрос GET):

Консольное приложение отправляет в 1С GET-запрос следующего вида, используя данные из настроек:

http://АДРЕС_СЕРВЕРА_1С/ИМЯ_БАЗЫДАННЫХ/hs/mark/GetByEan/ИНН_Организации/rem/ШТРИХКОД_ТОВАРА
  • ИНН_Организации — по ИНН 1с определяет организацию-владелец кодов маркировки (взято из setting.json

  • rem — имя шаблона этикетки в 1С (взято из setting.json)

  • ШТРИХКОД_ТОВАРА — отсканированный штрихкод товара
     

Логика Сервера 1С:

  1. После получения запроса, 1с ищет в регистре ПулКодовМаркировкиСУЗ свободный код (где полеДатаПечатиУниверсальная не заполнено) с установленным признаком «Маркировка остатков» для номенклатуры с таким ШК, по нужной организации

  2. Формирует этикетку через типовой механизм ШаблоныЭтикеток и конвертирует её в pdf-файл.

  3. Возвращает JSON-ответ, где в поле km_pdf закодирована готовая к печати этикетка (pdf-файл) в формате Base64.

Пример успешного ответа (1С Server -> Client):

{
  "status": "ok",
  "data": {
    "barcode": "464028000000",
    "article": "00000-000",
    "name": "Майка женская, черный, 104",
    "km": "(01)464028000000(21)5jTd?sWg5AUUV",
    "km_pdf": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovRmlsdGVyIC9GbGFOZURLY29kZQov..." 
  }
}


Пример ошибки в ответе (1С Server -> Client):

{
"status": "error",
"data": "Нет свободных кодов маркировки для ООО НАЗВАНИЕ_ВАШЕЙ_ОРГАНИЗАЦИИ!\nНеобходимо провести эмиссию для GTIN: 0464000000001"
}


🎯 Сценарии обработки ошибок

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

  1. Проблема с кодом маркировки: Если сканер сработал, но в Пуле кодов 1С не оказалось свободного КМ, программа выводила четкое сообщение: "Нет свободных кодов маркировки. Необходимо провести эмиссию для GTIN: XXXXX"

  2. Проблема с идентификацией: Если ШК не был найден в базе, программа так же сообщала об этом.

В обоих случаях действия продавца были одинаковы: обратиться к категорийному менеджеру. В его компетенцию входило проведение дополнительной эмиссии в Честном Знаке и проверка корректности данных штрихкодов и т.д. Таким образом, эти две основные проблемы решались силами магазина и категорийного менеджмента, минуя IT-поддержку.
 

🎯 Стратегия: Поэтапное внедрение волнами

Ключом к успеху стал отказ от "большого взрыва". Мы не ставили задачу промаркировать всё и сразу во всех магазинах. Вместо этого процесс был разбит на волны, что позволило:

  • Сфокусировать усилия: Категорийный менеджер и магазины работали с одной товарной категорией или группой поставщика или поставщиков за раз.

  • Минимизировать риски: Ошибки или вопросы по процессу решались на небольшом объеме товара, не затрагивая всю номенклатуру.

  • Не нарушать работу: Магазины продолжали торговать немаркированным товаром, параллельно подготавливая маркированные остатки к продаже

  • Контролировать нагрузку: IT-отдел и менеджеры не были завалены одновременными запросами из множества магазинов.

Как это работало на практике:

  1. Планирование волны: Определялась группа товаров (например, "Верхняя одежда бренда X" или "Весь сегмент молочной продукции").

  2. Централизованная подготовка: Категорийный менеджер проводил эмиссию кодов только для этой группы и вводил их в оборот.

  3. Запуск волны: После включения признака маркировки и обмена, магазины начинали процесс сканирования и наклейки, завершая его за один-два дня.

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

Итог: За полгода таким методом мы планомерно, без авралов и хаоса, промаркировали остатки по всем номенклатурным группам в рознице.
 

Оборудование

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

    • Минус: Термопечать менее устойчива к истиранию.

    • Плюс: Не потребовалось закупать новое оборудование.

  • Сканеры: Подойдет любой 2D-сканер, настроенный на работу в режиме эмуляции клавиатуры.

Безопасность: Обращение к HTTP-сервису 1С происходило внутри защищенного VPN-канала, организованному между магазином и офисом

💡 Внимание! Развертывание системы без VPN в открытой сети, потребует дополнительных мер безопасности.

🎁 Готовое решение и исходный код (Файлы для скачивания)

Решение адаптировано для УТ 11.5, КА 2.5, ERP 2.5, но принцип, описанный в статье, универсален и применим к любой другой типовой конфигурации, в который имеется поддержка Честного Знака 

📦 Архив 1. Готовый комплект для быстрого запуска

Этот комплект идеально подходит, если вам нужно быстро внедрить готовое рабочее решение, максимально соответствующее описанному в статье.

  • Расширение для 1С (.cfe): Включает HTTP-сервис с открытым кодом для обработки запросов и генерации этикеток.

  • Готовое клиентское приложение remains.exe

  • Пример конфигурационного файла setting.json
     

📦 Архив 2. Исходный код клиентского приложения - remains.os

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

  • Полный исходный код консольного приложения, написанный на OneScript.

  • Позволяет разобраться в логике, доработать под свои нужды или интегрировать в существующую систему.

 

📝 Заключение

Маркировка остатков в распределенной торговой сети - это вполне решаемая техническая задача. Главное - убрать человеческий фактор из ключевого звена и сделать процесс простым, как сканирование штрихкода. Это решение, построенное на независимой Клиент-Серверной архитектуре, позволило промаркировать большое количество товаров в магазинах, сохраняя 100% точность и не создавая задержек в торговле.

Расширение без доработок интегрируется в любую вашу конфигурацию:

  • УТ 11.5.XX.XX
  • КА 2.5.XX.XX
  • ERP 2.5.XX.XX

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.17.151
  • 1С:ERP Управление предприятием 2, релизы 2.5.17.151
  • 1С:Комплексная автоматизация 2, релизы 2.5.17.151

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Автоматизация раздельного учета в 1С:Бухгалтерии по ГОЗ в соответствии с 275-ФЗ. Готовое решение для учета госконтрактов, формирования отчетности и контроля исполнения. Поддержка военной приемки, НИОКР и требований Минпромторга. Профессиональный консалтинг и регулярные обновления продукта

30000 руб.

28.08.2020    506787    3198    142    

1267

Бюджетный учет Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Доработка конфигурации 1С:Бухгалтерия предприятия, редакция 3.0. реализована в виде расширения. Предназначена для ведения раздельного учета и автоматизации заполнения отчетности исполнения контрактов ГОЗ в конфигурациях 1С БП КОРП, ПРОФ, Базовая, БИТ.ФИНАНС.

61200 руб.

16.08.2019    99928    293    93    

169

Обмен с ГосИС Бухгалтер Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Ювелирная промышленность и торговля Россия Управленческий учет Платные (руб)

Интеграция для работы 1С с ГИИС ДМДК. Государственная интегрированная информационная система в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота.

72000 руб.

12.04.2022    23985    189    34    

50

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта алкогольной продукции. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    179667    1199    374    

416

Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

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

89900 руб.

09.06.2020    46427    40    60    

76

Оптовая торговля Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Решение создано для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накоплен опыт и знания по данным темам.

24000 руб.

18.03.2019    118174    53    115    

190
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aximo 2549 10.12.25 13:07 Сейчас в теме
Молодeц! Какой принтер импользуется?!
2. GarriSoft 193 10.12.25 13:08 Сейчас в теме
(1)
Во всех магазинах был Zebra LP 2824 Plus, на нем и печатали.
3. aximo 2549 10.12.25 13:11 Сейчас в теме
(2) у меня была реализация подобного рода, когда в боту в тг приходит заказ и оживает принтер чеков - но я использовал апи бота, а не писал свой сервис
4. GarriSoft 193 10.12.25 13:13 Сейчас в теме
(3)
Интересный подход, было бы очень интересно почитать об этом
5. aximo 2549 10.12.25 13:16 Сейчас в теме
(4)потом сделаю публикацию…
6. GarriSoft 193 10.12.25 13:18 Сейчас в теме
(5)
подписался на тебя, чтобы не пропустить
7. aximo 2549 10.12.25 13:24 Сейчас в теме
(6) я давненько наблюдаю за вашими публикациями - вы писали, что отказались от фронтола и перешли на рмк? Модуль обмена сами писали - именно загрузки номенклатуры в рмк и загрузки орпа на основе фронтоловских данных?
8. GarriSoft 193 10.12.25 13:56 Сейчас в теме
(7)
Для РМК получилось два расширения:
1. Первое расширение - "Обмен в формате FRONTOL" - это выгрузка/загрузка из каталога и email, все аналогично спецификации фронтола, все используемые нами ранее команды фронтола поддерживаются в расширении, дополнительно появилась одна специфичная команда, которой нет в спецификации фронтол.
Наша управленческая база УТ 10.3 до сих пор ни чего не знает, что в рознице сейчас не FRONTOL, а 1С.
Механизмы обмена там остались прежними.
Возможно когда-то появится статья и на эту тему.
2. Второе расширение - это специальные фишки для работы в РМК, туда входит работа с нашей бонусной программой, выключен, тот функционал, которые не используется продавцами, добавлен, то что нужно именно для наших продавцов и т.д, Иными словами РМК превращаем в нашу кассовую программу.
Оба расширения были написаны мной.

Так же нужно добавить, что использования обмена по формату FRONTOL - это был промежуточный шаг, который позволил быстро заменить FRONTOL на 1С в магазинах и продолжить обмениваться данными между УТ 10.3 и новым РМК.
В дальнейшем данный формат обмена будет упразднен. Сейчас для этого смотрю в сторону кролика.
В брокере будет не только обмен: загрузки накладных в магазин, отчет о розничных продажах, но многое другое, из того что используется для обмена между магазином и офисом разными способами, это легаси нужно разбирать и переделывать, т.к. без тех данных, которые получаем, уже ни как.
9. aximo 2549 10.12.25 14:40 Сейчас в теме
(8) рмк - это базовое решение, расширение не применить… у вас обработкой как-то обмен работает по рег заданию или руками?
10. GarriSoft 193 10.12.25 14:50 Сейчас в теме
Я говорю о блоке РМК в 1С:Рознице,
Что касается обмена, настроен по расписанию, все аналогично фронтолу
Для отправки сообщения требуется регистрация/авторизация