Если оператор временно получил dev-режим, включил эмулятор и забыл — при
окончании dev-режима флаги LK.EmulateNSD и QuikMNP.Emulate сбрасываются
насовсем (а не просто перестают действовать): при следующей выдаче dev-режима
эмуляторы молча не оживут.
Проверка disableEmulatorsIfDevOff вызывается при старте сервера (после
продления лицензии) и на каждом проходе цикла продления — ловит истечение
dev и по времени, без продления. При сбросе — запись в ленту событий:
«Эмуляторы отключены: режим разработки закончился» с перечнем выключенного;
если был включён эмулятор МНП при WritesEnabled=false — предупреждение, что
цикл МНП остановлен и для боевой работы нужно включить запись.
В режиме разработки новая страница /admin/emulators с двумя клавишами:
- «Эмулятор НРД» (флаг LK.EmulateNSD): заявки ЛК и ручного ввода идут через
внутренний имитатор, в НРД ничего не отправляется. Настройки: задержка
решения (0–300 с), исход (подтвердить/отклонить/не отвечать), код отказа
M2M01–M2M09/18. Сендер перенастраивается в рантайме через потокобезопасный
mock.Sender.Reconfigure — без перезапуска.
- «Эмулятор МНП QUIK» (флаг QuikMNP.Emulate): шаги цикла без записи в боевую
БД МНП. Настройки: задержка шага (0–60 с), точечные отказы по шагам
(регистрация/подпись/отказ/зачисление) — эмулированный отказ ведёт себя как
боевой: шаг OK=false, состояние не продвигается, повтор на следующем проходе.
Настройки хранятся в setup.json (nsd_emu/mnp_emu), обратная совместимость —
дефолты. Баннер «Режим эмуляции» показывается и при ручном включении
эмуляторов (раньше зависел только от отсутствия ИШ). Пункт меню «Эмуляторы»
и две плитки на дашборде — только в dev. Пути занесены в devOnlyPath.
Попутно: исправлен race в TestLicenseActivateAndRenew (cleanup восстанавливал
DefaultLicensePublicKey без moduleEnforceMu — падал под -race и на чистом HEAD).
- QUIK: подключение к модулю (сервер, база, логин, проверено), как bj работает с QUIK (и отклонения из расширенных), торговый счёт, поручения из терминала, справочник получателей; формы и проверка МНП — под «Перенастроить».
- Криптография: «Подпись работает / ключ скоро закончится / ключ не подключён» с кнопкой установки; ключ организации (срок, заменить), СКЗИ, bj-crypto, сертификаты НРД в справочнике шлюза; остальное — под «Перенастроить» (без повтора плашки «ключ не подключён»).
- НРД: организация, реквизиты, кто отвечает на переводы, шлюз (версия, активный контур, канал, ключ) и папки по сети — из тех же запросов, что блок шлюза (события bj-igate-status / bj-igate-share, без лишних обращений к root-обработчику); формы — под «Перенастроить».
- «Перенастроить» раскрыто само, если что-то не настроено.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Сверху — «Обмен с DEPO работает / настроен не до конца / не подключён» и сведения: база DEPO, сервер и СУБД, логин bj, начало номера торговых счетов, признак ИИС (отказ M2M06), трансферные таблицы, кто запускает обработку и итог последней проверки (✓/✗ и когда).
- Все прежние формы — под «Перенастроить»; раскрыто само, если что-то не проверено.
- Общий стиль сведений «название — значение» (.kv) — в оформлении для настроек.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Место под полосу прокрутки зарезервировано всегда (scrollbar-gutter: stable): короткий раздел без прокрутки и длинный с ней больше не сдвигают страницу и меню вбок.
- Меню разделов — на месте при прокрутке и целиком на экране (своя прокрутка, если не помещается по высоте).
- Выбор другого раздела — страница с его начала, а не с той высоты, где листали прежний (после сохранения формы — как раньше, к месту формы).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Имена папок: тестовый контур — igate_exchange_test, боевой — igate_exchange (было igate_exchange и igate_exchange_prod); bj переименовывает открытые по прежней схеме сам — при сверке, в первый раз через 30 с после запуска.
- После сохранения — все открытые папки с контуром: \\IP\igate_exchange_test (тестовый TEST3), \\IP\igate_exchange (боевой).
- Закрыть папки — Samba выключается (сервер не отвечает по SMB, пока папок нет).
- Установщик (bj-installer, preseed Debian, слой пакетов образа Ubuntu): samba, winbind, libnss-winbind — заранее, чтобы в закрытом контуре папки открывались без интернета; необязательной частью (нет на диске и нет сети — установка bj продолжается); службы выключены до открытия папок.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- «Через домен»: сервер bj подключается к домену AD (winbind, один раз — учётной записью администратора домена, bj её не сохраняет); папки igate_exchange(_prod) открыты группам с ролью в bj и доменным сотрудникам bj — своим входом в Windows; краткое имя домена bj берёт из AD (crossRef nETBIOSName).
- Список доступа bj сверяет сам: после изменения групп, сотрудников и настроек входа (через несколько секунд) и раз в 15 минут.
- «Простой»: как было — один логин и пароль Samba; переход с домена выключает вход через домен (учётная запись компьютера в домене остаётся).
- bj-igate-admin share: режимы simple/domain, join (realm, workgroup, admin), проверка списка доступа на недопустимые символы, состояние — mode/joined/realm.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- bj-igate-admin share: при открытии — «map to guest = never»: с «bad user» Samba пускала текущую учётную запись Windows гостем, гостю в папку нельзя, и Windows сразу писала «нет доступа» без окна логина и пароля.
- Блок «Папки шлюза по сети» — не под раскрытием, со своим заголовком; поле пароля — скрытое (было открытым текстом).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- M2M: «bj сам — автоматически» — режим по умолчанию (где ни разу не выбирали; момент включения записывается, берутся переводы не старше суток до него); «Оператор» — запасной; явный выбор не меняется.
- Контуры НРД: TEST3 и боевой — карточки с состоянием (Активный / Готов / Нужен ключ / Канала нет); «Сделать активным» видна всегда, без ключа неактивна с пояснением; «Установить ключ», «Обновить канал».
- Папки шлюза по сети: после открытия — адреса для проводника (\\IP\igate_exchange и по имени сервера, боевой — igate_exchange_prod) с кнопкой «Скопировать»; bj-igate-admin share status отдаёт ip, host, shares.
- Zabbix перенесён из «Оповещений» в «Диагностику».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Сверху: «Установлены последние версии» (когда проверено) или «Доступно обновление X — Установить обновление» (всё сразу), или «Проверить не удалось»; кнопка «Проверить сейчас».
- При открытии раздела bj проверяет обновления сам, если последней проверке больше 10 минут (и не чаще раза в 10 минут из браузера — без зацикливания, если источник не настроен); check отвечает JSON для экрана.
- «Компоненты и версии» (обновить один компонент) и «Расширенные настройки» (обновление из файла, источник и канал, ключ, автопроверка) — под раскрытием.
- «Службы» с перезапуском перенесены в «Диагностику»; подсказка в письме о службе — туда же.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- QUIK: в карточке режима — одна галочка «Клиенты подают поручения из QUIK (терминал и мобильное приложение)», сохраняется сразу; предупреждение, если режим изменён в расширенных; «Расширенные настройки» (отдельно исходящие/входящие, инструменты МНП, коды клиентов) свёрнуты, без дубля счёта и галочки терминала; формы цикла не сбрасывают поля, которых не прислали.
- НРД: организация — код, ИНН, наименование в ряд; реквизиты в НРД — общий блок с мастером (nsdRequisites), «Определить из DEPO» видна (была белым по белому); блок шлюза из мастера (контуры, доступ к папкам по сети) — и в настройках; ручная настройка шлюза — под «Расширенными настройками».
- Автоматический режим M2M: вместо галочки с «Сохранить» — выбор плиткой «bj сам — автоматически / Оператор», сохраняется сразу (m2mAutoCard); тот же выбор — в мастере на шаге «Проверка»; подробности — под раскрытием.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
Решение депозитария 07.10.2026: по ИИС отвечаем M2M06 «Приостановление операций по счёту депо зачисления». Код — константа iisRejectCode: отказ по всему переводу на ИИС (iisDecisions, авто и ручной режим), проверки «Перевод не на ИИС» и «Счёт не ИИС» (было M2M08); тексты в настройках, карточке входящего и справочнике кодов.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Блок «Учётные записи» мастера вынесен в part_accounts.html (accountsAdd, accountsAD) и стоит и в мастере, и в Настройка → Пользователи: роли плитками, создать сотрудника (с модулями), сотрудники и группы из домена.
- Список сотрудников: строка — кружок, имя, логин, источник, последний вход, роль; «Изменить» раскрывает правку (имя, e-mail, роль, пароль, модули, «может входить»), «Удалить сотрудника» — тихой ссылкой с подтверждением.
- «Расширенные настройки» под раскрытием: роли и права, домен вручную (контроллер, Base DN, сертификат ЦС, служебная запись, группы → роли, роль по умолчанию, время сессии), проверка входа, перепроверка групп; подписи укорочены, поля в ряд.
- Ссылки-кнопки (dq-link, «убрать») одинаковые в настройках и мастере.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Раздел настроек оформлен как шаг мастера: одна карточка (радиус 16), заголовок 21px и вводный текст, вложенные блоки — без своих рамок, через тонкий разделитель; выделенные плашки (ключ не подключён, вход открыт) — класс callout.
- Поля в сетке (почта, Zabbix и др.): подпись над полем, поле во всю колонку — в настройках «Порт [587]» вставал в строку; правило общее для настроек и мастера.
- Текст абзацев 14.5px (пояснения 13.5px) — как в мастере; крупные цветные строки состояния больше не кричат.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Безопасность: в мастере подпись к паролю выводила сам сохранённый пароль служебной записи домена — теперь только «задан/введён» (тест: пароль не попадает в HTML). Список сессий в настройках больше не содержит токены (по ним можно было войти под чужим именем) — короткий ID.
- Домен: после подключения и «Доверять» блок остаётся открытым, страница возвращается к нему; карточка «Домен подключён» и «Найден домен» — крупно; поиск сотрудников и групп; группе — доступ с ролью (ADGroups), список групп с «убрать».
- «Обмен с DEPO»: справочник FTV_M2M_HANDBOOK считается и когда переводов ещё нет (на свежей установке писало «не создана»).
- Модуль 1С: onec-back «1С: база бэк-офиса (тест)» вместо мидл-офиса (в лицензиях не выдавался).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Шапка мастера: правый блок (шлюз НРД, пользователь, тема) снова справа — после правила [hidden] скрытое меню перестало его распирать.
- Домен в шаге «Учётные записи»: bj сам находит домен и контроллеры (логин с @домен, домены поиска DNS, rootDSE DNS-серверов, SRV _ldap._tcp.dc._msdcs); адрес и домен — в расширенных настройках, открываются сами, если не нашлось. Контроллеры по очереди, LDAPS → LDAP+StartTLS.
- Неудачная попытка ничего не теряет: введённое (и пароль) — черновиком, форма заполнена; причины словами (неизвестный ЦС, имя в сертификате, IP вместо имени, порт закрыт, нет в DNS).
- Сертификат неизвестного центра: карточка «кем выдан, отпечаток (SHA-1 как в Windows и SHA-256)» и «Доверять и подключить»; после входа bj берёт из домена сертификат центра (AIA / Certification Authorities), подписавший сертификат контроллера, — подходят все контроллеры. То же в Настройка → Пользователи при «Проверить».
- Лицензия: модуль onec-middle «1С: база мидл-офиса (тест)»; раздел настроек — адрес публикации, пользователь, пароль, проверка через OData $metadata; в мастере — в «Модулях».
- ЛК (callback, API, готовность) — только при модуле «ЕСИА Финанс»; карточка режима QUIK и стили настроек как в мастере.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- справка «Внешние системы» — внутренняя (internaldocs); «API ЛК» и проверка callback ЛК — только при модуле ЛК
- отслеживание документации НРД (doc-watcher) — только в режиме разработки
- после подготовки DEPO справочник участников пишется входом по действию человека — не ждёт паузы после
прежнего неудачного входа («FTV_M2M_HANDBOOK не создана»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- журнал ИШ: номер процесса выравнивается пробелами — опросы НРД не распознавались (серый индикатор)
- «Проверить СКЗИ и ключ»: Валидата, датчик случайных чисел, подпись профилем ИШ (а не старый bj-crypto);
индикатор «Криптографии» — по готовности ключа; карточка автозагрузки УЦ — только для разработки
- шаг «Шлюз НРД»: папки обмена по сети (Samba): логин/пароль, ручная настройка не трогается
- «Учётные записи»: необязательно — подключить домен, проверить связь, найти сотрудника и добавить с ролью;
роль из bj действует, пока группы домена с ролями не сопоставлены
- настройка QUIK МНП: «Только чтение / Чтение и запись», тонкая настройка цикла свёрнута
- индикатор «Обновления» — только когда есть что обновить; «Мастер настройки» в меню и в настройках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- ИШ без флешки ждёт её в окне Валидаты («Вставьте ключевой носитель»): статус «ждёт флешку», без кнопки
переустановки; сторож не тратит перезапуски, а когда флешка появилась — перезапускает ИШ сам; письмо
- шаг ключа: итог — карточка «Ключ подключён», «Заменить ключ» вместо «Установить ещё один», этапы свёрнуты
- копии: «Копии на хранилище» ищет там же, куда ложится копия (подпапка по умолчанию bj-backup, не из старых
настроек); поля показываются разобранными
- [hidden] прячет всегда (пустая полоска под версией ИШ); «Шлюз НРД на другом сервере?» — что это за адрес
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- шаг «База bj»: перенос на сервер PostgreSQL организации (проверка подключения, версии, прав, пустой базы;
pg_dump → psql; сверка числа строк по таблицам; переключение и перезапуск); прежняя база — запасная копия;
резервные копии: дамп внешней базы по её подключению, восстановление её не трогает
- все формы: пустые видимые обязательные поля называются по имени и подсвечиваются; DEPO — и на сервере
- «Обновить/Создать канал»: в фоне bj, ход по этапам с таймером (и после перезагрузки страницы), переходы
заблокированы до конца, в конце проверка, что шлюз загрузил канал; состояние ИШ во время записи — без
очереди к root-обработчику (страница больше не висит на «Проверяю…»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
Старый bj-component-install отклонял обновление целиком из-за незнакомого igate-dist — вместе со своей
новой версией (рабочий сервер: установщик .06.2). installerSince: с какой версии установщик знает
компонент; отложенное ставится тем же нажатием после нового установщика, а если перезапускался
bj-server — само после старта (Update.Pending). Тест TestLKAgentEndToEnd: ждёт счётчик агента (гонка).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
Настройка в шаге «Время и сеть» и Настройка → Сервер: дни недели, часы (по поясу сервера), включение
правила. Запрос, полученный вне рабочего времени (и после включения правила), bj сразу отклоняет по всем
бумагам кодом M2M06 «Приостановление операций по счёту депо зачисления» — кода «вне рабочего времени» в
перечне НРД (инструкция по обмену M2M, раздел 7.4) нет, решение депозитария. Строка «Рабочее время» в
проверке готовности; сквозной тест отказа через ИШ. Файл входящих — переменная (тесты не трогают сервер).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi