Локальный эмулятор ГИС МТ (True API) и СУЗ. 1С подключается штатными механизмами, без правок
конфигурации: в базе включаются тестовый контур ИС МП и прокси-сервер 127.0.0.1:3128. Эмулятор
принимает HTTPS-соединения к *.crpt.ru / *.crptech.ru своим сертификатом и отвечает как ЧЗ.
Остальные хосты пропускает насквозь.
Нужен только Python 3.10+ и openssl (идёт с Git for Windows), сторонних пакетов нет.
start.bat # или: python chz_emulator.py --port 3128 [--bind 0.0.0.0]
Веб-интерфейс: http://127.0.0.1:3128/. Вкладки:
- Журнал: каждый запрос 1С с телом запроса и ответа. Если метод не реализован, здесь будет 404 с его адресом.
- Коды / Документы / СУЗ: состояние эмулятора; статус кода можно сменить вручную.
- Автосценарий: полный цикл через прокси и TLS (авторизация → участник → СУЗ: соединение, заказ, коды, отчёт о нанесении → ввод в оборот → агрегация → отгрузка → приёмка → вывод → разрешительный режим).
- Действия: сгенерировать коды в нужном статусе (можно сразу в короб), создать входящую отгрузку от поставщика (для проверки приёмки в 1С), завести участника, очистить данные.
- Настройки: ИНН по умолчанию, строгая проверка статусов и владельца,
unknown_codes(404как ЧЗ /auto: неизвестный код считается в обороте), задержки обработки, «отклонять все документы», «отказывать в авторизации».
Данные лежат в %LOCALAPPDATA%\chz-emulator\data (SQLite, журнал logs\requests.log, сертификаты certs) и не зависят от папки exe: после замены exe или запуска из другой папки коды, журнал и корневой сертификат сохраняются. При первом запуске новой версии папка data рядом с exe копируется туда. Свой каталог — --data или переменная CHZ_EMULATOR_DATA.
- Доверить корневой сертификат эмулятора (создаётся при первом запуске) на машине, где работает 1С
(для клиент-серверной базы — на сервере 1С, под пользователем службы):
certutil -user -addstore Root "%LOCALAPPDATA%\chz-emulator\data\certs\ca.crt"(или через certmgr.msc в «Доверенные корневые»). - Прокси-сервер: Администрирование → Общие настройки → Настройка прокси-сервера →
«Использовать прокси-сервер»: адрес
127.0.0.1, порт3128. В файловой базе настройка хранится у пользователя. - Тестовый контур ИС МП: константа «Режим работы с тестовым контуром ИС МП» (в настройках
интеграции ИС МП). Тогда 1С ходит на
markirovka.sandbox.crptech.ru/sandbox.crptech.ru, и СУЗ работает без 1С:БИП. Перехватываются и боевые адреса*.crpt.ru. - СУЗ: адрес
suz.sandbox.crptech.ru, порт 443, защищённое соединение, любой omsId. - Подпись: эмулятор подпись не проверяет. ИНН участника берётся из поля
innзапроса или из подписанных данных. Без КриптоПро/КЭП 1С не подпишет документ в интерактивном обмене: для этого нужна реальная (можно тестовую) ЭП на рабочем месте.
ГИС МТ: auth/key, auth/simpleSignIn (+ токен СУЗ simpleSignIn/{omsConnection}), auth/permissive-access,
participants, cises/info (коды в любом виде: со скобками, с GS и криптохвостом), cises/search,
cises/aggregated/list, cises/gz|eaes/info, lk|sim/documents/create, documents/aggregation|dropped-out/create
(multipart с XML), doc/{id}/info, doc/list, product/info, product/gtin, warehouse/balance, mods/*,
doc/validator/*, cdn/info, cdn/health/check, codes/check.
Документы меняют статусы кодов: ввод в оборот (все LP_INTRODUCE_*, импорт, возврат), вывод
(LK_RECEIPT, отмена), списание КМ, отгрузка → приёмка (смена владельца, у получателя входящий
документ WAIT_ACCEPTANCE), отмена отгрузки, агрегация/расформирование/трансформация, АТК. При
строгом режиме проверяются статус и владелец, ошибки возвращаются как CHECKED_NOT_OK с текстом.
Прочие типы документов принимаются как CHECKED_OK.
СУЗ V3 и V2 (/api/v2/{pg}/...): соединение, токен, ping, заказ, статус буфера, список заказов, коды,
повторное получение блока, блоки, закрытие, отчёты нанесения/выбытия/агрегации, статус отчёта,
квитанции, провайдеры, МОД, продукция. Коды генерируются по шаблонам СУЗ из классификатора КА (SUZ_TEMPLATES): формат выбирается по templateId заказа, без него — шаблон группы по умолчанию (
обувь — 13 + 91(4) + 92(88), молоко — 6 + 93(4), косметика и бытовая химия — 6 + 91(4) + 92(44), шаблон 47 — 6 + 93(4), и т. д.). Настройка «укороченный КМ» включает укороченный шаблон для заказов без templateId.
Через типовые функции КА (stand/make_02_gismt.py, stand/make_03_suz.py, задания для ОА_Раннер),
с подписью-заглушкой: авторизация и сохранение токена, статус участника, СтатусыКодовМаркировки,
СоздатьДокументПоСообщению (ввод в оборот, вывод) и СтатусОбработкиДокументаПоИдентификатору,
ДанныеПродукцииПоШтрихкодуEAN, НайтиДокументыПоОтбору; СУЗ: идентификатор соединения, токен,
доступность, заказ, пул, коды (1С разбирает код обуви штатным разбором), отчёт о нанесении и его статус;
розничный токен и CDN-площадки. Подготовка стенда: stand/01_setup.json. После теста стенд откатан из бэкапа.
Пошаговая инструкция подключения — ИНСТРУКЦИЯ.md, для конфигураций не КА — ИНСТРУКЦИЯ_НЕ_КА.md. Самопроверка без 1С: python test_emulator.py.