Первичная настройка, часть 1: префикс торгового счёта DEPO — настройка с подсказкой по учёту (был зашит «ВТНКЦ» в 7 запросах); шаг 8 — адрес ИШ вместо ONYX, профили prod-gost/prod-rsa (пункт prod уводил bj в имитацию), без неиспользуемого контейнера, перезапуск bj после смены контура; реквизиты НРД на шаге 4; точная проверка процедур bj2depo и таблиц Fancy M2M; QUIK — объекты M2M и справочник получателей, без зашитого IP; сертификаты из справочника ИШ (FindCertificates — заглушка), уведомления о сроке за 30/14/7/3/1 день; тексты мастера, нумерация, режим разработки; уникальные id оповещений с русскими заголовками

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-05 16:04:43 +03:00
parent 9360543589
commit fdf0ddd498
37 changed files with 807 additions and 129 deletions
+27
View File
@@ -113,3 +113,30 @@ func (h *setupHandlers) saveOrg(w http.ResponseWriter, r *http.Request) {
}
setupFlash(w, r, msg)
}
var nsdReqRe = regexp.MustCompile(`^[A-Z0-9]{4,30}$`)
// saveNSDRequisites — POST /admin/setup/nsd-requisites: депозитарный код, счёт и раздел организации в НРД
// (место хранения бумаг в пакетах). В мастере — на шаге «Организация», рядом с кодом и ИНН.
func (h *setupHandlers) saveNSDRequisites(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "method", http.StatusMethodNotAllowed)
return
}
s := h.rc.Snapshot().NSD
dep := strings.ToUpper(strings.TrimSpace(r.FormValue("deponent_code")))
acc := strings.ToUpper(strings.TrimSpace(r.FormValue("account_id")))
sec := strings.ToUpper(strings.TrimSpace(r.FormValue("section_id")))
for _, v := range []struct{ name, val string }{{"депозитарный код", dep}, {"депозитарный счёт", acc}, {"раздел счёта", sec}} {
if v.val != "" && !nsdReqRe.MatchString(v.val) {
setupFlash(w, r, "Реквизиты НРД: "+v.name+" — латинские буквы и цифры, без пробелов")
return
}
}
s.DeponentCode, s.AccountID, s.SectionID = dep, acc, sec
if err := h.rc.UpdateNSD(s); err != nil {
setupFlash(w, r, "Реквизиты НРД: ошибка сохранения: "+err.Error())
return
}
setupFlash(w, r, "Реквизиты НРД сохранены: код "+pick(dep, "—")+", счёт "+pick(acc, "—")+", раздел "+pick(sec, "—"))
}