{{define "content"}} {{if .Flash}}
{{.Flash}}
{{end}}
{{/* ===== Боковая навигация разделов с индикаторами ===== */}}
{{/* ============ ОБЗОР ============ */}}

Обзор

Готовность системы: {{.ReadyCount}} из {{.TotalCount}}

{{range .Readiness}}
{{.Name}}
{{if .Configured}}настроено{{else}}не настроено{{end}}
{{end}}
{{/* ============ БАЗА ДАННЫХ ============ */}}

База данных

PostgreSQL

Журнал сделок m2m-core и принимающая БД. Сейчас: {{if .Settings.Postgres.DSN}}подключено{{else}}in-memory (данные не сохраняются){{end}}.

{{if not .Settings.Postgres.DSN}}

Подключить автоматически

Поднимем локальный PostgreSQL в контейнере, применим миграции и запишем DSN. Для дев-стенда. Для прода — укажите свой DSN ниже.

{{end}}
{{if .Settings.Postgres.DSN}}Изменить подключение{{else}}…или ввести DSN вручную{{end}}

При сохранении выполняется Ping.

{{if .AdvancedUnlocked}} {{/* ============ ОБМЕН FANCY (MSSQL) — перспективный модуль ============ */}}

Обмен Fancy (MSSQL / PostgreSQL)

Подключение к серверу БД клиента

Сервер учётной базы Fancy DEPO: картотека лиц, счета и договоры, остатки, опции (признак квалифицированного инвестора), трансферные таблицы обмена. Поддерживаются Microsoft SQL Server и PostgreSQL. База указывается ниже, в карточке «Трансферные таблицы DEPO».

Трансферные таблицы DEPO

Через эти таблицы bj обменивается с учётной системой DEPO: поручения FTV_M2M и их строки FTV_M2M_LINES, события FTV_M2M_EVENTS, справочник участников НРД FTV_M2M_HANDBOOK. Таблицы создаются в базе DEPO на сервере из подключения выше ({{if .DepoTables.Postgres}}PostgreSQL{{else}}Microsoft SQL Server{{end}}). Создание можно повторять: добавляются только недостающие таблицы, колонки и индексы, данные не меняются.

{{if eq .Settings.Fancy.DepoTablesMode "auto"}}
Логин с правами на базу {{.DepoTables.DB}}
{{if .DepoTables.Postgres}}Владелец базы или суперпользователь.{{else}}Роль db_owner в базе (или db_ddladmin + db_securityadmin).{{end}} Если оставить поля пустыми, bj попробует своим логином {{.DepoTables.User}}.
{{else if eq .Settings.Fancy.DepoTablesMode "script"}}
Скрипт для администратора СУБД — скачать {{.DepoTables.ScriptFile}}
{{.DepoTables.Script}}
{{end}}
логином bj: таблицы на месте, колонки совпадают, есть права на чтение и запись
{{if .Settings.Fancy.DepoTablesCheck}}

{{if .Settings.Fancy.DepoTablesCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoTablesCheck}} ({{.Settings.Fancy.DepoTablesCheckAt.Format "02.01.2006 15:04"}})

{{end}}

Где запускается обработка трансферных таблиц DEPO

Поручения и события, которые bj пишет в FTV_M2M*, обрабатывает процедура {{.DepoJob.Proc}} в базе DEPO. Выберите, кто её запускает, выполните инструкцию и нажмите «Проверить готовность» — без зелёной отметки обмен с DEPO работать не будет.

Процедура обработки выполняется от имени пользователя базы DEPO (у разработчика Fancy это SYSDBA). У клиента такого пользователя может не быть или он называется иначе: «Проверить готовность» проверит, что он есть в базе.

{{if eq .Settings.Fancy.DepoJobMode "bj"}}
Инструкция для администратора SQL клиента — выполнить один раз:
{{.DepoJob.GrantScript}}
{{else if eq .Settings.Fancy.DepoJobMode "sql-auto"}}
Инструкция для администратора SQL клиента — выдать логину bj права оператора SQL Agent (SQL Agent должен быть запущен):
{{.DepoJob.AgentRights}}
{{else if eq .Settings.Fancy.DepoJobMode "sql-manual"}}
Инструкция для администратора SQL клиента — создать джобу (SQL Agent должен быть запущен, служебная учётная запись Agent должна иметь право выполнять процедуру):
{{.DepoJob.AgentScript}}
{{end}} {{if .Settings.Fancy.DepoJobMode}}
для вариантов с джобой bj пишет служебное событие BJ_PING и ждёт до 40 с, пока обработчик его отметит
{{if .Settings.Fancy.DepoJobCheck}}

{{if .Settings.Fancy.DepoJobCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoJobCheck}} ({{.Settings.Fancy.DepoJobCheckAt.Format "02.01.2006 15:04"}})

{{end}} {{if and (eq .Settings.Fancy.DepoJobMode "bj") .Settings.Fancy.DepoJobLast}}

Последний вызов процедуры — {{.Settings.Fancy.DepoJobLast}}

{{end}} {{end}}
{{/* ============ QUIK МНП ============ */}}

QUIK — Модуль неторговых поручений

Подключение к БД МНП QUIK (MSSQL)

При выводе бумаг клиентом bj блокирует их количество в QUIK через API Модуля неторговых поручений (хранимые процедуры). БД боевая — тест только на чтение (версия + наличие M2M-объектов), без записи. Подключение под логином с ролью InstrEu.
Инструкция для администратора QUIK — что настроить в QuikAdmin для M2M · документы ARQA.

Статус: {{if .Settings.Quik.Verified}}✓ подключение проверено{{else}}не проверено{{end}}

Автоматический цикл M2M в МНП

Что делает bj в Модуле неторговых поручений по ходу перевода: исходящий — при отправке в НРД регистрирует «Вывод ЦБ (M2M)» (QUIK блокирует бумаги), по подтверждению подписывает (списание), по отказу снимает с причиной; входящий — после приёма нашего поручения НРД регистрирует «Ввод ЦБ (M2M)» (зачисление сразу). Проверено на боевом МНП 09.09.2026. Каждый шаг виден в карточке перевода и на странице QUIK МНП.

{{if .Settings.Quik.LastReport}}

Полный ответ сервера (последний тест)

Можно выделить и скопировать целиком — для отправки коллегам/аутсорсеру QUIK. {{if not .Settings.Quik.LastAt.IsZero}}Тест от {{.Settings.Quik.LastAt.Format "02.01.2006 15:04:05"}} UTC.{{end}}

{{.Settings.Quik.LastReport}}
{{end}}
{{end}}{{/* /AdvancedUnlocked — конец перспективных модулей Fancy/QUIK */}} {{/* ============ ПОЛЬЗОВАТЕЛИ И ВХОД ============ */}}
{{$U := .Users}}{{$A := .Settings.Auth}}

Пользователи и вход

Кто может входить в bj и что ему разрешено. Вход — локальной учётной записью или доменной (Active Directory), роль доменного пользователя назначается по его группам AD.

{{if $U.Open}}
Вход пока не требуется: пользователи не созданы. Создайте первого администратора — после этого все страницы потребуют входа.
{{end}}

Роли

{{range $U.Roles}}{{end}} {{range $U.Hidden}}{{end}}
РольЧто разрешено
{{.Title}}
{{.Key}}
{{.Desc}}
{{.Title}}Недоступна: в лицензии нет модуля «{{.Missing}}».

{{if $U.Modules}}Подключённые модули ({{range $i, $m := $U.Modules}}{{if $i}}, {{end}}«{{$m.Title}}»{{end}}) можно выдать любому пользователю дополнительно к роли. {{end}}Роли и модули показываются по лицензии: права модуля, которого нет в лицензии, не действуют. Настройки и пользователи — только администратор.

Пользователи ({{len $U.Users}})

{{range $U.Users}}
{{.Login}} {{if eq .Source "ad"}}AD{{end}}{{if not .Active}}заблокирован{{end}}
{{if not .LastLogin.IsZero}}вход {{msk .LastLogin}}{{else}}ещё не входил{{end}}{{if .Note}} · {{.Note}}{{end}}
{{if .ADGroups}}
группы: {{range $i,$g := .ADGroups}}{{if $i}}, {{end}}{{$g}}{{end}}
{{end}}
{{else}}

Пользователей нет.

{{end}}

{{if $U.Open}}Создать первого администратора{{else}}Добавить пользователя{{end}}

{{if $U.Modules}}{{end}}

Доменного пользователя можно заранее завести с источником «Active Directory», чтобы выдать ему модули; роль при входе возьмётся из групп AD. Если потерян доступ администратора — удалите файл /var/lib/bj/.bj/users.json на сервере: система вернётся в режим первичной настройки.

Вход через Active Directory

bj подключается к контроллеру домена и проверяет пароль пользователя (LDAP bind его же учётной записью). Роль назначается по членству в группах AD, включая вложенные. Пользователь появляется в списке при первом входе. Чтобы изменения групп действовали без повторного входа, укажите сервисную учётную запись только на чтение: bj будет перечитывать группы доменных пользователей по расписанию, менять роль и снимать доступ у удалённых из групп.

Группы AD → роли (имя группы или полный DN; первое совпадение сверху)
{{range $A.ADGroups}}
{{end}} {{range $i := list "1" "2"}}
{{end}}

Без логина и пароля проверяется только доступность контроллера. С логином — вход, группы и вычисленная роль. Пароль проверки никуда не сохраняется.

{{$R := $U.ADRecheck}}
{{if and $A.ADEnabled $A.ADBindUser $A.ADBindPassword}} Перепроверка групп каждые {{if $A.ADRecheckMinutes}}{{$A.ADRecheckMinutes}}{{else}}15{{end}} мин: {{if $R.At.IsZero}}ещё не выполнялась{{else}}последняя {{msk $R.At}}, проверено {{$R.Checked}}, изменений {{$R.Changed}}{{if $R.Err}} — ошибка: {{$R.Err}}{{end}}{{end}}
{{else}}Перепроверка групп выключена: роль доменного пользователя меняется только при следующем входе. Укажите сервисную учётную запись выше.{{end}}

Активные сессии ({{len $U.Sessions}})

{{if $U.Sessions}} {{range $U.Sessions}}{{end}}
ПользовательВходАктивностьАдресБраузер
{{.Login}}{{msk .Created}}{{msk .Seen}}{{.IP}}{{.UA}}
{{else}}

Сессий нет.

{{end}}
{{/* ============ ЭКСПОРТ БИРЖЕВОЙ ИНФОРМАЦИИ (QUIK) ============ */}}
{{$X := .QuikExport}}{{$S := $X.S}}

QUIK — Экспорт биржевой информации

Модуль ARQA «Экспорт биржевой информации» выгружает данные сервера QUIK (портфели клиентов, позиции, сделки, справочники) в базу PostgreSQL. bj управляет им отсюда: ключи и логин QUIK, где держим базу, какой объём данных выгружаем, состояние службы и место на диске. На этих данных работают модуль «НПР / УДС» и дополнительные проверки M2M. Лицензионный признак quik-export.

{{range $X.Warnings}}
{{.}}
{{end}}

Состояние модуля

{{if not $X.Licensed}}не входит в лицензию — см. раздел «Лицензия»{{end}}
Служба quikexport
{{if not $X.Service.Installed}}не установлена{{else if eq $X.Service.Active "active"}}работает{{else}}{{$X.Service.Active}}{{end}}
{{if $X.Service.PID}}PID {{$X.Service.PID}} · {{end}}{{if $X.Service.MemoryMB}}память {{$X.Service.MemoryMB}} МБ · {{end}}автозапуск {{if $X.Service.Enabled}}да{{else}}нет{{end}}{{if $X.Service.Restarts}} · перезапусков {{$X.Service.Restarts}}{{end}}
Данные из QUIK
{{if $X.DB.OK}}{{if $X.DB.LastTick.IsZero}}нет пульса{{else if lt $X.DB.TickAgeSec 180}}свежие{{else}}устарели{{end}}
{{if not $X.DB.LastTick.IsZero}}цикл {{msk $X.DB.LastTick}} ({{$X.DB.TickAgeSec}} с назад) · {{end}}клиентов {{$X.DB.Clients}}
{{else}}база недоступна
{{$X.DB.Error}}
{{end}}
Объём базы {{$S.DBName}}
{{printf "%.0f" $X.DB.DBSizeMB}} МБ
история НПР {{$X.DB.HistoryRows}} строк{{if not $X.DB.HistoryFrom.IsZero}} с {{$X.DB.HistoryFrom.Format "02.01.2006"}}{{end}} · рост ≈ {{printf "%.1f" $X.DB.GrowthMBDay}} МБ/сутки ({{$X.DB.Rows24h}} событий за 24 ч)
Диск {{if $X.DiskDB.OK}}базы данных{{else}}экспортёра{{end}}
{{with $X.DiskDB}}{{if .OK}}свободно {{printf "%.1f" .FreeGB}} ГБ из {{printf "%.0f" .TotalGB}}
занято {{.UsedPct}}% · {{.Path}}
{{end}}{{end}} {{if not $X.DiskDB.OK}}{{with $X.DiskExp}}свободно {{printf "%.1f" .FreeGB}} ГБ из {{printf "%.0f" .TotalGB}}
занято {{.UsedPct}}%
{{end}}{{end}}
Логи и кэш экспортёра
{{printf "%.0f" $X.LogsMB}} МБ логов
{{range $X.Logs}}{{if .Exists}}{{.Name}} {{printf "%.0f" .SizeMB}} МБ · {{end}}{{end}}кэш QAPI {{printf "%.0f" $X.QAPIMB}} МБ · ротация: ежедневно / 200 МБ, 5 копий
{{if $X.DB.Tables}}
Крупнейшие таблицы базы {{range $X.DB.Tables}}{{end}}
ТаблицаРазмерСтрок (оценка)
{{.Name}}{{.Size}}{{.Rows}}
{{end}}
{{if and $X.Service.Installed (not $X.Service.Enabled)}}
{{end}}
{{if $X.LogTail}}
Последние строки export.log{{if $X.ErrTail}} и export.err{{end}}
{{range $X.LogTail}}{{.}}
{{end}}{{if $X.ErrTail}}--- export.err ---
{{range $X.ErrTail}}{{.}}
{{end}}{{end}}
{{end}}

1. Подключение к серверу QUIK

Логин экспорта на сервере QUIK брокера (выдаёт администратор QUIK / ARQA) и пара ключей pubring.txk / secring.txk к нему. Одна учётная запись = одна сессия: второй экспортёр с тем же логином получит «Вы уже работаете в системе».

Ключи: {{if $S.KeysNames}}{{range $S.KeysNames}}{{.}} {{end}}{{if not $S.KeysAt.IsZero}}(загружены {{msk $S.KeysAt}}){{end}}{{else}}не загружены{{end}}. В каталоге экспортёра: {{range $X.Files}}{{.Name}} {{if .Exists}}✓ {{.ModTime.Format "02.01 15:04"}}{{else}}✗{{end}} · {{end}}

2. База данных экспорта

Куда экспортёр пишет данные. Обычно — наш PostgreSQL на этом же сервере (bj создаст базу, роли и схему одной кнопкой). Внешний сервер — если базу держит заказчик. Логин только для чтения используют модуль «НПР / УДС», проверки M2M и внешние системы (Grafana, отчёты).

SQL для внешнего сервера

Доступ для внешних систем и других модулей: {{if $X.ShowRO}}{{$X.RODSNFull}}{{else}}{{$X.RODSN}}{{end}} {{if $X.ShowRO}}скрыть пароль{{else}}показать пароль{{end}}{{if ne $S.DBMode "external"}} · снаружи: хост {{$X.ServerIP}}, доступ по IP открывает администратор (pg_hba){{end}}.

3. Объём данных

Какие таблицы QUIK выгружаем. Чем больше набор, тем больше нагрузка на сервер QUIK, база и диск. Портфели пересчитываются каждые «период портфелей» секунд (ARQA рекомендует не менее 60); история изменений НПР/УДС хранится в схеме npr.

{{range $X.Presets}} {{end}}
{{range $g := $X.Groups}}
{{$g}}
{{range $X.Tables}}{{if eq .Group $g}} {{end}}{{end}}
{{end}}
Сейчас включено: {{len $S.Tables}} таблиц — {{range $S.Tables}}{{.}} {{end}}

4. Применить к экспортёру

bj собирает export.ini, info.ini, секцию ODBC и ключи из настроек выше и устанавливает их в каталог службы ({{$S.Dir}}) с резервной копией прежних файлов, настраивает ротацию логов и перезапускает экспортёр. {{if not $S.AppliedAt.IsZero}}Последнее применение: {{msk $S.AppliedAt}}.{{end}}{{if not $S.Imported}} Если экспортёр уже настроен вручную — сначала «Прочитать настройки из экспортёра».{{end}}

Предпросмотр файлов

Установка на новом сервере: дистрибутив ARQA (install_quikexport-12.x.run, Linux) ставится установщиком bj в {{$S.Dir}}; нужны пакеты unixodbc, odbc-postgresql, libjemalloc2. Обновления экспортёра приходят через канал обновлений bj после проверки у нас.

{{/* ============ КРИПТОГРАФИЯ ============ */}}

Криптография

Установка ключа на флешку

Пошаговый мастер: загрузить архив НРД с паролем → запись на флешку → справочник сертификатов → проверка Валидаты → готово.

Открыть мастер установки ключа →

СКЗИ «Валидата Клиент L»

Активный профиль: {{if .Settings.Crypto.Profile}}{{.Settings.Crypto.Profile}}{{else}}—{{end}} · провайдер {{.Settings.Crypto.Provider}}. Подробно — справка.

Параметры провайдера (для совместимости)
{{/* Доверенные сертификаты НРД в справочнике ИШ */}}

Сертификаты НРД в справочнике ИШ

Комплект доверенных сертификатов крипто-сервера НРД поставляется вместе с bj и при обновлении приезжает всем клиентам. bj сам сверяет справочник активного профиля ИШ{{if .NSDCerts.Profile}} ({{.NSDCerts.Profile}}){{end}}: недостающие добавляет (только если их УЦ уже есть в справочнике — боевой сертификат не попадёт в тестовый профиль), старые удаляет строго после разрешённого НРД срока. Каждое изменение — с бэкапом, проверкой подписи и откатом при ошибке; ИШ перезапускается на несколько секунд.

{{range .NSDCerts.Rows}}{{end}}
СертификатКонтурДействуетСтатус
{{.Title}}
{{.SubjectCN}} · выдан: {{.IssuerCN}} · серийный {{.Serial}}
{{.Contour}} {{.ValidFrom}} — {{.ValidTo}} {{if eq .Kind "ok"}}✓ {{.Status}}{{else if eq .Kind "add"}}⬆ {{.Status}}{{else}}{{.Status}}{{end}}{{if .RemoveNote}}
{{.RemoveNote}}
{{end}}
{{if not .NSDCerts.LastRun.IsZero}}сверено {{.NSDCerts.LastRun.Format "02.01.2006 15:04"}}{{end}}
{{if .NSDCerts.LastLog}}
{{.NSDCerts.LastLog}}
{{end}} {{if .NSDCerts.Store}}
Содержимое справочника профиля ({{len .NSDCerts.Store}} записей) {{range .NSDCerts.Store}}{{end}}
ВладелецИздательСерийныйДоХранилище
{{if eq .Kind "crl"}}CRL{{else}}{{.SubjectCN}}{{if .SelfSigned}} (УЦ){{end}}{{end}}{{.IssuerCN}}{{.Serial}}{{.NotAfter}}{{.Store}}
{{end}}

Свои сертификаты можно положить в /var/lib/bj/.bj/nsd-certs/*.cer — они добавляются по тем же правилам и никогда не удаляются автоматически.

{{/* Сертификаты УЦ */}}

Сертификаты УЦ (авто-загрузка)

URL .cer-файлов УЦ НРД (nsd.ru). Скачиваются, парсятся и сохраняются в /var/lib/bj/ca-certs/.

{{if not .Settings.CACerts.LastFetch.IsZero}}обновлено {{.Settings.CACerts.LastFetch.Format "02.01.2006 15:04"}}{{end}}
{{if .Settings.CACerts.FetchedCerts}} {{range .Settings.CACerts.FetchedCerts}}{{end}}
ВладелецТипДоСтатус
{{.SubjectCN}}{{.Store}}{{if not .NotAfter.IsZero}}{{.NotAfter.Format "02.01.2006"}}{{end}}{{if .Error}}ошибка{{else}}ок{{end}}
{{end}}
{{/* ============ НРД ============ */}}

НРД

Интеграционный шлюз (ИШ)

{{if not .Settings.NSD.IGWBaseURL}}mock-режим — без реального ИШ.{{else}}Профиль {{.Settings.NSD.Profile}}, ИШ {{.Settings.NSD.IGWBaseURL}}.{{end}} Стенды и установка — справка.


Депозитарные реквизиты (откуда списываются бумаги) — из договора/письма НРД. Нужны для формирования заявки на перевод.

{{/* ============ ЛИЧНЫЙ КАБИНЕТ ============ */}}

Личный кабинет · ЕСИА Финанс

Интеграция с платформой ЛК ЕСИА Финанс: адрес для клиента, приём заявок M2M, возврат статуса и подключение к API (тест/бой). НРД настраивается отдельно — в разделе «НРД».

Личный кабинет — интеграция

Адрес ЛК (стенд/бой), куда клиент подаёт заявку M2M. Заявка приходит к нам по контракту POST /api/v1/back_office/claims/, а мы возвращаем статус через Callback URL.

{{if .Settings.LK.PublicURL}}Открыть →{{end}}
Показывается ссылкой на дашборде для первичного теста.
{{if not .Settings.LK.CallbackURL}}Не настроен — уведомления в ЛК отключены. Для обмена с НРД не требуется.{{end}}

Подключение к API ЛК — тест и бой

Реквизиты, по которым bj обращается к API платформы ЛК ЕСИА Финанс (HTTP Basic). Заполните нужные окружения и нажмите «Проверить связь» — сразу видно, есть подключение или нет.

{{/* --- Тест --- */}}
Тестовый стенд {{if .Settings.LK.Test.LastMsg}}{{if .Settings.LK.Test.LastOK}}связь есть{{else}}нет связи{{end}}{{end}} {{if eq .Settings.LK.ActiveEnv "test"}}активно{{end}}
{{if .Settings.LK.Test.LastMsg}}

Последняя проверка: {{.Settings.LK.Test.LastMsg}} · {{.Settings.LK.Test.LastAt.Format "02.01 15:04"}}

{{end}}
{{/* --- Бой --- */}}
Боевой контур {{if .Settings.LK.Prod.LastMsg}}{{if .Settings.LK.Prod.LastOK}}связь есть{{else}}нет связи{{end}}{{end}} {{if eq .Settings.LK.ActiveEnv "prod"}}активно{{end}}
{{if .Settings.LK.Prod.LastMsg}}

Последняя проверка: {{.Settings.LK.Prod.LastMsg}} · {{.Settings.LK.Prod.LastAt.Format "02.01 15:04"}}

{{end}}
bj работает с ЛК через выбранное окружение.

Симулятор заявки M2M

Пока подача через веб-форму у ЕСИА Финанс не готова — bj сам собирает заявку depo_m2m и отправляет её в API ЛК (POST /claims/) через активное окружение. Ответ показывается ниже; затем заявку ловим опросом в «Переводы». Поля предзаполнены рабочим тестовым договором.

Результат (сырой ответ API) появится вверху страницы. Если «Раздел счёта не доступен для быстрых переводов» — Финансы должны включить признак M2M на разделе счёта.

Забрать заявки из ЛК

Коннектор bj вычитывает заявки depo_m2m активного окружения в статусах «В очереди» и «В работе», которые ещё не обрабатывал, для каждой собирает M2M-пакет, отправляет в НРД и переводит заявку в статус «В работе». По ответу НРД статус в ЛК замыкается автоматически (Исполнена / Отклонена). В режиме имитации НРД перед отправкой идёт сверка с DEPO: отказ сразу уходит в ЛК с кодом и причиной, одобренная заявка блокируется в QUIK и через 30 с получает имитированный ответ контрагента. Штатно это делает фоновый поллер раз в минуту — кнопка для ручного запуска.

Итог (сколько получено / отправлено, ошибки) появится вверху страницы.

{{/* ============ ТЕСТЫ ============ */}}

Тесты

Здоровье сервиса

Фоновые компоненты под самоконтролем: при сбое перезапускаются автоматически, при зависании — перезапуск всего сервиса и запись в «Новости». Ниже — живой статус.

{{if .Health}}
{{range .Health}} {{end}}
КомпонентСостояниеПоследняя отметкаПоследняя ошибка
{{healthLabel .Name}} {{if .Healthy}}работает{{else}}не отвечает{{end}} {{dur .Age}} назад {{if .LastErr}}{{.LastErr}}{{else}}—{{end}}
{{else}}

Компоненты ещё не зарегистрированы (сервис только запущен).

{{end}}

Справочник участников M2M

Запрос актуального справочника участников сервиса (пакет #M2MHR в НРД). В ответ НРД присылает #M2MTH — карту ИНН → MC-код депозитариев/брокеров и перечень мест расчётов. Нужно для сопоставления ИНН контрагента с кодом участника (блокеры вида M2M14/M2M15) и понимания, кто вообще зарегистрирован.

Ответ придёт во входящие ИШ (~30-60с). Список появится в логе bj-server и в m2m-handbook.json.

Тестовый пакет роботу НРД

Робот MC0012500000 эмулирует вторую сторону перевода. Выберите сценарий — bj-server отправит эталонный запрос через ИШ, ответ придёт во входящие. Требуется настроенный ИШ + профиль Валидаты.

Ответ робота — асинхронно (~30-60 сек) во входящие ИШ.

Сквозной тестовый прогон (mock/реальный)

Заявка с предзаполненными данными через всю цепочку до финального статуса.

{{if .Settings.LastTest}}
Последний прогон
Статус{{if .Settings.LastTest.OK}}✓ успешно{{else}}✗ не прошёл{{end}}
FSM-статус{{.Settings.LastTest.FinalStatus}}
ClaimID{{.Settings.LastTest.ClaimID}} {{if .Settings.LastTest.ClaimID}}→ карточка{{end}}
Сообщение{{.Settings.LastTest.Message}}
{{end}}
{{/* ============ ОПОВЕЩЕНИЯ ============ */}}

Оповещения

Системные события (сбой или зависание фонового компонента, аварийный перезапуск) всегда попадают в ленту «Новости». Дополнительно их можно доставлять наружу — на почту оператору и/или в мониторинг Zabbix, чтобы узнать о проблеме, даже когда интерфейс bj никто не открыл.

Почта (SMTP)

Отправка уведомлений по e-mail. Пароль хранится в конфигурации сервиса.

{{if .Settings.Alerts.SMTP.LastMsg}}

Последняя проверка: {{.Settings.Alerts.SMTP.LastMsg}}

{{end}}

Zabbix (хук мониторинга)

bj шлёт значение на элемент типа Zabbix trapper (протокол zabbix_sender). В Zabbix заведите host и item-trapper с этим ключом, затем триггер по значению — уведомления настроит сам Zabbix.

{{if .Settings.Alerts.Zabbix.LastMsg}}

Последняя проверка: {{.Settings.Alerts.Zabbix.LastMsg}}

{{end}}

Адресаты уведомлений: депозитарий, бэк-офис, мидл-офис

Три группы адресов и таблица «какой тип уведомления кому отправлять». Письма идут через SMTP из раздела «Почта». Адрес алертов из раздела «Почта» получает системные оповещения всегда; группы ниже добавляются по маршруту.

{{range .NotifyGroups}}{{end}}{{$inc := .Settings.Incoming}}{{range $k := .NotifyKinds}}{{range $g := $.NotifyGroups}}{{end}}{{end}}
Тип уведомления{{.Title}}
{{$k.Title}}

Требуется настроенный и включённый SMTP в разделе «Почта».

{{/* ============ ОБНОВЛЕНИЯ ============ */}}

Обновления

Компоненты

Каждый компонент обновляется отдельно: своя версия в релизе, перезапускается только его служба. Файлы ставит root-установщик после повторной проверки подписи и контрольных сумм. Модули, которых нет на этом сервере, обновлением не ставятся.

{{range .Components}}{{end}}
КомпонентУстановленаДоступнаСлужба
{{.Title}}
{{.Name}}
{{if .Present}}{{if .Installed}}{{.Installed}}{{else}}неизвестна{{end}}{{else}}не установлен{{end}} {{if .Available}}{{.Available}}{{if .Update}} новее{{end}}{{else}}нет данных{{end}} {{.Unit}} {{if .Update}}
{{end}}
{{if .UpdatesAvailable}}
{{end}}
{{if .Settings.Update.Notes}}

Что нового в релизе {{.Settings.Update.Available}}: {{.Settings.Update.Notes}}

{{end}} {{if not .Settings.Update.LastCheck.IsZero}}

Последняя проверка: {{.Settings.Update.LastCheck.Format "02.01.2006 15:04"}}. {{.Settings.Update.LastResult}}

{{end}} {{if and .License.Present (not .License.AllowsUpdates)}}

Текущий план «{{.License.Plan}}» не включает обновления.

{{end}}

Источник обновлений

Артефактория раздаёт подписанные релизы. Обновления проверяются по подписи Ed25519 и sha256 — без валидной подписи установка не выполняется.

{{/* ============ ЛИЦЕНЗИЯ ============ */}}

Модуль «НПР / УДС» (риск-монитор по данным QUIK)

Показывает НПР1 / НПР2 / УДС клиентов маржинальной торговли по базе экспорта QUIK (схема npr). Отдельно лицензируемый модуль (признак npr); при включении в меню появляется пункт «НПР / УДС». Подключение — логин только для чтения.

Лицензия

{{if .License.Valid}}Активна {{else if .License.Present}}Недействительна {{else}}Не активирована{{end}}

{{if .License.Present}} {{if .License.Tenant}}{{end}} {{if .License.Plan}}{{end}} {{if not .License.ExpiresAt.IsZero}}{{end}} {{if not .License.ContractUntil.IsZero}}{{end}}
Организация{{.License.Tenant}}
План{{.License.Plan}}
Тип ключа{{if .License.Online}}онлайн: выдан сервером лицензий этой установке, продлевается автоматически{{else}}офлайн (закрытый контур){{end}}
Ключ действует до{{.License.ExpiresAt.Format "02.01.2006"}} {{if .License.Valid}}(осталось {{.License.DaysLeft}} дн.){{end}}
Договор до{{.License.ContractUntil.Format "02.01.2006"}}
Обновления{{if .License.AllowsUpdates}}включены{{else}}не входят в план{{end}}
Модули{{range .Features}}
{{.Title}} {{.Key}}{{if not .On}}— не входит в лицензию{{end}}
{{end}}
Статус{{.License.Message}}
{{else}}

Лицензионный ключ не введён. Без лицензии сервис работает, но автообновления заблокированы.

{{end}}

Активация на сервере лицензий

Введите код активации от поставщика (вида BJ-XXXX-XXXX-XXXX). bj зарегистрирует эту установку на сервере лицензий lic.zetit.ru и дальше сам продлевает ключ раз в сутки. Серверу bj нужен доступ по HTTPS к lic.zetit.ru.

{{if .License.Online}}{{end}}

Установка {{if .Settings.License.InstallID}}{{.Settings.License.InstallID}}{{else}}будет создана при первом обращении{{end}}{{if not .Settings.License.LastSync.IsZero}} · последнее продление {{.Settings.License.LastSync.Format "02.01.2006 15:04"}}{{end}}

{{if .Settings.License.LastMsg}}

{{if .Settings.License.LastOK}}✓{{else}}✗{{end}} {{.Settings.License.LastMsg}} ({{.Settings.License.LastAttempt.Format "02.01.2006 15:04"}})

{{end}}
Офлайн-ключ для закрытого контура

Если у сервера bj нет доступа в интернет, вставьте офлайн-ключ, выданный поставщиком. Он проверяется по подписи без связи с сервером лицензий и не продлевается.

{{/* ============ ОФОРМЛЕНИЕ (логотип отчётов) ============ */}}

Оформление отчётов

Логотип организации в шапке отчётов

Логотип показывается справа в шапке всех отчётов для регулятора (слева — логотип MOEX МОСТ / НРД) и на титульной сводке пакета тестов. Встраивается прямо в HTML — отчёт остаётся автономным. Если не загружать — используется стандартный логотип «Фонтвьель».

Сейчас в отчётах:
логотип
{{if .Settings.Branding.LogoDataURI}}Загружен свой логотип{{if .Settings.Branding.LogoName}}: {{.Settings.Branding.LogoName}}{{end}}.{{else}}Используется стандартный (встроенный) логотип.{{end}}

Форматы: PNG, JPG, GIF, WEBP, SVG. Максимум 512 КБ. Рекомендуется горизонтальный логотип (высота в шапке — 28px).

{{if .Settings.Branding.LogoDataURI}}
{{end}}
{{/* ============ ПЕРСПЕКТИВНЫЕ МОДУЛИ (под паролем) ============ */}}

Перспективные модули

Модули для будущих профилей внедрения «автомат» и «полуавтомат» (когда используется собственный личный кабинет, а не ЕСИА Финанс). Пока не в проде — скрыты, чтобы не мешать текущей работе. В профиле «через Финансы» они не нужны: проверку и блокировку бумаг закрывает сам ЕСИА Финанс.

Что здесь будет

QUIK — Модуль неторговых порученийБлокировка/разблокировка и проверка количества бумаг в торговой системе — для собственного ЛК.
Обмен FancyПроверка заявки по учёту клиента через БД («кран») перед отправкой в НРД — для фирм без ЕСИА Финанс.
{{if .AdvancedUnlocked}}

Доступ открыт

Разделы «Обмен Fancy» и «QUIK МНП» появились в меню слева. Это незавершённые модули — меняйте настройки, только если понимаете последствия.

{{else}}

Открыть модули

Введите пароль администратора, чтобы временно открыть перспективные разделы. Доступ запоминается в этом браузере до нажатия «Скрыть».

{{end}}
{{end}}