{{define "content"}}

Настройка Bridge&Join

Пошаговый мастер первого запуска — состояние сохраняется после каждого шага

{{if .Done.License}}✓{{else}}1{{end}}Лицензия {{if .Done.Postgres}}✓{{else}}2{{end}}База bj {{if .Done.Depo}}✓{{else}}3{{end}}Учёт DEPO {{if .Done.Crypto}}✓{{else}}4{{end}}Валидата {{if .Done.Certs}}✓{{else}}5{{end}}Сертификаты {{if .Done.NSD}}✓{{else}}6{{end}}Шлюз НРД {{if .Done.TestRun}}✓{{else}}7{{end}}Проверка

Пропустить мастер и перейти в систему → — вернуться к нему можно из «Настройка → Мастер настройки»

{{if .Flash}}

{{.Flash}}

{{end}}
{{/* ============= ШАГ 1: Лицензия ============= */}} {{if eq .Step 1}}

Шаг 1. Лицензия

Что это. Ключ продукта (BJ-XXXX-XXXX-XXXX) привязывает этот сервер к вашей лицензии.
Зачем. От лицензии зависят модули (обмен с DEPO и QUIK, личный кабинет, НПР/УДС) и получение обновлений: bj скачает и поставит модули, входящие в лицензию, автоматически.
Где взять. Портал клиента lic.zetit.ru/portal или письмо от ZETIT.
{{if .Done.License}}

✓ Ключ продукта введён, лицензия активна: {{.Lic.Tenant}}, план {{.Lic.Plan}}, модули: {{if .Lic.Features}}{{range $i, $f := .Lic.Features}}{{if $i}}, {{end}}{{$f}}{{end}}{{else}}только ядро{{end}}; {{.Lic.Message}}

{{end}} {{with .Update}}{{if .HasUpdate}}

На сервере лицензий есть что поставить (выпуск {{.Available}})

Образ установил ту версию bj, с которой был собран. На сервере лицензий есть более новая — с исправлениями ядра, установщика и служб. Поставьте её сейчас, до настройки: bj перезапустится примерно на 10 секунд, затем обновите страницу.
{{.Message}}

{{else}}

✓ Установлена последняя версия bj ({{.Available}}).

{{end}}{{end}} {{if .Done.License}}
Сменить ключ продукта (обычно не нужно)
{{else}}
{{end}}
{{if .Done.License}}К шагу 2 →{{else}}Пропустить (ввести позже) →{{end}}
{{end}} {{/* ============= ШАГ 3: Учёт DEPO (Fancy) ============= */}} {{if eq .Step 3}}

Шаг 3. Учётная система DEPO (Fancy)

Что это. Подключение к базе депозитарного учёта DEPO (MS SQL / PostgreSQL).
Зачем. bj сверяет с DEPO каждый перевод (клиент, счёт, остаток, квалификация) и передаёт в DEPO поручения и их исполнение — документы создаются в учёте автоматически. Отсюда же bj возьмёт ваши реквизиты в НРД (шаг 6), чтобы не вводить их вручную.
Что нужно. Адрес сервера БД и логин с правами чтения DEPO и записи в трансферные таблицы FTV_M2M (выдаёт администратор СУБД).
{{if not .DepoLicensed}}

Модуль обмена с DEPO и QUIK не входит в текущую лицензию — шаг пропускается. После добавления модуля в лицензию он станет доступен здесь и в «Настройка → Обмен Fancy».

{{else}}

Три части: подключение к базе, трансферные таблицы обмена, обработка (job), которая превращает записи bj в документы DEPO.

1. Подключение к базе DEPO {{if .Settings.Fancy.Server}}✓ {{.Settings.Fancy.Server}}{{end}}

{{if .Settings.Fancy.Server}}{{end}}
{{if .Settings.Fancy.Server}} {{$btn2 := "background:var(--card);color:var(--text);border:1px solid var(--border-strong,#c9cdd8)"}}

2. Трансферные таблицы FTV_M2M {{if .Settings.Fancy.DepoTablesCheckOK}}✓ на месте{{end}}

Что это. Четыре таблицы в базе DEPO, через которые идёт обмен: поручения FTV_M2M и их строки, события FTV_M2M_EVENTS, справочник участников НРД. Данные учёта они не трогают; создание можно повторять — добавляется только недостающее.
{{if not .Settings.Fancy.DepoTablesCheckOK}}

Создать таблицы в базе {{.DepoTables.DB}}. Логин администратора СУБД ({{if .DepoTables.Postgres}}владелец базы{{else}}db_owner в базе или sa{{end}}) нужен один раз и не сохраняется; bj заодно выдаст права своему логину {{.DepoTables.User}}. Пусто — попробовать логином bj.

или скачать скрипт для администратора
{{end}}
{{if .Settings.Fancy.DepoTablesCheck}}

{{if .Settings.Fancy.DepoTablesCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoTablesCheck}}

{{end}}

3. Обработка обмена (job) {{if .Settings.Fancy.DepoJobCheckOK}}✓ работает{{end}}

Что это. Процедура {{.DepoJob.Proc}} в базе DEPO каждые {{.DepoJob.Every}} с забирает записи bj из трансферных таблиц и создаёт по ним документы и операции DEPO. Кто-то должен её запускать.
{{if .DepoEdition}}Ваш сервер: {{.DepoEdition}} — {{if .DepoAgent}}есть SQL Server Agent, рекомендуем джобу Agent, её создаст bj.{{else}}редакция без SQL Server Agent, процедуру будет запускать сам bj.{{end}}{{else if .DepoTables.Postgres}}Ваш сервер: PostgreSQL — процедуру будет запускать сам bj.{{end}}
{{$mode := .Settings.Fancy.DepoJobMode}}{{if not $mode}}{{$mode = .DepoJobDef}}{{end}}
{{if not .DepoTables.Postgres}}{{end}} {{if not .DepoTables.Postgres}}{{end}}
{{if eq .Settings.Fancy.DepoJobMode "sql-auto"}}

Создать джобу {{.DepoJob.Name}}. Логин администратора SQL (sysadmin, например sa) нужен один раз и не сохраняется. SQL Server Agent должен быть запущен.

{{else if eq .Settings.Fancy.DepoJobMode "bj"}}

Администратору SQL — выполнить один раз:

{{.DepoJob.GrantScript}}
{{else if eq .Settings.Fancy.DepoJobMode "sql-manual"}}

Скрипт для администратора SQL:

{{.DepoJob.AgentScript}}
{{end}} {{if .Settings.Fancy.DepoJobMode}}
bj кладёт служебное событие и ждёт до 40 с, пока его обработают
{{if .Settings.Fancy.DepoJobCheck}}

{{if .Settings.Fancy.DepoJobCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoJobCheck}}

{{end}} {{end}} {{end}} {{end}}
← К шагу 2 {{if .Done.Depo}}К шагу 4 →{{else}}Пропустить →{{end}}
{{end}} {{/* ============= ШАГ 1: PostgreSQL ============= */}} {{if eq .Step 2}}

Шаг 2. База данных bj (PostgreSQL)

База самого bj: журнал заявок и поручений, история обмена с НРД и DEPO, пользователи.

{{if .Done.Postgres}}

✓ База готова{{if .PGSummary}}: {{.PGSummary}}{{end}}. Её создал установщик — ничего делать не нужно, переходите к следующему шагу.

{{end}} {{if not .Done.Postgres}}
Что выбрать? Если у вас уже есть рабочий PostgreSQL — нажмите «У меня уже есть PostgreSQL» и введите DSN. Если впервые настраиваете — выберите «Поднять автоматически», система сама развернёт контейнер с PostgreSQL и накатит миграции.
{{end}} {{if and devOn (not .Settings.Postgres.DSN)}}

Вариант А — для тех, у кого нет своего PostgreSQL

Bridge-and-Join-s сам поднимет PostgreSQL в контейнере (podman-compose), создаст БД bj и накатит миграции. Подходит для дев-стенда. Для продакшена лучше указать свой DSN.

~10-30 сек
{{end}}
{{if .Settings.Postgres.DSN}}Подключить другую базу (обычно не нужно){{else}}Вариант Б — у меня уже есть PostgreSQL, введу DSN сам{{end}}

При сохранении выполняется проверка подключения (Ping). Если БД недоступна — будет ошибка.

← К шагу 1 {{if .Done.Postgres}}К шагу 3 →{{else}}{{end}}
{{if not .Done.Postgres}}

Пропустить (буду работать в режиме in-memory — без сохранения сделок)

{{end}}
{{end}} {{/* ============= ШАГ 2: Крипто (Валидата) ============= */}} {{if eq .Step 4}}

Шаг 4. СКЗИ «Валидата Клиент L»

СКЗИ «Валидата Клиент L» проверяет подписи НРД на квитанциях и сообщениях и нужно для работы с ключами и сертификатами (шаг 5).

{{if .ValidataVer}}

✓ Валидата установлена вместе с bj: версия {{.ValidataVer}}, каталог /opt/Validata/VDCSP. Ничего настраивать на этом шаге не нужно.

bj работает с Валидатой через свою службу криптографии bj-crypto{{if eq .CryptoSvc "active"}} — она запущена{{else}} — сейчас она не запущена: служба ставится обновлением с сервера лицензий (шаг 1, кнопка «Обновить сейчас»), а работает с ключом, установленным на шаге 5{{end}}.

{{else}}

Валидата на этом сервере не найдена.

Как поставить. С образа Bridge&Join она ставится сама. Если bj ставили на готовую систему: пакеты zpki и zsdk из дистрибутива НРД (ClientL_Other.zip для Ubuntu 22.04, ClientL_ALSE.zip для Astra Linux) — sudo apt install ./zpki_*.deb ./zsdk_*.deb, подробнее — справка. После установки обновите эту страницу.
{{if devOn}}
{{end}} {{end}}
← К шагу 3 {{if .Done.Crypto}}К шагу 5 →{{else}}Пропустить →{{end}}
{{end}} {{/* ============= ШАГ 3: Сертификаты ============= */}} {{if eq .Step 5}}

Шаг 5. Сертификаты

Здесь две части: ключ и сертификат вашей организации (ставите вы) и сертификаты НРД и удостоверяющих центров (bj ведёт их сам).

1. Ключ и сертификат организации

Что это. Ключ ЭП, которым подписываются сообщения в НРД, и его сертификат (выдаёт УЦ Московской биржи). Архив ключа с паролем вам передаёт НРД/УЦ.
Как поставить. Мастер установки ключа: загрузить архив → запись на носитель → справочник сертификатов → проверка подписи Валидатой.
Открыть мастер установки ключа →

2. Сертификаты НРД и УЦ — автоматически

✓ Автоматическое обновление {{if .Settings.NSDCerts.Manual}}выключено (включается в «Настройка → Криптография»){{else}}включено{{end}}. Делать на этом шаге ничего не нужно.

Как это работает. Действующие сертификаты НРД и удостоверяющих центров Московской биржи поставляются вместе с bj и приезжают с обновлениями. Каждые 6 часов bj сверяет их со справочником сертификатов ИШ: добавляет недостающие, а заменённые НРД убирает строго после срока, который НРД объявил в уведомлении. Перед каждым изменением делается резервная копия и проверка подписи, при ошибке всё откатывается.
Тестовые и боевые. Сертификат попадает только в справочник своего контура: боевые (издатель «Корневой УЦ») — только к боевому ключу, тестовые (издатель «Тестовый УЦ») — только к тестовому. Поэтому смешать контуры нельзя.
Откуда берутся. НРД и Московская биржа публикуют сертификаты в постоянных местах: комплект ГОСТ МБ, НКЦ и НРД — https://fs.moex.com/cdp/sert/GOST.zip, сертификаты УЦ — https://fs.moex.com/cdp/. Когда там появляется новый сертификат, мы добавляем его в комплект bj, и он приезжает к вам с обновлением.
Состояние, ручная проверка и выключение — «Настройка → Криптография → Сертификаты НРД в справочнике ИШ».
{{if .Settings.NSDCerts.LastRows}}

Последняя сверка: {{.Settings.NSDCerts.LastRun.Format "02.01.2006 15:04"}}{{if .Settings.NSDCerts.LastProfile}}, профиль ИШ {{.Settings.NSDCerts.LastProfile}}{{end}}.

{{else}}

Первая сверка пройдёт, когда будут настроены ключ и шлюз НРД (шаг 6).

{{end}} {{if .Certs}}

Установленные сертификаты ({{len .Certs}})

{{range .Certs}} {{end}}
ВладелецИздательДействителен доИННКлюч
{{.SubjectCN}} {{.IssuerCN}} {{.NotAfter.Format "02.01.2006"}} {{if .INN}}{{.INN}}{{else}}—{{end}} {{if .HasPrivateKey}}есть{{else}}нет{{end}}
{{else}}

Ключ организации ещё не установлен. Можно пропустить этот шаг и вернуться к нему, когда будет архив ключа.

{{end}}
← К шагу 4 К шагу 6 →
{{end}} {{/* ============= ШАГ 4: НРД ============= */}} {{if eq .Step 6}}

Шаг 6. Интеграционный шлюз НРД

Адрес web-сервиса ONYX и имя ключевого контейнера НРД.

Что это? Интеграционный шлюз (ИШ) НРД — это компонент, через который наши M2M-сообщения отправляются в НРД. {{if devOn}}У НРД есть 4 контура: GUEST (для разработки) и TEST3 (предпродакшен), каждый в варианте ГОСТ или RSA.{{else}}У НРД есть тестовый контур (TEST3) и боевой контур, каждый в варианте ГОСТ или RSA.{{end}}
Где взять? Дистрибутив ИШ и инструкции — на сайте НРД nsd.ru/workflow/system/programs/. Доступ к тестовым контурам выдаётся НРД по заявке (см. DOC/instr_podkl_stend_v3.pdf).

Депозитарные реквизиты организации в НРД. {{if .Settings.Fancy.Server}}Их можно взять из базы DEPO (Fancy): кнопка «Определить из DEPO» подставит найденное в пустые поля — проверьте и сохраните.{{else}}Если учёт ведётся в Fancy DEPO — сначала подключите базу DEPO на шаге 3, тогда реквизиты подставятся из DEPO автоматически; иначе введите их из договора с НРД.{{end}}

{{if .Settings.Fancy.Server}}{{end}} {{if .Suggest}}{{if .Suggest.AccountID}}
Найдено в DEPO: счёт {{.Suggest.AccountID}}, код {{.Suggest.DeponentCode}}, раздел {{.Suggest.SectionID}}{{if .Suggest.OrgName}}; организация {{.Suggest.OrgName}}, ИНН {{.Suggest.OrgINN}}{{end}}.{{range .Suggest.Notes}}
⚠ {{.}}{{end}}
{{end}}{{end}}
{{if .Suggest}}{{if .Suggest.OrgName}}

Организация (из DEPO — проверьте): код участника, ИНН, наименование.

{{end}}{{end}}
← К шагу 5 {{if .Done.NSD}}К шагу 7 →{{else}}Пропустить ({{if devOn}}mock-режим{{else}}обмен с НРД не настроен{{end}}) →{{end}}
{{end}} {{/* ============= ШАГ 5: Тест-ран (режим разработки) / проверка подключений ============= */}} {{if eq .Step 7}}
{{if devOn}}

Шаг 7. Тестовая заявка

Прогон полного цикла: создание заявки → валидация → подпись → отправка в НРД (или mock) → ожидание Decision → подтверждение.

Что произойдёт? Система создаст тестовую M2M-сделку, проведёт её через всю стейт-машину, и покажет результат каждого этапа. Если ИШ НРД не настроен — сработает mock (синтетический Decision через 3 секунды).
{{if .Settings.LastTest}}

Последний прогон: {{.Settings.LastTest.StartedAt.Format "02.01.2006 15:04:05"}}

{{if .Settings.LastTest.Message}}{{end}}
Заявка{{.Settings.LastTest.ClaimID}}
Финальное состояние{{ruState .Settings.LastTest.FinalStatus}}
Результат{{if .Settings.LastTest.OK}}успех{{else}}ошибка{{end}}
Сообщение{{.Settings.LastTest.Message}}
{{end}} {{else}}

Шаг 7. Проверка подключений

Проверьте, что база данных, СКЗИ и шлюз НРД доступны: на странице «Статус» bj проверяет каждое подключение и показывает, что нужно исправить.

Открыть проверку подключений → {{end}}

Итоговая сводка

{{if devOn}}{{end}}
PostgreSQL{{if .Done.Postgres}}настроен{{else}}in-memory{{end}}
Крипто-провайдер{{if .Done.Crypto}}Валидата Клиент L{{if .ValidataVer}} {{.ValidataVer}}{{end}}{{else}}не настроен{{end}}
Сертификатов установлено{{len .Certs}}
ИШ НРД{{if .Done.NSD}}{{.Settings.NSD.Profile}}{{else}}{{if devOn}}mock-режим{{else}}не настроен{{end}}{{end}}
Тестовый прогон{{if .Done.TestRun}}пройден{{else}}не запускался{{end}}
← К шагу 6 Перейти к дашборду
{{end}}
{{end}}