Поле пути в мастере и в «Таблицах обмена» принимает строку подключения из настройки Fancy: «сервер:путь»,
«сервер/порт:путь», «\\сервер\D:\путь», «\\сервер\D$\путь», «inet://сервер:порт/путь» — адрес и порт
bj берёт из неё (в мастере поля заполняются сразу при вставке). Сетевая папка «\\сервер\папка\…» — ошибка с
подсказкой: Firebird открывает базу только на своём диске, адрес — компьютер с сервером Firebird.
Проверено мастером на копии базы: пустой адрес + «127.0.0.1/3050:путь» — подготовка и BJ_PING.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
Мастер, шаг «Учёт DEPO», и «Обмен с DEPO» в настройках: СУБД «Firebird» (Fancy на Firebird 2.5).
- Подключение: драйвер nakagami/firebirdsql, путь к файлу базы или псевдоним, WIN1251. Запросы bj к DEPO
(T-SQL) подключение переводит само (fancyfb.go): механически (dbo., TOP, ISNULL, GETDATE, LEN, N, exec)
вне строк и комментариев, точные тексты — fsql/fb.go (каталоги, LIKE [_], COUNT(*) OVER, SELECT без FROM,
PATINDEX); @имена — позиционные ?, GUID — в верхнем регистре. Системные запросы из кода — в fsql/depocatalog.go.
- «Подготовить» логином SYSDBA (depo_setup_fb.go): проверка базы и UDF Fancy, логин SYSDBA_BJ (Fancy даёт права
на документы логинам SYSDBA%; для Firebird — обычный пользователь), оператор-робот Fancy, кодировщик M2M,
привязки FTV_M2M_SETTINGS по признакам Fancy, таблицы, процедуры, права; обработку запускает bj.
«Получить скрипт» — то же для isql в WIN1251; письмо администратору, установка процедур, плашка обновления.
- Скрипты Firebird встроены (depoprocs/firebird, тест сверяет с deploy/); количества — DOUBLE PRECISION: из
диалекта 3 в базу диалекта 1 процедуру с NUMERIC(18,7) не создать.
- Проверено на копии базы Fancy (отдельный экземпляр bj): мастер с нуля — все проверки, BJ_PING; тестовый режим
DEPO — К1 Бубликов, зачисление и списание до исполнения без ошибок; очередь, справочник НРД.
Тест FBLive готовит на базе все запросы bj к DEPO: 94 из 101, оставшиеся 7 — ЛК и ручной ввод (следующий этап).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
Процедуры 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
- «Подготовить» в мастере (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
- справка «Внешние системы» — внутренняя (internaldocs); «API ЛК» и проверка callback ЛК — только при модуле ЛК
- отслеживание документации НРД (doc-watcher) — только в режиме разработки
- после подготовки DEPO справочник участников пишется входом по действию человека — не ждёт паузы после
прежнего неудачного входа («FTV_M2M_HANDBOOK не создана»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- шаг «База bj»: перенос на сервер PostgreSQL организации (проверка подключения, версии, прав, пустой базы;
pg_dump → psql; сверка числа строк по таблицам; переключение и перезапуск); прежняя база — запасная копия;
резервные копии: дамп внешней базы по её подключению, восстановление её не трогает
- все формы: пустые видимые обязательные поля называются по имени и подсвечиваются; DEPO — и на сервере
- «Обновить/Создать канал»: в фоне bj, ход по этапам с таймером (и после перезагрузки страницы), переходы
заблокированы до конца, в конце проверка, что шлюз загрузил канал; состояние ИШ во время записи — без
очереди к root-обработчику (страница больше не висит на «Проверяю…»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
На одном сервере бывает несколько баз DEPO (боевая и тестовая): общее имя
bj2depo давало ложную зелёную проверку — тестовой базе засчитывалось боевое
задание, а своё не создавалось.
- Имя задания — настройка DepoJobName; в мастере, пункт 3, поле «Имя задания
SQL Server Agent», по умолчанию bj2depo_<имя базы> (меняется вместе с базой,
пока его не поправили). Установки старше — bj2depo, как было.
- Скрипт до любых изменений останавливается, если задание с этим именем
обрабатывает другую базу или эту базу уже обрабатывает задание с другим именем
(иначе двойная обработка событий).
- Проверка задания сравнивает его базу (sp_help_jobstep) с базой bj.
Синтаксис проверен на SQL Server без выполнения (SET PARSEONLY); проверка
задания на боевом сервере — зелёная (bj2depo ↔ BJ_DEPO_DATA).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- «Подготовить» / «Проверить подключение» показывают ход: подключение логином
администратора, проверка, что это база DEPO, применение скрипта, вход логином bj,
таблицы обмена, задание, процедуры, «Готово». Сервер отдаёт шаги строками JSON
(stream=1), на ошибке — шаг с крестиком и причина, без перехода со страницы.
- Блоки «Администратор SQL — нужен один раз, не сохраняется» и «Логин bj — под ним
bj будет работать»: bj сохраняет и использует ровно то, что вписано; «другой
пароль»; на итоге шага — каким логином bj работает.
- Пауза 15 минут после неудачного входа в DEPO (логин/пароль отвергнуты) для
фоновых служб: с неверным паролем они за минуты блокировали логин на сервере
(CHECK_POLICY) у всех, кто им пользуется. Действия человека идут без паузы;
новый пароль — сразу; системное событие в «Новостях».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- EXEC(...) в T-SQL склеивает только строки и переменные: REPLACE/QUOTENAME внутри
давали ошибку 102, и SQL Server отклонял весь скрипт (.06.4–.06.6). Команда входа
собирается в @sql заранее; тест ловит вызовы функций внутри EXEC; живая проверка
синтаксиса на SQL Server без выполнения (SET PARSEONLY) — TestDepoSetupScriptParseLive.
- «Логин bj / Пароль bj» и в способе «Дать логин администратора»: на общем сервере
bj_user может быть занят другим bj — подготовка сменила бы ему пароль. Предупреждение.
- Показ скрипта на странице ничего не сохраняет. Логин и пароль из выданного скрипта
и из «Проверить подключение» хранятся черновиком (DepoNewUser/DepoNewPass) и
становятся рабочими только после успешного входа: службы bj с неверным паролем
за минуты блокировали логин на сервере (CHECK_POLICY) — у всех, кто им пользуется.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
Имя базы DEPO задаёт клиент — скрипт и подготовка логином администратора
работают только с ней. Автопоиск по серверу убран (экран, скрипт, подготовка,
проверка подключения, старый экран conn), выбор из нескольких найденных баз —
тоже. Вместо поиска — защита от опечатки: скрипт (SQL Server и PostgreSQL),
подготовка и проверка подключения сначала убеждаются, что в названной базе
есть учётные таблицы OD_FACES и OD_RESTS, иначе останавливаются, ничего не
меняя.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
СУБД → сервер, порт и имя базы → где запускать обработку обмена → логин
администратора или скрипт. Выбор плитками, под ним — поля выбранного способа
и своя кнопка. Скрипт показывается сразу и пересобирается при любой правке
выше (без кнопки «Обновить»), собирается и до адреса сервера (без адреса не
сохраняется).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
База DEPO — видимое поле (необязательно: пусто — найдётся по учётным таблицам), порт заполнен
по умолчанию. «Отдать скрипт администратору»: логин и пароль bj видны и меняются, «Показать
скрипт» выводит его на странице с кнопкой «Скопировать». В начале скрипта — блок «Проверьте
перед запуском»: @db и @pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Первая страница — только администратор (и восстановление из копии); ключ продукта — после создания
администратора, на шаге «Лицензия». Консоль первой загрузки ключ больше не спрашивает (для образа с
комплектом bj).
- «Подготовка модулей» начинает с проверки обновлений: есть — ставит (bj перезапускается, страница ждёт и
продолжает), нет — дальше; выпуск, который уже ставили, по кругу не ставится. Затем модули лицензии и
переход на «Время и сеть» (шаг 12) — часовой пояс клиент выбирает сам, шаг больше не проскакивает.
- Учёт DEPO одним шагом: bj сам находит базу Fancy DEPO на сервере (по таблицам OD_FACES/OD_RESTS), имя
базы не спрашивается. Один скрипт создаёт логин bj, таблицы обмена и права; по выбору — задание
обработки в SQL Agent или обработка на сервере bj. Выполнить сразу (логин администратора СУБД не
сохраняется), скачать скрипт для администратора или подключиться готовым логином.
- Восстановление из копии — только на первой странице, в мастере его больше нет.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi