From bbeb59e3bce4927946d2eb25f43b73516763560c Mon Sep 17 00:00:00 2001 From: zuevav Date: Wed, 7 Oct 2026 11:23:55 +0300 Subject: [PATCH] =?UTF-8?q?QUIK,=20=D0=9A=D1=80=D0=B8=D0=BF=D1=82=D0=BE?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D1=8F,=20=D0=9D=D0=A0=D0=94=20?= =?UTF-8?q?=E2=80=94=20=D1=81=D0=B2=D0=BE=D0=B4=D0=BA=D0=B0=20=C2=AB=D1=87?= =?UTF-8?q?=D1=82=D0=BE=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=B8=20=D0=BA=D0=B0=D0=BA=C2=BB=20=D1=81=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=85=D1=83,=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20?= =?UTF-8?q?=E2=80=94=20=D0=BF=D0=BE=D0=B4=20=C2=AB=D0=9F=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B8=D1=82=D1=8C=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - QUIK: подключение к модулю (сервер, база, логин, проверено), как bj работает с QUIK (и отклонения из расширенных), торговый счёт, поручения из терминала, справочник получателей; формы и проверка МНП — под «Перенастроить». - Криптография: «Подпись работает / ключ скоро закончится / ключ не подключён» с кнопкой установки; ключ организации (срок, заменить), СКЗИ, bj-crypto, сертификаты НРД в справочнике шлюза; остальное — под «Перенастроить» (без повтора плашки «ключ не подключён»). - НРД: организация, реквизиты, кто отвечает на переводы, шлюз (версия, активный контур, канал, ключ) и папки по сети — из тех же запросов, что блок шлюза (события bj-igate-status / bj-igate-share, без лишних обращений к root-обработчику); формы — под «Перенастроить». - «Перенастроить» раскрыто само, если что-то не настроено. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi --- .../lkgateway/web/templates/admin_setup.html | 26 ++++++-- .../lkgateway/web/templates/part_igate.html | 4 +- .../lkgateway/web/templates/part_status.html | 66 +++++++++++++++++++ 3 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 internal/lkgateway/web/templates/part_status.html diff --git a/internal/lkgateway/web/templates/admin_setup.html b/internal/lkgateway/web/templates/admin_setup.html index 57666de..e127c1d 100644 --- a/internal/lkgateway/web/templates/admin_setup.html +++ b/internal/lkgateway/web/templates/admin_setup.html @@ -105,8 +105,14 @@ {{/* ============ QUIK МНП ============ */}}

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

+ {{template "quikStatus" .}} +
+
+ Перенастроитьподключение к модулю, как bj работает с QUIK, поручения из терминала, расширенные настройки, проверка модуля {{template "quikSection" .}} {{if .Settings.Quik.Server}}{{template "mnpCheck" .}}{{end}} +
+
{{end}}{{/* /AdvancedUnlocked — конец перспективных модулей Fancy/QUIK */}} @@ -242,7 +248,11 @@ {{/* ============ КРИПТОГРАФИЯ ============ */}}

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

- {{template "verline" (.Versions.Get "crypto-service.jar")}}{{template "verline" (.Versions.Get "validata")}}{{template "verline" (.Versions.Get "java")}} + {{template "cryptoStatus" .}} +
+
+ Перенастроитьключ организации, проверка СКЗИ, сертификаты НРД в справочнике шлюза, версии +
{{template "verline" (.Versions.Get "crypto-service.jar")}}{{template "verline" (.Versions.Get "validata")}}{{template "verline" (.Versions.Get "java")}}
{{$kc := orgKeyCert}} {{if and cryptoReady $kc}} @@ -253,12 +263,6 @@ Установить новый ключ → {{else}}

Перевыпустили ключ (новый сертификат) или нужен ключ другого контура — заменить ключ: bj поможет подключить флешку или записать новый ключ из архива.

{{end}}
- {{else}} -
-

Ключ организации не подключён

-

Пошаговая установка: флешка с ключом или архив ключа от НРД с паролем → справочник сертификатов → проверка подписи → готово.

- Установить ключ → -
{{end}}
@@ -336,12 +340,18 @@ {{end}}
{{end}} + +
{{/* ============ НРД ============ */}}

НРД

{{template "verline" (.Versions.Get "ish")}} + {{template "nsdStatus" .}} +
+
+ Перенастроитьорганизация, реквизиты в НРД, кто отвечает на переводы, шлюз и контуры, папки шлюза по сети {{template "orgSection" .}} {{template "nsdRequisites" .}} {{template "m2mAutoCard" (withRet . "")}} @@ -397,6 +407,8 @@
+ +
{{/* ============ ЛИЧНЫЙ КАБИНЕТ ============ */}} diff --git a/internal/lkgateway/web/templates/part_igate.html b/internal/lkgateway/web/templates/part_igate.html index f074ade..5984873 100644 --- a/internal/lkgateway/web/templates/part_igate.html +++ b/internal/lkgateway/web/templates/part_igate.html @@ -194,7 +194,7 @@ return rows.join(''); } function show(d){ if(!d.ok){ stl.innerHTML=bad(d.error||'состояние не получено'); return; } - cur=d; + cur=d; try{ window.dispatchEvent(new CustomEvent('bj-igate-share',{detail:d})); }catch(e){} if(d.manual){ stl.innerHTML=ok('папки открыты вручную (smb.conf) для '+esc(d.user||'—')+' — bj их не меняет'); f.hidden=true; return; } var a=d.access||{}, g=a.groups||[], u=a.users||[]; acc.innerHTML=(g.length||u.length)?('Доступ получат: '+(g.length?'группы '+g.map(esc).join(', ')+'':'')+(g.length&&u.length?'; ':'')+(u.length?'сотрудники '+u.map(esc).join(', ')+'':'')+'. Список — из Настройка → Пользователи, обновляется сам.'):'В bj пока нет групп и сотрудников домена с доступом — добавьте их в Настройка → Пользователи («Сотрудники из домена»).'; @@ -231,7 +231,7 @@ var st=null; function load(){ fetch('/admin/setup/igate/status',{cache:'no-store'}).then(function(r){return r.json()}).then(function(d){ - st=d; + st=d; try{ window.dispatchEvent(new CustomEvent('bj-igate-status',{detail:d})); }catch(e){} // сводка раздела «НРД» if(!d.ok){ head.innerHTML=bad(d.error); return; } var ri=document.getElementById('ig-reinst'), bb=document.getElementById('ig-bnd'), bv=document.getElementById('ig-bnd-v'); var running=d.installed&&d.engine==='Running'; diff --git a/internal/lkgateway/web/templates/part_status.html b/internal/lkgateway/web/templates/part_status.html new file mode 100644 index 0000000..644f25b --- /dev/null +++ b/internal/lkgateway/web/templates/part_status.html @@ -0,0 +1,66 @@ +{{/* Сводки разделов «Настройки»: что настроено и как — одним взглядом; формы — под «Перенастроить». + Тот же принцип, что у «Обмена с DEPO» (fancyStatus). */}} + +{{define "quikStatus"}}{{$q := .Settings.Quik}}{{$ok := and $q.Server $q.Verified}} +
+
+
{{if $ok}}QUIK подключён{{else if $q.Server}}Подключение к QUIK не проверено{{else}}QUIK не подключён{{end}} + {{if $ok}}{{if $q.WritesEnabled}}Чтение и запись — боевая работа: bj сам блокирует бумаги, списывает и зачисляет.{{else}}Только чтение — bj читает данные, в QUIK ничего не меняет.{{end}} Изменить — «Перенастроить» ниже.{{else if $q.Server}}Проверьте подключение в «Перенастроить» — «Сохранить и проверить».{{else}}Подключите модуль неторговых поручений — мастером настройки (шаг «QUIK») или в «Перенастроить».{{end}}
+ {{if not $q.Server}}Открыть мастер{{end}}
+ {{if $q.Server}} +
+
Модуль неторговых поручений
{{$q.Server}}{{if $q.Port}}:{{$q.Port}}{{end}}{{if $q.Database}}, база {{$q.Database}}{{end}}, логин {{$q.User}}{{if $q.Verified}} ✓ проверено{{if not $q.LastAt.IsZero}} {{msk $q.LastAt}}{{end}}{{else}} ✗ не проверено{{end}}
+
Как bj работает с QUIK
{{if $q.WritesEnabled}}Чтение и запись — боевая работа{{else}}Только чтение{{end}}{{with quikModeCustom $q}}
⚠ {{.}}
{{end}}{{if $q.Emulate}}
⚠ {{if devOn}}режим имитации — в МНП ничего не пишется{{else}}записи в QUIK сейчас не выполняются{{end}}
{{end}}
+ {{if $q.WritesEnabled}}
Торговый счёт
{{if $q.Account}}{{$q.Account}}{{else}}✗ не задан{{end}}
{{end}} +
Поручения клиентов из QUIK
{{if $q.PollTerminal}}принимаются — из терминала и мобильного приложения; оператору приходит уведомление{{else}}нет — клиенты подают поручения через депозитарий{{end}}
+
Справочник получателей
{{quikRecipientsInfo}}
+
+ {{end}} +
+{{end}} + +{{define "cryptoStatus"}}{{$kc := orgKeyCert}}{{$ok := and cryptoReady $kc}} +
+
+
{{if $ok}}{{if lt (index $kc "Days") 30}}Ключ организации скоро закончится{{else}}Подпись работает{{end}}{{else}}Ключ организации не подключён{{end}} + {{if $ok}}СКЗИ «Валидата» установлена, ключ организации подключён — документы для НРД подписываются.{{if lt (index $kc "Days") 30}} Получите новый ключ в Удостоверяющем центре и установите его.{{end}}{{else}}Пошаговая установка: флешка с ключом или архив ключа от НРД с паролем → справочник сертификатов → проверка подписи.{{end}}
+ {{if or (not $ok) (lt (index $kc "Days") 30)}}{{if $ok}}Установить новый ключ →{{else}}Установить ключ →{{end}}{{end}}
+
+ {{if $kc}}
Ключ организации
«{{index $kc "Owner"}}» · выдан {{index $kc "Issuer"}} · действует до {{index $kc "Until"}} (осталось {{index $kc "Days"}} дн.) · заменить ключ
{{end}} + {{with .Versions.Get "validata"}}
СКЗИ «Валидата Клиент L»
{{if .Version}}{{if cryptoReady}}✓ {{end}}{{.Version}}{{else}}✗ не определена{{end}}{{with .Detail}} · {{.}}{{end}}
{{end}} + {{with .Versions.Get "crypto-service.jar"}}
Проверка подписи (bj-crypto)
{{if .Version}}{{.Version}}{{else}}не определена{{end}}{{with .Err}} · {{.}}{{end}}
{{end}} +
Сертификаты НРД в справочнике шлюза
{{if .NSDCerts.Pending}}⚠ есть изменения к применению ({{.NSDCerts.Pending}}){{else if .NSDCerts.LastRun.IsZero}}ещё не сверялись{{else}}✓ сверены {{msk .NSDCerts.LastRun}}{{end}} · bj сверяет сам при запуске и раз в 6 часов
+
+
+{{end}} + +{{define "nsdStatus"}}{{$n := .Settings.NSD}}{{$a := .Settings.M2MAuto}}{{$org := and $n.OrgINN $n.OrgCode}}{{$req := and $n.DeponentCode $n.AccountID $n.SectionID}}{{$ok := and $org $req $n.IGWBaseURL}} +
+
+
{{if $ok}}Обмен с НРД настроен{{else}}Обмен с НРД настроен не до конца{{end}} + {{if $ok}}Организация, реквизиты и шлюз — ниже. Изменить — «Перенастроить».{{else}}Что не так — в строках ниже с ✗; поправить — в «Перенастроить» или мастером настройки.{{end}}
+
+
Организация
{{if $org}}{{if $n.OrgName}}{{$n.OrgName}}{{else}}—{{end}} · ИНН {{$n.OrgINN}} · код {{$n.OrgCode}}{{else}}✗ не задана{{end}}
+
Реквизиты в НРД
{{if $req}}код {{$n.DeponentCode}} · счёт {{$n.AccountID}} · раздел {{$n.SectionID}}{{else}}✗ не заданы{{end}}
+
Кто отвечает на переводы
{{if $a.Enabled}}bj сам — автоматически{{else}}Оператор — запасной режим{{end}}{{if not $a.ChangedAt.IsZero}} · с {{msk $a.ChangedAt}}{{end}}
+
Шлюз НРД
{{if $n.IGWBaseURL}}контур {{$n.Profile}} · проверяю шлюз…{{else}}✗ не настроен{{end}}
+
Папки шлюза по сети
проверяю…
+
+
+ +{{end}}