Initial SQL-only 1C adapter baseline

This commit is contained in:
2026-07-22 03:03:47 +03:00
commit e2503b77e7
545 changed files with 184711 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>1С Adapter · SQL-базы</title>
<link rel="stylesheet" href="/admin/style.css">
</head>
<body>
<header class="topbar">
<div><span class="mark">1C</span><strong>Adapter Control</strong></div>
<div class="connection"><span id="statusDot" class="dot"></span><span id="connectionText">Не подключено</span></div>
</header>
<main>
<section class="intro">
<div><p class="eyebrow">Подключения</p><h1>SQL-базы 1С</h1><p>Управление адресами и учётными данными адаптера.</p></div>
<button id="addButton" class="primary">+ Добавить базу</button>
</section>
<section class="panel table-panel">
<div class="panel-head"><div><h2>Настроенные базы</h2><span id="count">0 подключений</span></div><button id="refreshButton" class="icon" title="Обновить" aria-label="Обновить"></button></div>
<div id="notice" class="notice" hidden></div>
<div class="table-wrap">
<table><thead><tr><th>Base ID</th><th>SQL Server</th><th>База данных</th><th>Логин</th><th>Пароль</th><th></th></tr></thead><tbody id="bases"></tbody></table>
<div id="empty" class="empty">Подключения ещё не настроены.</div>
</div>
</section>
<section class="panel table-panel requests-panel">
<div class="panel-head"><div><h2>Заявки на захват</h2><span id="requestCount">0 заявок</span></div></div>
<div class="table-wrap">
<table><thead><tr><th>Заявка</th><th>База</th><th>Статус</th><th>Объекты</th><th>Создана</th></tr></thead><tbody id="requests"></tbody></table>
<div id="requestsEmpty" class="empty">Заявок пока нет.</div>
</div>
</section>
</main>
<dialog id="editor">
<form id="baseForm" method="dialog">
<div class="dialog-head"><div><p class="eyebrow">SQL-подключение</p><h2 id="editorTitle">Новая база</h2></div><button value="cancel" class="close" aria-label="Закрыть">×</button></div>
<input id="originalId" type="hidden">
<div class="grid">
<label>Base ID<input id="baseId" required pattern="[A-Za-z0-9_.-]+" placeholder="upo_test"></label>
<label>SQL Server / IP<input id="server" required placeholder="192.168.1.10"></label>
<label>Имя базы SQL<input id="database" required placeholder="upo_test"></label>
<label>SQL-логин<input id="user" required autocomplete="username" placeholder="onec_reader"></label>
<label class="wide">Пароль<input id="password" type="password" autocomplete="new-password" placeholder="Оставьте пустым, чтобы не менять"><small id="passwordHint">Пароль сохраняется в защищённом runtime-файле и никогда не отображается.</small></label>
<label class="wide">Или переменная окружения<input id="passwordEnv" placeholder="ONEC_SQL_PASSWORD_UPO_TEST"><small>Если заполнено, имеет приоритет над введённым паролем.</small></label>
<label class="wide"><input id="repositoryEnabled" type="checkbox"> Конфигурация подключена к хранилищу</label>
<label>Доступ к хранилищу<select id="repositoryBackend"><option value="direct">Прямой</option><option value="karman_bridge">Через Карман</option></select></label>
<label>Слой<select id="repositoryLayer"><option value="base">Основная конфигурация</option><option value="extension">Расширение</option></select></label>
<label>Захват объектов<select id="repositoryLockMode"><option value="manual">Вручную пользователем (SQL-only)</option><option value="automatic" disabled>Через внешнюю 1С (следующая версия)</option></select></label>
<label>ID моста (из настройки)<input id="repositoryBridgeId" placeholder="Необязательно"></label>
<label>Пользователь хранилища<input id="repositoryUser" autocomplete="off" placeholder="Например, adm"></label>
</div>
<div class="dialog-actions"><button value="cancel" class="secondary">Отмена</button><button id="saveButton" value="default" class="primary">Сохранить</button></div>
</form>
</dialog>
<script src="/admin/app.js"></script>
</body>
</html>