{{/* Раздел «Обмен Fancy» — один и тот же в «Настройка → Обмен Fancy» и на шаге 3 мастера настройки (данные — SetupData). Правки — только здесь. */}} {{define "fancySection"}}

Подключение к серверу БД клиента

Сервер учётной базы Fancy DEPO: картотека лиц, счета и договоры, остатки, опции (признак квалифицированного инвестора), трансферные таблицы обмена. Поддерживаются Microsoft SQL Server и PostgreSQL. База указывается ниже, в карточке «Трансферные таблицы DEPO».

{{if .Settings.Fancy.Server}}{{template "accPrefix" .}}{{end}}

Трансферные таблицы DEPO

Через эти таблицы bj обменивается с учётной системой DEPO: поручения FTV_M2M и их строки FTV_M2M_LINES, события FTV_M2M_EVENTS, справочник участников НРД FTV_M2M_HANDBOOK. Таблицы создаются в базе DEPO на сервере из подключения выше ({{if .DepoTables.Postgres}}PostgreSQL{{else}}Microsoft SQL Server{{end}}). Создание можно повторять: добавляются только недостающие таблицы, колонки и индексы, данные не меняются.

{{if eq .Settings.Fancy.DepoTablesMode "auto"}}
Логин с правами на базу {{.DepoTables.DB}}
{{if .DepoTables.Postgres}}Владелец базы или суперпользователь.{{else}}Роль db_owner в базе (или db_ddladmin + db_securityadmin).{{end}} Если оставить поля пустыми, bj попробует своим логином {{.DepoTables.User}}.
{{else if eq .Settings.Fancy.DepoTablesMode "script"}}
Скрипт для администратора СУБД — скачать {{.DepoTables.ScriptFile}}
{{.DepoTables.Script}}
{{end}}
логином bj: таблицы на месте, колонки совпадают, есть права на чтение и запись
{{if .Settings.Fancy.DepoTablesCheck}}

{{if .Settings.Fancy.DepoTablesCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoTablesCheck}} ({{.Settings.Fancy.DepoTablesCheckAt.Format "02.01.2006 15:04"}})

{{end}}

Где запускается обработка трансферных таблиц DEPO

Поручения и события, которые bj пишет в FTV_M2M*, обрабатывает процедура {{.DepoJob.Proc}} в базе DEPO. Выберите, кто её запускает, выполните инструкцию и нажмите «Проверить готовность» — без зелёной отметки обмен с DEPO работать не будет.

Процедура обработки выполняется от имени пользователя базы DEPO (у разработчика Fancy это SYSDBA). У клиента такого пользователя может не быть или он называется иначе: «Проверить готовность» проверит, что он есть в базе.

{{if eq .Settings.Fancy.DepoJobMode "bj"}}
Инструкция для администратора SQL клиента — выполнить один раз:
{{.DepoJob.GrantScript}}
{{else if eq .Settings.Fancy.DepoJobMode "sql-auto"}}
Создать джобу {{.DepoJob.Name}} — SQL Server Agent должен быть запущен. Логин администратора SQL (sysadmin, например sa) используется один раз и не сохраняется; пусто — bj попробует своим логином.
Без логина администратора: выдать логину bj роль оператора SQL Agent (скрипт)
{{.DepoJob.AgentRights}}
{{else if eq .Settings.Fancy.DepoJobMode "sql-manual"}}
Инструкция для администратора SQL клиента — создать джобу (SQL Agent должен быть запущен, служебная учётная запись Agent должна иметь право выполнять процедуру): Скачать скрипт bj-depo-job-mssql.sql
{{.DepoJob.AdminScript}}
{{end}} {{if .Settings.Fancy.DepoJobMode}}
для вариантов с джобой bj пишет служебное событие BJ_PING и ждёт до 40 с, пока обработчик его отметит
{{if .Settings.Fancy.DepoJobCheck}}

{{if .Settings.Fancy.DepoJobCheckOK}}✓{{else}}✗{{end}} {{.Settings.Fancy.DepoJobCheck}} ({{.Settings.Fancy.DepoJobCheckAt.Format "02.01.2006 15:04"}})

{{end}} {{if .Settings.Fancy.DepoProcCheck}}

Обработка событий (процедуры): {{if .Settings.Fancy.DepoProcCheckOK}}✓{{else}}⚠{{end}} {{.Settings.Fancy.DepoProcCheck}}

{{end}} {{if and (eq .Settings.Fancy.DepoJobMode "bj") .Settings.Fancy.DepoJobLast}}

Последний вызов процедуры — {{.Settings.Fancy.DepoJobLast}}

{{end}} {{end}}
{{end}} {{define "verline"}}{{if .Title}}

{{.Title}}: {{if .Version}}{{.Version}}{{else}}не определена{{end}}{{with .Detail}} · {{.}}{{end}}{{with .Err}} · {{.}}{{end}}

{{end}}{{end}} {{/* Сводка «Обмен с DEPO» (Настройка): что подключено и проверено — одним взглядом; формы — под «Перенастроить». */}} {{define "fancyStatus"}}{{$f := .Settings.Fancy}}{{$ok := and $f.Server $f.DepoTablesCheckOK $f.DepoJobCheckOK}}
{{if $ok}}Обмен с DEPO работает{{else if $f.Server}}Обмен с DEPO настроен не до конца{{else}}Учёт DEPO не подключён{{end}} {{if $ok}}Подключение, трансферные таблицы и обработка проверены — менять ничего не нужно. Если что-то изменилось на сервере DEPO — «Перенастроить» ниже.{{else if $f.Server}}Что не так — в строках ниже с ✗; поправить — в «Перенастроить».{{else}}Подключите базу DEPO — мастером настройки (шаг «Учёт DEPO») или в «Перенастроить».{{end}}
{{if not $f.Server}}Открыть мастер{{end}}
{{if $f.Server}}
База DEPO
{{$f.DepoDB}} на {{$f.Server}}{{if $f.Port}}:{{$f.Port}}{{end}} · {{if eq $f.DBType "postgres"}}PostgreSQL{{else}}Microsoft SQL Server{{end}}
Логин bj
{{$f.User}}
Торговые счета клиентов
номер начинается с {{depoAccPrefix}}
Признак ИИС
договор начинается с {{if $f.IISContractMarker}}{{$f.IISContractMarker}}{{else}}БРИИС{{end}} — такие переводы отклоняются кодом M2M06
Трансферные таблицы
{{if $f.DepoTablesCheckOK}}✓{{else}}✗{{end}} {{if $f.DepoTablesCheck}}{{$f.DepoTablesCheck}}{{else}}ещё не проверялись{{end}}{{if not $f.DepoTablesCheckAt.IsZero}} · {{msk $f.DepoTablesCheckAt}}{{end}}
Обработка событий
{{if $f.DepoJobCheckOK}}✓{{else}}✗{{end}} {{if eq $f.DepoJobMode "bj"}}запускает bj{{if $f.DepoJobEverySec}} каждые {{$f.DepoJobEverySec}} с{{end}}{{else if eq $f.DepoJobMode "sql-auto"}}задание SQL Server Agent {{depoJobNameOf $f}}{{else if eq $f.DepoJobMode "sql-manual"}}задание SQL Server Agent (создано администратором){{else}}не выбрано, кто запускает{{end}}{{if $f.DepoJobCheck}}
{{$f.DepoJobCheck}}{{if not $f.DepoJobCheckAt.IsZero}} · {{msk $f.DepoJobCheckAt}}{{end}}
{{end}}
{{if $f.DepoProcCheck}}
Процедуры обработки
{{if $f.DepoProcCheckOK}}✓{{else}}⚠{{end}} {{$f.DepoProcCheck}}{{if not $f.DepoProcCheckAt.IsZero}} · {{msk $f.DepoProcCheckAt}}{{end}}
{{end}}
{{end}}
{{end}}