Справочник M2M: ручная загрузка файла в формате НРД
Форма «Загрузка справочника из файла» на /admin/handbook принимает подлинный формат НРД (hk:M2MTransferHandbook, windows-1251 — тот же, что приходит пакетом #M2MTH и который отдаёт кнопка «XML»). Разбор и сохранение идут тем же путём, что у поллера при ответе НРД: nsdxml.Unmarshal → writeHandbookRawXML (сырой XML для байт-в-байт выгрузки) → saveHandbookEx (плоский JSON) → перезапись FTV_M2M_HANDBOOK в DEPO → синхронизация получателей в МНП. На сервер лицензий ручной файл НЕ рассылается (saveHandbookEx push=false): справочник одного стенда не должен становиться облачным для всех клиентов. Нужно для закрытого контура и когда шлюз к НРД недоступен. - handbook_import.go: обработчик importHandbook (POST /admin/handbook/import) - nsdpoller.go: saveHandbook → saveHandbookEx(hb, push) - admin.go: маршрут import, поле Flash, renderHandbook читает ?flash= - admin_handbook.html: карточка загрузки + вывод flash Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XG3zNMMf2LMoDpXo22mwMX
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
{{define "content"}}
|
||||
{{if .Flash}}
|
||||
<div class="card" style="border-left:4px solid var(--accent,#2d6cdf)">
|
||||
<div style="font-size:14px">{{.Flash}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="card">
|
||||
<h2>Справочник участников M2M</h2>
|
||||
<p class="muted">Актуальная карта участников сервиса MOEX МОСТ (получена от НРД пакетом <code>#M2MTH</code>): ИНН, код участника (MC/EC/…), тип и наименование. Используется для сопоставления контрагента с кодом участника.
|
||||
@@ -12,6 +17,15 @@
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0">Загрузка справочника из файла</h2>
|
||||
<p class="muted" style="margin-top:0">Если шлюз к НРД недоступен, справочник можно загрузить файлом в формате НРД (<code>hk:M2MTransferHandbook</code>, windows-1251 — тот же, что приходит пакетом <code>#M2MTH</code> и который отдаёт кнопка «XML»). Файл заменит текущий справочник, перезапишет таблицу в DEPO и обновит получателей в МНП.</p>
|
||||
<form method="post" action="/admin/handbook/import" enctype="multipart/form-data" style="display:flex;gap:8px;align-items:center;flex-wrap:wrap">
|
||||
<input type="file" name="handbook" accept=".xml,text/xml,application/xml" required>
|
||||
<button class="btn" type="submit">Загрузить</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{{if or .Result.Found .Result.Err}}
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0">Результат обработки в Fancy</h2>
|
||||
|
||||
Reference in New Issue
Block a user