feat(admin): эмулятор МНП — режим реальной записи в МНП на подставного клиента

Третий режим МНП (между «внутренняя имитация» и «боевая запись»): в bj цикл
идёт по обычному пользователю, а поручение в QUIK МНП уходит РЕАЛЬНО, но с
кодом другого, реально существующего в QUIK клиента (обобщение ручного теста
realtest «боевой ЛК → TEST3»).

- QuikMNPSettings: RealWrite + RealClientCode (валидация формата кода).
- Подмена кода — единая точка quikClientCodeFromPort (после ClientCodeMap);
  портфель не трогаем. quikActive: RealWrite только при devMode и непустом
  коде; Emulate (внутренняя имитация) в приоритете.
- Шаги боевого пути помечаются «[на подставного клиента <код>]» — видно в
  «Поручениях QUIK».
- Карточка МНП на /admin/emulators — три взаимоисключающих режима
  (выключено / имитация / реальная запись), поле кода, крупное предупреждение;
  отдельный красный баннер «Реальные поручения в МНП на клиента <код> (режим
  разработки)» — не смешиваем с баннером эмуляции НРД.
- disableEmulatorsIfDevOff сбрасывает и RealWrite (код остаётся, инертен),
  новость явно фиксирует прекращение реальных поручений.
This commit is contained in:
zuevav
2026-10-08 00:45:06 +03:00
parent 8e4cb5de19
commit 6c42e0378d
10 changed files with 293 additions and 81 deletions
+4 -1
View File
@@ -27,7 +27,10 @@
`dev_until` или снятии на сервере лицензий) флаги эмуляции автоматически
сбрасываются из настроек (проверка при старте и в цикле продления лицензии,
новость «Эмуляторы отключены») — при следующей выдаче dev-режима эмуляторы
молча не оживут.
молча не оживут. У эмулятора МНП есть и третий режим — реальная запись поручений
в боевую МНП на подставного клиента (`QuikMNP.RealWrite` + `RealClientCode`:
цикл идёт по обычному клиенту, код в поручениях подменяется на указанный;
отдельный баннер-предупреждение, сбрасывается вместе с остальными эмуляторами).
---