feat: живой цикл M2M с НРД + мастер установки ключа на флешку

Инфраструктура M2M (живой обмен с НРД через ИШ):
- обработка M2MTransferResponse: ERROR(M2Mxx) → заявка Отклонена, сохранение
  ответа; INFO → ждём Decision; идемпотентность поллера
- fallback-корреляция ответов с нулевым GUID (M2M14/M2M17) по FIFO
- сырой XML ответа НРД в карточке заявки (для пересылки в ТП)
- тестовый пакет роботу приведён к эталону m2m_robot_samples (CostInfo=Yes,
  4 бумаги, IsolationStatus, DocumentSeries=сценарий); override паспорта
- редирект из теста сразу в карточку заявки

Мастер установки ключа Валидаты на флешку (admin/setup/keywizard):
- пошаговый: загрузка .7z+пароль → выбор флешки → запись → справочник
  сертификатов (CRL) → перезапуск+проверка ИШ → готово
- привилегированный воркер (bj-keymedia) в host-namespace через файл-обмен,
  bj-server остаётся в песочнице
- сохранение структуры профиля архива (spr<N>), перечисление съёмных USB

Прочее:
- пакет-доказательство для ТП НРД + форма регистрации участника M2M
- эталонные образцы робота (DOC/m2m_robot_samples)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-06-19 00:03:21 +03:00
parent 6e503433d4
commit 9737c787f9
110 changed files with 10771 additions and 1690 deletions
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="windows-1251"?>
<!--
АНКЕТА УЧАСТНИКА СЕРВИСА M2M (M2MTransferParticipantForm)
Назначение: регистрация нашего депозитарного кода в справочнике участников
M2M на стороне НРД. Без этой регистрации сервис МОСТ отклоняет запросы с
кодом M2M14 «Код ЭДО НРД отправителя отсутствует в справочнике участников M2M».
ВНИМАНИЕ:
1. Перед отправкой замените все значения ЗАПОЛНИТЬ_* на реальные реквизиты
организации. Это юридические данные — заполняет уполномоченное лицо.
2. Файл должен быть в кодировке windows-1251 (как объявлено в прологе).
Наш редактор хранит его в UTF-8 для удобства — перекодируйте перед
отправкой: iconv -f utf8 -t cp1251 form.xml > form.win1251.xml
3. Известное значение уже подставлено: депозитарный код MC0413600000
(выдан НРД для тестового контура TEST3, период 21.05.202601.09.2026).
4. Схема: DOC/M2MSchemas_260408/M2MTransferParticipantForm.xsd
-->
<pf:M2MTransferParticipantForm
xmlns:m2m="http://nsd.ru/schemas/m2m/types"
xmlns:pf="http://nsd.ru/schemas/m2m/participant/form"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://nsd.ru/schemas/m2m/participant/form M2MTransferParticipantForm.xsd">
<!-- Дата/время формирования анкеты по МСК. T — латиница, МСК — кириллица. -->
<pf:CreationTimestamp>2026-06-17T12:00:00(МСК)</pf:CreationTimestamp>
<pf:Participant>
<!-- ИНН организации (10 цифр для ЮЛ). -->
<m2m:INN>ЗАПОЛНИТЬ_ИНН</m2m:INN>
<m2m:Names>
<m2m:Rus>
<!-- Полное наименование по уставу. -->
<m2m:FullName>ЗАПОЛНИТЬ_ПОЛНОЕ_НАИМЕНОВАНИЕ</m2m:FullName>
<!-- Сокращённое наименование (необязательно). -->
<m2m:ShortName>ЗАПОЛНИТЬ_СОКРАЩЁННОЕ</m2m:ShortName>
<!-- Отображаемое короткое имя (показывается контрагенту). -->
<m2m:DisplayName>ЗАПОЛНИТЬ_ОТОБРАЖАЕМОЕ</m2m:DisplayName>
</m2m:Rus>
<!-- Английский блок необязателен; заполните, если есть. -->
<m2m:Eng>
<m2m:FullName>ЗАПОЛНИТЬ_FULL_NAME_EN</m2m:FullName>
<m2m:DisplayName>ЗАПОЛНИТЬ_DISPLAY_EN</m2m:DisplayName>
</m2m:Eng>
</m2m:Names>
<!-- Депозитарное место: наш код участника в НРД. УЖЕ ЗАПОЛНЕНО. -->
<m2m:DepositoryPlace>
<m2m:ParticipantCode>MC0413600000</m2m:ParticipantCode>
</m2m:DepositoryPlace>
<!-- Брокерское место — только если выступаем брокером. Иначе удалить блок. -->
<!--
<m2m:BrokerPlace>
<m2m:ParticipantCode>ЗАПОЛНИТЬ_БРОКЕРСКИЙ_КОД</m2m:ParticipantCode>
</m2m:BrokerPlace>
-->
</pf:Participant>
</pf:M2MTransferParticipantForm>