1С: проверка поручений МНП перед отправкой в НРД

Часть модуля onec-back, по умолчанию выключена, включается в настройках
(«Проверка поручений в 1С»). Исходящий перевод после блокировки бумаг в
МНП ждёт решения 1С и в НРД не уходит, пока 1С не подтвердит каждое
поручение; при отказе bj снимает поручения в QUIK с причиной из 1С и
отклоняет перевод в журнале и кабинете клиента.

- onec.instr / onec.instr_queue / onec.set_decision в базе bj: 1С читает
  очередь и пишет решение под логином onec_bj (только эти права); чтение
  очереди отмечает связь с 1С.
- bj-onec-admin (root, через bj-keymedia): логин onec_bj, вход только с
  IP 1С по TLS (pg_hba.conf), listen_addresses, ufw; revoke закрывает вход.
- onecLoop: отправка подтверждённых, отказы, снятие клиентом в QUIK,
  поручения из терминала, сроки решения и потеря связи — оповещения.
- Карточка заявки: блок «Проверка 1С», решение оператора вместо 1С.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-22 20:13:59 +03:00
parent e51962c5bb
commit 21d5f33394
13 changed files with 1598 additions and 5 deletions
+9
View File
@@ -107,6 +107,9 @@ func registerSetup(mux *http.ServeMux, a *admin, rc *RuntimeConfig, svc *Service
mux.HandleFunc("/admin/setup/lk-pull", h.lkPull)
mux.HandleFunc("/admin/setup/workhours", h.saveWorkHours)
mux.HandleFunc("/admin/setup/onec", h.saveOneC)
mux.HandleFunc("/admin/setup/onec/check", h.saveOneCCheck)
mux.HandleFunc("/admin/setup/onec/access", h.saveOneCAccess)
mux.HandleFunc("/admin/setup/onec/revoke", h.saveOneCRevoke)
mux.HandleFunc("/admin/setup/alerts-smtp", h.saveAlertsSMTP)
mux.HandleFunc("/admin/setup/alerts-smtp-test", h.testAlertsSMTP)
mux.HandleFunc("/admin/setup/alerts-zabbix", h.saveAlertsZabbix)
@@ -570,6 +573,7 @@ type SetupData struct {
Modules map[string]bool // какие лицензируемые модули разрешены (ключ = признак)
Features []LicenseFeatureView // признаки лицензии для карточки
Users UsersView // пользователи, роли, сессии
OneCCheck OneCCheckView // проверка поручений в 1С
Flash string
Error string
}
@@ -593,6 +597,8 @@ func HealthLabel(name string) string {
return "Автоматический режим M2M (решения, 16/1, форма 16)"
case "depo-job":
return "Обработка трансферных таблиц DEPO силами bj"
case "onec-check":
return "Проверка поручений в 1С"
}
return name
}
@@ -649,6 +655,9 @@ func (h *setupHandlers) setupData(w http.ResponseWriter, req *http.Request, flas
Flash: flash,
}
data.LKUsers, data.LKUsersError = lkUsersForSetup(h.rc)
if moduleAllowed(h.rc, "onec-back") {
data.OneCCheck = onecCheckView(req.Context(), h.rc)
}
if errVal := errMsgFromQuery(_q(w)); errVal != "" {
data.Error = errVal
}