Слева — шаги этой установки по порядку (номер, галочка у сделанных, текущий выделен),
справа — карточка шага: заголовок, пояснение, сведения «название — значение», зелёная
плашка итога. Подготовка модулей — в том же виде.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
<p>Ключ принят: <b>{{.Tenant}}</b>. bj проверяет обновления, ставит и запускает модули, которые входят в вашу лицензию, — затем откроется мастер настройки.</p>
<pstyle="text-align:center;margin:-14px 0 18px;font-size:13px"><ahref="/admin/"title="Вернуться к мастеру — «Настройка → Мастер настройки»">Настроить позже и перейти в систему →</a></p>
<pclass="muted"style="margin:0;font-size:13.5px">{{if eq .Lic.Plan "enterprise"}}Все модули{{else if .Lic.Features}}Входит: {{range $i, $f := .Lic.Features}}{{if $i}}, {{end}}{{modTitle $f}}{{end}}{{else}}Только ядро: обмен с НРД и переводы M2M{{end}} · {{.Lic.Message}}</p>
{{else}}<pstyle="margin:4px 0 0">Введите ключ продукта — bj сам скачает и поставит модули вашей лицензии.</p>
<pclass="muted"style="margin:4px 0 0;font-size:13px">Ключ вида BJ-XXXX-XXXX-XXXX — в портале клиента <ahref="https://lic.zetit.ru/portal/"target="_blank">lic.zetit.ru/portal</a> или в письме от ZETIT.</p>{{end}}
<pstyle="margin:0 0 6px;font-weight:600">На сервере лицензий есть что поставить (выпуск {{.Available}})</p>
<pclass="muted"style="margin:0 0 10px;font-size:13px">Образ установил ту версию bj, с которой был собран. На сервере лицензий есть более новая — с исправлениями ядра, установщика и служб. Поставьте её сейчас, до настройки: bj перезапустится примерно на 10 секунд, затем обновите страницу.<br>{{.Message}}</p>
{{if .Done.License}}<p>Ключ продукта открывает модули bj и обновления.</p>
<dlclass="wiz-kv">
<dt>Организация</dt><dd>{{.Lic.Tenant}}</dd>
<dt>Модули</dt><dd>{{if eq .Lic.Plan "enterprise"}}все модули{{else if .Lic.Features}}{{range $i, $f := .Lic.Features}}{{if $i}}, {{end}}{{modTitle $f}}{{end}}{{else}}только ядро: обмен с НРД и переводы M2M{{end}}</dd>
<dt>Срок</dt><dd>{{.Lic.Message}}</dd>
</dl>
{{else}}<p>Введите ключ продукта — bj сам скачает и поставит модули вашей лицензии.</p>
<pclass="muted"style="margin:-10px 0 0;font-size:13px">Ключ вида BJ-XXXX-XXXX-XXXX — в портале клиента <ahref="https://lic.zetit.ru/portal/"target="_blank">lic.zetit.ru/portal</a> или в письме от ZETIT.</p>{{end}}
{{if and .Update .Update.HasUpdate}}
<divclass="wiz-info"style="display:block">
<pstyle="margin:0 0 6px;font-weight:600">Есть новая версия bj — {{.Update.Available}}</p>
<pclass="muted"style="margin:0 0 10px;font-size:13px">С исправлениями ядра, установщика и служб. Поставьте её до настройки: bj перезапустится примерно на 10 секунд.<br>{{.Update.Message}}</p>
{{else}}<pclass="muted"style="font-size:13px;margin-top:6px">✓ Установлена последняя версия bj</p>{{end}}{{end}}
{{else if .Done.License}}<divclass="wiz-ok"><iclass="wiz-ic"></i><span>Лицензия активна{{if .Update}}, установлена последняя версия bj{{end}}.</span></div>{{end}}
{{if .Done.License}}<detailsstyle="margin-top:12px"><summarystyle="cursor:pointer;color:var(--accent);font-size:13px">Сменить ключ продукта (обычно не нужно)</summary>
<pstyle="margin:2px 0 0">bj сверяет каждый перевод с учётом DEPO и сам создаёт в нём поручения. Нужен только адрес сервера — базу DEPO bj найдёт сам.</p>
<labelstyle="margin:0">Сервер DEPO<inputtype="text"name="server"value="{{.Settings.Fancy.Server}}"placeholder="адрес или имя\экземпляр"requiredautofocusstyle="width:100%;margin-top:4px"></label>
<labelclass="wiz-opt"><inputtype="radio"name="mode"value="auto"checkedonchange="wizDepo()"><span><b>bj сделает всё сам</b><spanclass="muted">— нужен логин администратора SQL на один раз, bj его не сохраняет</span></span></label>
<labelclass="wiz-opt"><inputtype="radio"name="mode"value="script"onchange="wizDepo()"><span><b>Отдать скрипт администратору</b><spanclass="muted">— если логин администратора не дают: один файл сделает то же самое</span></span></label>
<labelclass="wiz-opt"><inputtype="radio"name="mode"value="existing"onchange="wizDepo()"><span><b>Логин для bj уже есть</b><spanclass="muted">— база подготовлена раньше, только проверить</span></span></label>
<labelclass="wiz-opt"><inputtype="radio"name="depo_job"value="bj"{{ifeq$mode"bj"}}checked{{end}}><span><b>Сервер bj</b><spanclass="muted">— если Agent нет (например, SQL Server Express)</span></span></label>
</div>
{{if not .DepoCands}}<detailsstyle="font-size:13px"><summarystyle="cursor:pointer;color:var(--accent)">Указать базу DEPO вручную (обычно не нужно)</summary>
<inputtype="text"name="depo_database"id="wiz-depo-dbman"value=""placeholder="имя базы DEPO на сервере"pattern="[A-Za-z][A-Za-z0-9_]*"style="padding:8px;width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;margin-top:6px;max-width:320px"></details>{{end}}
<inputtype="text"name="depo_database"id="wiz-depo-dbman"value=""placeholder="имя базы DEPO на сервере"pattern="[A-Za-z][A-Za-z0-9_]*"style="width:100%;margin-top:6px;max-width:320px"></details>{{end}}
<div><buttontype="submit"class="btn"id="wiz-depo-btn">Подготовить и проверить</button></div>
<h2><spanclass="dot {{if .Done.Postgres}}ok{{else}}err{{end}}"></span>База данных bj (PostgreSQL)</h2>
<p>База самого bj: журнал заявок и поручений, история обмена с НРД и DEPO, пользователи.</p>
{{if .Done.Postgres}}<p>✓ База готова{{if .PGSummary}}: {{.PGSummary}}{{end}}. Её создал установщик — ничего делать не нужно, переходите к следующему шагу.</p>{{end}}
{{if .Done.Postgres}}<divclass="wiz-ok"><iclass="wiz-ic"></i><span>База готова{{if .PGSummary}}: {{.PGSummary}}{{end}}. Её создал установщик — ничего делать не нужно.</span></div>{{end}}
{{if not .Done.Postgres}}<divclass="help-block">
<strong>Обычно базу создаёт установщик</strong> — если вы ставили bj с образа или командой установки, этот шаг уже выполнен. Если база bj на отдельном сервере PostgreSQL — введите строку подключения ниже{{if devOn}}, или поднимите локальную базу автоматически (режим разработки){{end}}.
<summarystyle="cursor:pointer;color:var(--accent)">{{if .Settings.Postgres.DSN}}Подключить другую базу (обычно не нужно){{else}}Вариант Б — у меня уже есть PostgreSQL, введу DSN сам{{end}}</summary>
<pstyle="margin:2px 0 0">От имени вашей организации bj отправляет и принимает переводы. {{if .DepoLicensed}}Реквизиты bj берёт из DEPO — проверьте и сохраните.{{else}}Найдите себя в справочнике участников НРД.{{end}}</p>
{{if .Suggest}}{{if .Suggest.OrgName}}{{if not .Done.Org}}<pstyle="margin:8px 0;padding:8px 12px;border-radius:8px;background:var(--accent-weak)">✓ <strong>Определено из DEPO</strong>: {{.Suggest.OrgName}}, ИНН {{.Suggest.OrgINN}}, код {{.Suggest.OrgCode}}{{if .Suggest.AccountID}}, счёт НРД {{.Suggest.AccountID}}{{end}}. Поля ниже заполнены — проверьте и нажмите «Сохранить».</p>{{end}}{{end}}{{end}}
<p>От имени вашей организации bj отправляет и принимает переводы. {{if .DepoLicensed}}Реквизиты bj берёт из DEPO — проверьте и сохраните.{{else}}Найдите себя в справочнике участников НРД.{{end}}</p>
{{if .Suggest}}{{if .Suggest.OrgName}}{{if not .Done.Org}}<divclass="wiz-ok"style="margin:0 0 14px"><iclass="wiz-ic"></i><span><strong>Определено из DEPO</strong>: {{.Suggest.OrgName}}, ИНН {{.Suggest.OrgINN}}, код {{.Suggest.OrgCode}}{{if .Suggest.AccountID}}, счёт НРД {{.Suggest.AccountID}}{{end}}. Поля ниже заполнены — проверьте и нажмите «Сохранить».</span></div>{{end}}{{end}}{{end}}
<h2><spanclass="dot {{if and .Settings.NSD.DeponentCode .Settings.NSD.AccountID .Settings.NSD.SectionID}}ok{{else}}err{{end}}"></span>Депозитарные реквизиты в НРД</h2>
<labelstyle="margin:0">Депозитарный код<inputtype="text"name="deponent_code"value="{{if .Settings.NSD.DeponentCode}}{{.Settings.NSD.DeponentCode}}{{else if .Suggest}}{{.Suggest.DeponentCode}}{{end}}"placeholder="MC0000000000"style="padding:8px;width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;margin-top:4px"></label>
<labelstyle="margin:0">Депозитарный счёт<inputtype="text"name="account_id"value="{{if .Settings.NSD.AccountID}}{{.Settings.NSD.AccountID}}{{else if .Suggest}}{{.Suggest.AccountID}}{{end}}"placeholder="HL000000000C"style="padding:8px;width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;margin-top:4px"></label>
<labelstyle="margin:0">Раздел счёта<inputtype="text"name="section_id"value="{{if .Settings.NSD.SectionID}}{{.Settings.NSD.SectionID}}{{else if .Suggest}}{{.Suggest.SectionID}}{{end}}"placeholder="36MC0000000000F00"style="padding:8px;width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;margin-top:4px"></label>
<labelstyle="margin:0">Депозитарный код<inputtype="text"name="deponent_code"value="{{if .Settings.NSD.DeponentCode}}{{.Settings.NSD.DeponentCode}}{{else if .Suggest}}{{.Suggest.DeponentCode}}{{end}}"placeholder="MC0000000000"style="width:100%;margin-top:4px"></label>
<labelstyle="margin:0">Депозитарный счёт<inputtype="text"name="account_id"value="{{if .Settings.NSD.AccountID}}{{.Settings.NSD.AccountID}}{{else if .Suggest}}{{.Suggest.AccountID}}{{end}}"placeholder="HL000000000C"style="width:100%;margin-top:4px"></label>
<labelstyle="margin:0">Раздел счёта<inputtype="text"name="section_id"value="{{if .Settings.NSD.SectionID}}{{.Settings.NSD.SectionID}}{{else if .Suggest}}{{.Suggest.SectionID}}{{end}}"placeholder="36MC0000000000F00"style="width:100%;margin-top:4px"></label>
</div>
<divstyle="display:flex;gap:8px;flex-wrap:wrap"><buttontype="submit"class="btn">Сохранить</button>{{if .Settings.Fancy.Server}}<buttontype="submit"class="btn"formaction="/admin/setup/fancy/detect"style="background:var(--card);color:var(--text);border:1px solid var(--border-strong,#c9cdd8)">Определить из DEPO</button>{{end}}</div>
<pstyle="margin:2px 0 0">Адрес и логин модуля неторговых поручений — у вашего администратора QUIK. Если модуля ещё нет, его подключает ARQA Technologies — письмо для них готово ниже.</p>
<p>Адрес и логин модуля неторговых поручений — у вашего администратора QUIK. Если модуля ещё нет, его подключает ARQA Technologies — письмо для них готово ниже.</p>
<p>СКЗИ «Валидата Клиент L» проверяет подписи НРД на квитанциях и сообщениях и нужно для работы с ключами и сертификатами (раздел «Ключ»).</p>
{{if .ValidataVer}}
<p>✓ Валидата установлена вместе с bj: версия {{.ValidataVer}}, каталог <code>/opt/Validata/VDCSP</code>. Ничего настраивать на этом шаге не нужно.</p>
<divclass="wiz-ok"><iclass="wiz-ic"></i><span>Валидата установлена вместе с bj — ничего настраивать не нужно.</span></div>
<pclass="muted"style="font-size:13px">bj работает с Валидатой через свою службу криптографии <code>bj-crypto</code>{{if eq .CryptoSvc "active"}} — она запущена{{else}} — сейчас она не запущена: служба ставится обновлением с сервера лицензий (раздел «Лицензия», кнопка «Обновить сейчас»), а работает с ключом, установленным в разделе «Ключ»{{end}}.</p>
{{else}}
<pstyle="color:var(--err)">Валидата на этом сервере не найдена.</p>
<pstyle="margin:2px 0 0">Через интеграционный шлюз НРД (ИШ) на этом сервере bj отправляет переводы и получает ответы. bj ставит и настраивает шлюз сам; доступ к тестовому и боевому контуру НРД открывает по заявке — письма готовы.</p>
<p>Через интеграционный шлюз НРД (ИШ) на этом сервере bj отправляет переводы и получает ответы. bj ставит и настраивает шлюз сам; доступ к тестовому и боевому контуру НРД открывает по заявке — письма готовы.</p>
{{template "igateInstall" .}}
<detailsstyle="margin-top:4px"><summarystyle="cursor:pointer;color:var(--accent);font-size:13px">Письма в НРД о доступе к контурам</summary>
<pid="igw-onyx"style="display:none;color:var(--err);font-size:13px;margin:0">Это адрес веб-сервиса НРД (ONYX), а не шлюза: bj работает через ИШ на этом сервере. Укажите адрес шлюза — обычно <ahref="#"id="igw-def">http://localhost:8090</a>.</p>
<h2><spanclass="dot {{if .Done.Certs}}ok{{else}}err{{end}}"></span>Ключ и сертификаты</h2>
<pstyle="margin:2px 0 0">Ключ электронной подписи организации для обмена с НРД. Его выдаёт Удостоверяющий центр Московской биржи: вам передадут архив ключа и пароль.</p>
{{if not .Done.NSD}}<pstyle="padding:8px 12px;border-radius:8px;background:var(--accent-weak);margin:10px 0 0">Ключ ставится в шлюз НРД — сначала установите <ahref="/admin/wizard?step=7">шлюз</a>.</p>{{end}}
<p>Ключ электронной подписи организации для обмена с НРД. Его выдаёт Удостоверяющий центр Московской биржи: вам передадут архив ключа и пароль.</p>
{{if not .Done.NSD}}<divclass="wiz-info"><span>Ключ ставится в шлюз НРД — сначала установите <ahref="/admin/wizard?step=7">шлюз</a>.</span></div>{{end}}
<pid="wiz-tz-hint"class="muted"style="margin:4px 0 0;font-size:13px">По нему — время в журналах, уведомлениях и сроках поручений. Время НРД — московское.</p>
<detailsstyle="margin-top:6px"{{ifnot.Done.Server}}open{{end}}><summarystyle="cursor:pointer;color:var(--accent);font-size:13px">{{if .Done.Server}}Свой сервер времени (обычно не нужно){{else}}Укажите сервер времени вашей сети — обычно контроллер домена или маршрутизатор{{end}}</summary>
<h2><spanclass="dot {{if .Done.Alerts}}ok{{else}}warn{{end}}"></span>Оповещения и резервные копии</h2>
<pstyle="margin:2px 0 0">bj напишет на почту, если НРД не отвечает, перевод застрял{{if .DepoLicensed}}, DEPO не обработал поручение{{end}} или истекает ключ, — и будет сам делать копии сервера. Обмен работает и без этого, но мы советуем настроить оба пункта.</p>
<p>bj напишет на почту, если НРД не отвечает, перевод застрял{{if .DepoLicensed}}, DEPO не обработал поручение{{end}} или истекает ключ, — и будет сам делать копии сервера. Обмен работает и без этого, но мы советуем настроить оба пункта.</p>
{{if not .InWizard}}<h2><spanclass="dot {{if and .OrgINN .OrgCode}}ok{{else}}err{{end}}"></span>Наша организация</h2>
<pclass="muted">Депозитарий — участник MOEX МОСТ, от имени которого bj отправляет и принимает переводы: ИНН передающего и зачисляющего депозитария в пакетах{{if mod "quik-mnp"}}, код отправителя и код фирмы в QUIK{{end}}. Выберите себя из справочника участников НРД или введите данные вручную.</p>{{end}}
{{if and .OrgINN .OrgCode}}<pstyle="margin:8px 0 0"><b>{{if .OrgName}}{{.OrgName}}{{else}}—{{end}}</b> · ИНН <code>{{.OrgINN}}</code> · код <code>{{.OrgCode}}</code>{{if not .Settings.NSD.OrgINN}} <spanclass="muted">(ИНН взят из справочника по коду)</span>{{end}}</p>
{{else}}<pstyle="margin:8px 0 0;color:var(--err)">Организация не задана — переводы не будут сформированы.</p>{{end}}
{{else if not .InWizard}}<pstyle="margin:8px 0 0;color:var(--err)">Организация не задана — переводы не будут сформированы.</p>{{end}}
{{if .Next}}{{if or .StepDone (not .StepRequired)}}<ahref="/admin/wizard?step={{.Next}}"class="btn"style="text-decoration:none">Далее →</a>{{else}}<ahref="/admin/wizard?step={{.Next}}"class="btn"style="background:var(--card);color:var(--text);border:1px solid var(--border-strong,#c9cdd8);text-decoration:none"title="Можно вернуться к этому позже">Пропустить пока →</a>{{end}}{{else}}<ahref="/admin/"class="btn"style="text-decoration:none">Перейти к работе →</a>{{end}}
{{if .Next}}{{if or .StepDone (not .StepRequired)}}<ahref="/admin/wizard?step={{.Next}}"class="btn wiz-next">Далее →</a>{{else}}<ahref="/admin/wizard?step={{.Next}}"class="btn wiz-skip"title="Можно вернуться к этому позже">Пропустить пока →</a>{{end}}{{else}}<ahref="/admin/"class="btn wiz-next">Перейти к работе →</a>{{end}}
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.