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:
@@ -248,7 +248,8 @@ func (s *Service) CreateLKTransfer(ctx context.Context, rc *RuntimeConfig, u LKU
|
||||
if emu, _ := lkEmulateNSD(rc); emu && lkEmuSender != nil {
|
||||
sender = lkEmuSender
|
||||
}
|
||||
if _, err := s.SendBuiltRequestVia(ctx, sender, req, lkInvestorUUID(u.Contract), nil); err != nil {
|
||||
resp, err := s.SendBuiltRequestVia(ctx, sender, req, lkInvestorUUID(u.Contract), nil)
|
||||
if err != nil {
|
||||
var nd *igw.NotDeliveredError
|
||||
if errors.As(err, &nd) {
|
||||
// НРД сейчас не принимает пакеты: заявка сохранена и уйдёт сама, когда связь восстановится
|
||||
@@ -262,6 +263,13 @@ func (s *Service) CreateLKTransfer(ctx context.Context, rc *RuntimeConfig, u LKU
|
||||
_ = lkMarkStatus(ctx, rc, id, "error")
|
||||
return res, fmt.Errorf("заявка сохранена, но не отправлена: %w", err)
|
||||
}
|
||||
if resp.Status == onecWaitStatus { // проверка поручения в 1С (onec_check.go)
|
||||
_ = lkMarkStatus(ctx, rc, id, "checking")
|
||||
return LKTransferResult{
|
||||
OK: true, RequestID: id, GUID: string(req.Header.GUID), Status: "checking",
|
||||
Message: "Заявка принята и проходит проверку. После неё будет отправлена в НРД. Итог появится в разделе «Мои заявки».",
|
||||
}, nil
|
||||
}
|
||||
_ = lkMarkStatus(ctx, rc, id, "sent")
|
||||
return LKTransferResult{
|
||||
OK: true, RequestID: id, GUID: string(req.Header.GUID), Status: "sent",
|
||||
|
||||
Reference in New Issue
Block a user