Это хранилище (Vault) содержит структурированное, разбитое по модулям описание протокола обмена данными между контрольно-кассовыми машинами (ККМ) и серверами оператора фискальных данных (ОФД).
Документация оптимизирована для отображения в Obsidian и в веб-интерфейсе Git (GitHub/GitLab), обеспечивая мгновенную перекрестную навигацию между protobuf-структурами, перечислениями (Enums) и бизнес-процедурами.
- Установите и запустите приложение Obsidian.
- Нажмите Open folder as vault (Открыть папку как хранилище).
- Выберите папку
protocol/в данном репозитории. - Нажмите
Ctrl+O(илиCmd+Oна macOS) и введитеОглавление, чтобы открыть интерактивное оглавление. - Вы можете включить режим Graph View (Интерактивный граф связей), чтобы увидеть, какие типы данных в каких сообщениях используются.
Просто откройте Оглавление и переходите по относительным ссылкам. Все ссылки работают нативно во всех современных Git-хостингах.
Вся база знаний и официальные protobuf-схемы организованы следующим образом:
cpcr/
├── README.md # Настоящее руководство разработчика (в корне)
├── .gitignore # Правила игнорирования Git
├── protokol_peredachi_dannyh_s_kkm_na_server_ofd.docx # Исходная Word-спецификация
├── trebovaniya_kkm.xls # Исходная таблица государственных требований к ККМ
│
├── proto/ # Папка с официальными .proto файлами KGD
│ ├── common.proto
│ ├── ticket.proto
│ └── ...
│
└── protocol/ # Папка с интерактивной базой знаний (Obsidian Vault)
├── Оглавление.md # Интерактивное оглавление и карта спецификации
├── Общая информация.md # Вводная часть, Protobuf, Little-endian
├── Приложение.md # История версий протокола (Changelog)
│
├── requirements/ # Папка с государственными требованиями (Markdown)
│ └── kkm/ # Технические требования к ККМ РК
│ ├── Раздел 1. Требования к ККМ с функцией фиксации и передачи данных.md
│ ├── Раздел 2. Требования к ККМ с функцией передачи данных.md
│ └── Раздел 3. Технические требования к АПК ККМ.md
│
├── Структура сообщений/ # Транспортный уровень и общий фрейм пакетов
│ ├── Сообщения.md # HEADER + PAYLOAD
│ ├── Заголовки сообщений.md # APPCODE, VERSION, SIZE...
│ ├── Коды команд.md # CommandTypeEnum
│ └── ...
│
├── Команды/ # Описание команд бизнес-логики (COMMAND_*)
│ ├── Инициализация/ # COMMAND_INFO
│ ├── Закрытие смены/ # COMMAND_CLOSE_SHIFT (CloseShiftRequest)
│ ├── Обработка чека/ # COMMAND_TICKET (Запрос/Ответ чека)
│ ├── Внесение и снятие денег/ # COMMAND_MONEY_PLACEMENT
│ ├── Отправка и получение отчетов/ # COMMAND_REPORT (ZXReport)
│ ├── Получение номенклатуры/ # COMMAND_NOMENCLATURE
│ └── ...
│
├── Общие типы данных/ # Базовые общие типы и перечисления
│ ├── Дата.md # Date
│ ├── Деньги.md # Money
│ ├── Виды налогообложений.md # TaxationTypeEnum
│ └── ...
│
└── Процедуры установления связи/ # Бизнес-процессы и режимы работы устройства
├── Работа в нормальном режиме.md # ONLINE
├── Работа в автономном режиме.md # OFFLINE (Локальная очередь чеков)
└── ...
В соответствии с законодательством Республики Казахстан, кассовые аппараты делятся на три категории, каждая из которых должна отвечать строгому набору государственных технических требований:
- 📄 Раздел 1. ККМ с функцией фиксации и передачи данных — требования к традиционным аппаратным онлайн-ККМ, оснащенным собственной фискальной памятью/накопителем и поддерживающим работу в автономном режиме (до 72 часов).
- 📄 Раздел 2. ККМ с функцией передачи данных — требования к кассовым аппаратам без автономной фискальной памяти, которые должны блокировать кассовые операции при временном отсутствии связи с ОФД.
- 📄 Раздел 3. Технические требования к АПК ККМ — требования к аппаратно-программным комплексам (веб-кассы, мобильные приложения, серверные фискальные решения).
- 💡 Подсказки и предупреждения: Важные логические правила и ограничения работы касс выделены Obsidian-стилем (например,
[!IMPORTANT],[!WARNING],[!CAUTION]). - 🔗 Интерактивные ссылки: Любой protobuf-тип внутри таблиц автоматически ссылается на соответствующий markdown-файл с его структурой.
- ⚡ Никаких битых ссылок: Полная целостность ссылочных связей подтверждена автоматической валидацией (Broken links: 0).