Commit Graph

524 Commits

Author SHA1 Message Date
fontvielle eb5f08dfa6 Поллер: отлов ответов НРД (анкета участника и неизвестные документы)
После отправки анкеты участника (#M2MPF) НРД присылает ответ, схему которого мы
ещё не разбираем. Фаза 1 — отловить его на боевом контуре:
- входящий с корнем M2MTransferParticipantForm сохраняется как подлинный XML и
  логируется отдельно (ответ НРД на анкету);
- любой неизвестный M2M-документ в default теперь тоже сохраняется (раньше молча
  пропускался), чтобы увидеть реальный тип/схему.
Файлы: /var/lib/bj/.bj/nsd-replies/<время>-<tag>-id<N>-<тип>.xml (последние 100).
Разбор ответа встроим в систему, когда увидим реальный документ на бою.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 17:28:13 +03:00
fontvielle bd1fe202f7 Портфель ДЕПО в ЛК: режим «для всех клиентов» + автозаполнение именования
- Кнопка «Включить для всех пользователей» с предупреждением: заполнение
  портфеля запускается для ВСЕХ открытых торговых счетов DEPO (по префиксу),
  договор ЛК выводится из счёта по шаблону — так же как в тесте с одним клиентом,
  только по торговым счетам. Поле AllClients; tick берёт пары из
  lkPortfolioAllPairs. Прежний режим «по списку» (Pairs) сохранён.
- Поля именования (префикс счёта, шаблон договора, раздел, место хранения)
  предзаполняются из базы DEPO (префикс — depoAccPrefix) и значений по умолчанию,
  остаются редактируемыми.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 17:24:11 +03:00
fontvielle 7947808b26 Анкета участника M2M: открывать внутри страницы НРД (раскрытие вниз)
Ссылка вела на отдельную страницу. В разделе «НРД» карточка «Регистрация
участника M2M» теперь раскрывается вниз (<details>) и показывает анкету в том же
окне через iframe того же origin (lazy — грузится при раскрытии). Отдельная
вкладка оставлена запасной ссылкой.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 16:41:16 +03:00
fontvielle e774fc8989 Анкета участника M2M: ссылка в разделе НРД + предзаполнение по фирме
- В «Настройка → НРД» добавлена карточка «Регистрация участника M2M» со ссылкой
  на /admin/setup/participant-form (раньше страница была только по URL).
- participantFormPrefill теперь заполняет анкету по реквизитам фирмы, а не только
  из автоопределения DEPO: берёт ИНН/коды из настроек НРД и наименования
  (полное/сокращённое/отображаемое/англ.) из справочника участников НРД
  (по MC-коду, затем по ИНН); DisplayName/Short подставляются, если пусты.
- org.go: добавлен handbookByINN.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 16:27:14 +03:00
fontvielle d10d39c94e ЕСИА Финанс: разметить обмен по моделям pull/push, Callback свернуть
Поля задавались «в двух местах» и выглядели нелогично. На деле это две разные
модели обмена заявками, а не дубли:
- pull — bj сам обращается к API ЛК (per-env, HTTP Basic), забирает заявки и
  туда же PATCH-ит статус (lkActiveEndpoint/OnLKOutcome);
- push — ЛК сам шлёт заявки на bj (POST /claims/), статус bj возвращает на
  единый CallbackURL (service.go).

Блок API ЛК помечен как «(pull) — основная модель». Поле Callback URL помечено
как push-модель и свёрнуто в <details> (развёрнуто только если уже заполнено) —
при подключении через API оно не используется. Поведение и структура настроек
не изменены, только текст и вёрстка.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 15:58:25 +03:00
fontvielle 40245dd78a Мастер, шаг ключа: список установленных сертификатов свёрнут
На шаге «Ключ и сертификаты» таблица установленных сертификатов (сотни строк)
разворачивала страницу. Обёрнута в <details>: по умолчанию свёрнута, счётчик
виден в заголовке, раскрывается кликом. На странице «Настройка» этот список уже
свёрнут — приведено к тому же виду.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 14:48:36 +03:00
fontvielle 1659a15f81 Мастер: «Далее» на шаге ключа сразу после установки + надёжная сверка справочника
После успешной установки ключа на шаге «Ключ и сертификаты» не появлялась
кнопка «Далее»: шаг считался выполненным только по асинхронной сверке
справочника ИШ (nsdCertsCheck), а она сразу после установки отваливалась по
таймауту — root-воркер был занят перезапуском ИШ и повторной активацией
профиля. Ключ при этом уже подключён и подписывает.

- refreshCertStore: повторяет сверку до 5 раз (воркер освобождается — проходит),
  вместо одной попытки с таймаутом.
- Шаг 8 в мастере выполнен, если справочник собран ИЛИ мастер ключа прошёл до
  конца (ИШ подтвердил подпись) — «Далее» появляется сразу, не дожидаясь сверки.
  Добавлен потокобезопасный keyWizardState.installed().

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 14:32:58 +03:00
fontvielle ed2d0ce4e5 Пересборка справочника: выбирать подписанта по действующему ключу (чинит ложный E070004C)
crestor выбирал сертификат подписанта ПСП по имени владельца. Если у владельца
в справочнике несколько сертификатов (перевыпуск ключа — у клиента так бывает),
crestor брал первый по имени и мог попасть на старый с истёкшим сроком закрытого
ключа → E070004C «Ключ ЭП/закрытый ключ шифрования уже истёк», хотя на носителе
свежий действующий ключ.

bj-validata-rebuild-gdbm: при E070004C перебирает leaf-сертификаты с НЕ истёкшим
сроком закрытого ключа (свежие первыми, до 25) и указывает подписанта явно
(-signer -dercer). Правильный (чей закрытый ключ на носителе) даёт Результат: OK,
остальные — ошибку, идём дальше. Проверено на живой флешке клиента: справочник
пересобрался (cf9a5713), signer выбран верный.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 13:14:24 +03:00
fontvielle 83bf3f5b49 Шлюз НРД: компактнее шапка — короче интро шага и строка про версию ИШ
Верх страницы «Шлюз НРД» был перегружен текстом. Интро шага 7 сокращено до
одной строки; пояснение про версию ИШ в карточке «Шлюз на этом сервере» ужато
в одну тонкую строку, заголовок поджат. Смысл сохранён, статус ИШ стал заметнее.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 11:53:40 +03:00
fontvielle 5757e1e46a Папки шлюза: пароль генерируется и показывается сразу при загрузке (когда папки ещё не открыты)
Раньше поле пароля было пустым с подсказкой «пусто — прежний», и оператору
приходилось нажимать «Сгенерировать». Теперь при открытии страницы, если папки
шлюза ещё не открыты по сети, bj сразу подставляет в поле новый надёжный пароль
(genPw, 16 символов, crypto.getRandomValues) и показывает его. Оператор может
оставить его или вписать свой. Если папки уже открыты — поле остаётся пустым
(пустое = оставить прежний пароль при повторном сохранении).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 11:47:35 +03:00
fontvielle 365ec1196d Статус: карточка ключа организации — контур и пометка «ИСТЁК»; SMB-пароль папок шлюза — генерация и показ
Ключ организации на странице «Статус» теперь строится из своего сертификата
в справочнике активного профиля ИШ (ownStoreCerts), включая истёкший: карточка
показывает владельца, издателя, контур (боевой/тестовый) и срок. Истёкший ключ
виден явной пометкой «ИСТЁК» и отдельным заголовком, а не маскируется под
«ключ не подключён». Показать владельца ДО установки ключа нельзя — сертификата
нет в файлах флешки, он появляется в справочнике профиля только после установки.

Папки шлюза по сети (простой режим): кнопка «Сгенерировать» создаёт надёжный
пароль (16 символов, crypto.getRandomValues) прямо в поле, поле теперь видимое;
после сохранения пароль показывается один раз с кнопкой «Скопировать» —
записать, так как позже bj его не покажет. Пустое поле по-прежнему оставляет
прежний пароль при повторном сохранении.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 11:29:48 +03:00
fontvielle 847f858cd9 Релиз 2026.10.21.1 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 10:01:12 +03:00
fontvielle 42ae5ed12b Ключ: igate-traverse к staging (/var/lib/bj) — чинит ложное «нет local.pse»
Пересборку справочника crestor запускает igate, а /var/lib/bj был 0750 bj:bj —
igate не мог пройти в staging и выдавал ложное «нет local.pse». bj-server при
старте даёт /var/lib/bj traverse (0751) — доезжает обновлением. Воркер
bj-keymedia-install тоже даёт права и показывает реальную ошибку crestor вместо
спама «dropped older CRL» (для новых ISO). Убрана ошибочная подсказка про ГСЧ.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 10:00:24 +03:00
fontvielle 17b134dab3 Релиз 2026.10.20.20 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:51:42 +03:00
fontvielle 6e66bc1c86 ГСЧ: карточка видима по умолчанию, JS прячет только при подтверждённой готовности
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:51:04 +03:00
fontvielle be6073b874 Релиз 2026.10.20.18 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:37:19 +03:00
fontvielle 97f9568046 ГСЧ: фолбэк на недавний успешный сеанс, если воркер недоступен (чинит тест)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:36:43 +03:00
fontvielle 9a2479f06a Релиз 2026.10.20.17 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:35:12 +03:00
fontvielle 8d71543ac3 ГСЧ Валидаты: всегда живая проверка — если seed пропал (перезагрузка ВМ), мастер снова показывает датчик
Раньше готовность кэшировалась в памяти и не возвращалась в «не готов»: после
перезагрузки ВМ seed Валидаты пропадал, а bj рапортовал «готов» и прятал карточку
датчика — пересборка справочника падала без понятной причины. Теперь rngCheck
каждый раз проверяет живьём у воркера.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:34:33 +03:00
fontvielle 93d23dae79 Релиз 2026.10.20.16 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:30:17 +03:00
fontvielle c1f840081c Ключ: при ошибке пересборки справочника подсказать про датчик случайных чисел Валидаты
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:29:40 +03:00
fontvielle d9f6b056a6 Релиз 2026.10.20.15 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:23:08 +03:00
fontvielle 164e2c086e Ключ: при отказе подписи подсказка — возможно, справочник не от этого ключа
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:22:29 +03:00
fontvielle 48a6623f0a Релиз 2026.10.20.14 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:16:30 +03:00
fontvielle 62bae4e00a Ключ: не переспрашивать контур, если он выбран в мастере
Если контур НРД уже выбран в мастере (WantContour), на шаге «использовать ключ
с флешки» показываем его фиксированно («Боевой — выбран в мастере») с кнопкой
«Изменить», а не радио-вопросом заново. При расхождении с контуром по сертификату
— предупреждение.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:15:52 +03:00
fontvielle 8e6c3e2700 Релиз 2026.10.20.13 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:12:01 +03:00
fontvielle 3d3d2e2ffe Ключ: подсказка — USB 3.0-флешке нужен контроллер USB 3.1 (xHCI) в ВМ
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 17:11:21 +03:00
fontvielle 9134a5ef86 Релиз 2026.10.20.12 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:49:45 +03:00
fontvielle 0616f69518 Ключ: пояснение — имя папки справочника любое (spr1046/LAP_NEW), ищется по local.gdbm/local.pse
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:49:02 +03:00
fontvielle a79bc8d3c1 Релиз 2026.10.20.11 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:46:57 +03:00
fontvielle 55859292ef Ключ: режим «Подключить флешку» — по умолчанию (перепроверка не прыгала на «Сформировать»)
При отсутствии флешки по умолчанию выбирался режим «Сформировать на новой
флешке», и после «Перепроверить флешку» экран прыгал туда. Теперь по умолчанию
всегда «Подключить флешку» (пустое состояние внутри с кнопкой перепроверки).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:46:18 +03:00
fontvielle 21faec2e0a Релиз 2026.10.20.10 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:43:55 +03:00
fontvielle 3b375d2d1e Ключ: кнопка «Перепроверить флешку» + подсказка про проброс USB в ВМ; детект ловит USB-диск без разделов
- В режиме флешки — кнопка «↻ Перепроверить флешку» (и когда флешка есть, и когда нет)
  с индикатором «Ищу флешку…».
- Пустое состояние поясняет: на виртуальной машине USB нужно пробросить в гостя.
- listFlashDrives ловит и съёмный диск с ФС без таблицы разделов (type=disk).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:43:17 +03:00
fontvielle 59e88e13f9 Релиз 2026.10.20.9 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:39:27 +03:00
fontvielle 2cba793faa Ключ подписи: в мастере — что должно быть на флешке
Свёрнутый блок «Что должно быть на флешке» в шаге «Ключ подписи»: ключ *.vdk
(обязательно), папка spr<N> с local.gdbm+local.pse (обязательно), *.crl/key.reg/
vdkeys необязательны; раскладка любая — bj ищет *.vdk и spr<N>/local.gdbm в любой
папке (как в bj-keymedia-install stage-media).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 16:38:45 +03:00
fontvielle a81c4c569f Релиз 2026.10.20.8 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:59:03 +03:00
fontvielle a13c9d6184 QUIK: автоподбор счёта — устойчив к разным колонкам; отчёт свёрнут
- quikDetectAccounts: Export не имеет колонки QuikFirm (ошибка 207 Invalid column
  name) — запросы по Actions/Export выполняются по отдельности, источник без нужной
  колонки пропускается.
- «Полный ответ сервера (последняя проверка)» свёрнут в details, чтобы не прятать
  настройки ниже.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:58:27 +03:00
fontvielle 9397af94a9 Релиз 2026.10.20.7 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:55:36 +03:00
fontvielle 571a7d0e67 QUIK: кнопка «Определить из QUIK» — обычная кнопка + fetch (submit форма перехватывала)
Кнопка была submit внутри формы режима, у которой обработчик submit делает
preventDefault — клик ничего не отправлял. Теперь type=button + fetch на
/admin/setup/quik/detect-account (X-BJ-Ajax), результат в строке статуса,
найденный счёт подставляется в поле.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:54:56 +03:00
fontvielle 40e2c33860 Релиз 2026.10.20.6 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:48:13 +03:00
fontvielle b654c70d49 QUIK: автоподбор торгового счёта фирмы из БД МНП
Кнопка «Определить из QUIK» у поля «Торговый счёт для поручений» (режим
чтение+запись). bj читает distinct Account из Actions/Export по коду фирмы
(QuikFirm/FirmID = код участника): один счёт — подставляет, несколько —
показывает на выбор, нет истории — просит ввести вручную. Только чтение.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:47:35 +03:00
fontvielle f900cf3877 Релиз 2026.10.20.5 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:34:31 +03:00
fontvielle 801f1d722f DEPO: выдавать bj_user право на ВСЕ процедуры (иначе проверка их не видит)
Причина «нет процедур» при успешной установке: проверка идёт логином bj_user, а
OBJECT_ID под ним возвращает NULL для объектов без прав — FTV_M2M_JOB виден (ему
выдан EXECUTE), 4 FTV_M2M_PROCESS_* нет. Процедуры установлены и работают (JOB
вызывает их по цепочке владения dbo), но проверка их не видела.
Теперь установка и скачиваемый скрипт выдают GRANT EXECUTE на все 5 процедур.
Убрана ложная блокировка установки по отсутствию пользователя SYSDBA (CREATE
проходит и без него; строка EXECUTE AS проверяется в рантайме).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 15:33:51 +03:00
fontvielle bf26495b6f Релиз 2026.10.20.4 (stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 14:21:48 +03:00
fontvielle a3abcd5412 DEPO: процедуры с EXECUTE AS — проверка пользователя SYSDBA, понятная ошибка
Процедуры FTV_M2M_PROCESS_* содержат EXECUTE AS USER=SYSDBA; SQL Server требует
этого пользователя при CREATE (FTV_M2M_JOB без EXECUTE AS создаётся, а 4 PROCESS_* — нет).
- «Проверить возможности» проверяет наличие пользователя EXECUTE AS (из текста процедур)
  и блокирует установку с понятным сообщением, если его нет.
- Ошибка установки сохраняется в статус (не мелькает флешем) с подсказкой про SYSDBA.
- Подсказка добавлена и в мастере при «Подготовить».

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 14:21:11 +03:00
fontvielle 8a298ae074 Релиз 2026.10.20.3 (stable): версии компонентов
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 14:13:35 +03:00
fontvielle eef6c9d996 DEPO: процедуры ставятся в мастере «Подготовить» + правка под клиента
- «Подготовить» в мастере (step 3, режим «дать логин администратора») теперь ставит
  и процедуры обработки bj2depo (CREATE OR ALTER) + GRANT, не только логин/таблицы/джобу.
- Скачиваемый скрипт мастера включает процедуры.
- Тексты процедур редактируются под клиента (Настройка → Обмен DEPO → Процедуры):
  сохранённый вариант используется при установке и при «Подготовить». Пусто/совпадение
  со встроенным — исходная версия.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 14:12:54 +03:00
fontvielle 45edbdbae6 Релиз 2026.10.20.2 (stable): версии компонентов
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 13:57:19 +03:00
fontvielle 045dfac6c7 DEPO: установка процедур bj2depo из bj (проверка возможностей + применение)
Процедуры FTV_M2M_PROCESS_* и FTV_M2M_JOB встроены в bj (depoprocs/*.sql).
В разделе «Учёт DEPO» карточка «Процедуры обработки bj2depo»:
- «Проверить возможности» — подключение, это ли база DEPO, какие процедуры
  установлены, есть ли право CREATE PROCEDURE и логин bj в базе (ничего не меняет);
- «Установить» — логином администратора SQL (разово, не сохраняется) выполняет
  CREATE OR ALTER в порядке WIRING→OPERATION→EVENTS→CREATE→JOB и GRANT EXECUTE
  на FTV_M2M_JOB логину bj; без прав — отказ без изменений;
- скачивание единого скрипта для ручной установки в SSMS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 13:56:40 +03:00
fontvielle 63fbb64012 Релиз 2026.10.20.1 (stable): версии компонентов
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-20 12:14:27 +03:00