← Все статьи

Как мы реанимируем BitKassa на Delphi и внедряем маркировку через ЕСМ. Начало

Первая статья цикла: миграция с legacy Delphi на WPF, Deploy API на bit22.ru и фаза 1 маркированных товаров через ЕСМ и АТОЛ.

BitKassa — наше кассовое ПО для Windows и ККТ АТОЛ. Проект родился на Delphi, долго жил как «внутренняя касса для своих», а в 2025–2026 мы его снова вывели в публичный релиз: новый клиент, Deploy API на bit22.ru, лендинг и — главное для розницы сегодня — маркированные товары через ЕСМ. Это первая статья цикла: откуда мы стартовали, что значит «реанимация» и с чего начали внедрение работы с кодами маркировки.

Коротко: legacy-клиент на Delphi сменился WPF-приложением (.NET Framework 4.7.2) с той же базой bitkassa.db. Маркировка — фаза 1: флаг в справочнике, скан DataMatrix, онлайн-проверка через ЕСМ (ТС ПиОТ), теги в чеке по ФФД 1.2. Скачать актуальную версию — на лендинге BitKassa.

Зачем возвращаться к BitKassa

Небольшой магазин с одной кассой АТОЛ редко тянет тяжёлую 1С:Розницу «ради чека». Нужен простой сценарий: справочник, пробитие, Z-отчёт, локальная SQLite — без облачного каталога и лишних модулей. BitKassa закрывала эту нишу, но стек устарел: WinForms/Delphi, ручные сборки, нет публичного канала обновлений.

Реанимация — не «переписали всё с нуля и выбросили пользователей». Мы сохранили формат данных и сценарий миграции: скопировать bitkassa.db — и работать в новом клиенте. Параллельно подняли инфраструктуру вокруг продукта на bit22.ru.

Delphi → WPF: что изменилось в клиенте

С версии 2.0.0 основной клиент — WPF (MVVM), .NET Framework 4.7.2 (с v2.11.1; ранее — 4.8), интерфейс на базе Trezo UI. Приложение собирается как x86 — это требование COM-драйвера АТОЛ ДТО 10.

  • BitKassa.exe — кассовое приложение.
  • bitkassa.db — справочник, чеки, архив (тот же SQLite, что в Delphi-версии).
  • bitkassa.prefs — тема, окно, настройки ККТ.
  • Фискализация — только АТОЛ через ДТО 10, USB, ФФД 1.2.

WinForms-клиент в репозитории остался как legacy; для новых установок актуален только WPF. Подробности для IT — на странице описания продукта.

Что сделали на bit22.ru (не только exe)

«Реанимация» — это и веб-часть:

  • Лендинг /bitkassa и страница для администраторов /bitkassa/product.
  • Deploy API — публикация установщика BitKassa-x.y.z-Setup.exe, endpoint /api/v1/releases/latest, проверка обновлений из кассы при запуске.
  • Подписка по серийному номеру ККТ, trial 14 дней, личный кабинет на kassa.bit22.ru.
  • Кейс в портфолио TechSpot — миграция с Delphi и внедрение на объекте.

На момент публикации статьи в канале stable — v2.11.0: фоновая проверка обновлений, баннер в интерфейсе, доработки лицензирования поверх маркировки и весовых товаров.

Маркировка: почему без ЕСМ никак

Продажа маркированного товара — не «ещё один штрихкод». Касса должна проверить код маркировки (КМ) в ГИС МТ и передать сведения о выбытии. На Windows с АТОЛ для этого нужен Единый сервисный модуль (ЕСМ) АО ЕСП — лицензия ТС ПиОТ, регистрация кассы, связь с ГИС МТ; при офлайн-сценариях — ЛМ ЧЗ и контроллер на том же ПК.

BitKassa не заменяет ЕСМ и не продаёт лицензию ПиОТ. Мы интегрируемся с уже настроенным стеком на кассовом компьютере. Сначала оформите пакет в ЛК ЕСП с кодом партнёра 29683как ввести код. Установка модуля и регистрация кассы — в статье Установка и настройка ЕСМ для АТОЛ (Windows), для 1С:Розница — настройка ТС ПиОТ в конфигурации, обзор — Модуль ТС ПИоТ на кассе АТОЛ.

Фаза 1 в BitKassa: с чего начали в коде

В релизе 2.6.0 заложили первый контур маркировки — сознательно узкий, чтобы быстрее выйти на реальные кассы:

  1. Флаг в справочнике — позиция помечается как маркированная.
  2. Сканирование DataMatrix при добавлении в чек.
  3. Онлайн-проверка КМ через ЕСМ — без интернета продажа маркированной позиции не проходит (офлайн — только при настроенном ЛМ ЧЗ на стороне ЕСМ).
  4. Теги маркировки в чеке по ФФД 1.2 при фискализации на АТОЛ.

Что не входит в фазу 1 (и честно указано на лендинге): возвраты маркированных, частичное выбытие, сложные сценарии ЧЗ — это заявлено как фаза 2 по запросу. На Windows 7 маркировка недоступна: служба UEMA АТОЛ для ЕСМ не запускается — нужны Windows 10/11 и .NET 4.8.

Минимальный стек на кассе

  • Windows 10/11, .NET Framework 4.8 (ставить до установки ЛМ ЧЗ).
  • ККТ АТОЛ: актуальная прошивка и ИТС Connect, ФФД 1.2; ДТО 10 ≥ 10.10.8.23 с «Интеграционными компонентами для ЕСМ».
  • ЕСМ с активной лицензией ТС ПиОТ и регистрацией кассы в ГИС МТ.
  • Интернет для онлайн-проверки КМ при продаже.

Как выглядит сценарий для кассира

Администратор один раз настраивает ЕСМ и связку с драйвером АТОЛ (часто с помощью TechSpot, код партнёра ТС ПиОТ 29683). В BitKassa — подключает ККТ, при необходимости переносит bitkassa.db с Delphi-версии, отмечает маркированные позиции в справочнике.

На кассе: выбрал товар → отсканировал КМ → BitKassa запросил проверку через ЕСМ → при успехе позиция в чеке → пробитие на АТОЛ с нужными тегами. Смену для этого открывать вручную не нужно — автооткрытие при первом чеке, как и для обычных позиций.

Что дальше в этом цикле статей

В следующих выпусках планируем разобрать подробнее:

  • типовые ошибки при связке BitKassa ↔ ЕСМ ↔ АТОЛ и как их читать по логам;
  • чек-лист перед первой продажей маркированной позиции;
  • отличия фазы 1 и запросы на фазу 2 (возвраты, доработки под категории товаров).

Если нужна помощь с установкой ЕСМ или переносом с Delphi — TechSpot. Вопросы по лицензии и скачиванию — BitKassa и CodeLab.

Была ли статья полезной?

Нужна интеграция с 1С?

CodeLab проектирует REST API, B2B-порталы и обмен с внешними системами.

Обсудить задачу