Архитектура

Как это работает и почему это надёжно

Инженерные решения, за которыми стоит бизнес-выгода: предсказуемость, безопасность источника и лёгкая расширяемость на новые СУБД.

Поток данных

От физической базы 1С — до понятных данных

Конвейер из четырёх движков, каждый со своей зоной ответственности. Обмен — только через доменную модель и каталог метаданных.

Конвейер Discovery → Mapping → Diff → Generate

Discovery

Читает системный каталог СУБД (sys.* / pg_*) и служебные структуры 1С (Config, DBNames, Params), классифицирует таблицы по типам объектов.

Mapping

Восстанавливает имена, приводит к snake_case, раскрывает ссылочные и составные типы, готовит целевые имена полей и представлений.

Diff

Хранит версии модели и сравнивает их. Даёт режим CHANGED_ONLY и подсветку изменений для политики Manual.

Generate

Формирует SQL-представления (безопасная подмена) и/или текст DDL для целевого DWH — по выбранным сценариям.

Развёртывание

Один установщик, три способа управления

Self-contained дистрибутив — среда .NET внутри, на сервере ничего доставлять не нужно.

Windows-служба или портативный EXE, Web UI/REST/CLI

MSI-служба

Устанавливает Windows-службу «DataBridge» с автозапуском; веб-интерфейс и Swagger открываются в браузере (порт настраивается).

Портативный EXE

Один self-contained файл — запуск без установки, удобно для демонстраций и изолированных стендов.

Стек

.NET 8 / C#, ASP.NET Core (REST + Blazor Server UI), SQLite для локального хранилища службы, WiX для MSI.

Сайзинг и размещение

Где ставить и какой нужен сервер

Требования скромные: коннектор читает метаданные и генерирует представления/DDL, не хранит копий данных 1С. Пиковая нагрузка кратковременна и приходится на синхронизацию.

Куда устанавливать

Рекомендуется отдельная (или любая) Windows-машина с сетевым доступом к SQL-серверу базы 1С — так коннектор не влияет на прикладной сервер 1С. Допустимо размещение и рядом с СУБД.

Обращение к базе 1С — только на чтение, в удобное окно или по расписанию.

Требования к серверу

  • Windows 10/11 или Windows Server 2016+ (x64)
  • 2+ ядра CPU, 4 ГБ ОЗУ
  • ~250 МБ на диск + место под каталог и логи
  • Среду .NET ставить не нужно — она внутри дистрибутива
  • Сетевой доступ к SQL-серверу базы 1С (1433 / 5432)

Источник 1С

MS SQL Server или PostgreSQL. Достаточно учётной записи с правом чтения (db_datareader).

База проекта

Отдельная база (создаётся автоматически) для каталога и представлений — источник 1С остаётся нетронутым.

Масштабирование

Неограниченное число источников, каждый изолирован. Тысячи объектов обрабатываются за минуты.

Нужна помощь с архитектурой, сайзингом под вашу базу 1С или подключением BI? Напишите: info@biconsult.ru.

Принципы

Решения, которые дают предсказуемость

Ключевые архитектурные инварианты — простым языком и с бизнес-смыслом.

Только чтение источника

Коннектор обращается к базе 1С исключительно на чтение (SELECT и VIEW DEFINITION); любая не-SELECT операция отклоняется на уровне кода.

Боевая база 1С физически защищена от изменений.

Детерминированная генерация

Одна и та же версия конфигурации всегда даёт одинаковые имена и одинаковый DDL — байт в байт.

Стабильный контракт для BI/DWH, воспроизводимость в CI.

Стабильные публичные имена

Имена представлений зависят от имени объекта в конфигурации, а не от физической таблицы, и переживают обновления и реструктуризацию базы.

Интеграции не ломаются при апдейтах 1С.

DDL-экспорт — только текст

В сценарии экспорта коннектор формирует лишь скрипт: не подключается к DWH, не исполняет DDL и не переносит данные. Перенос — задача внешнего ETL.

Полный контроль и никаких сюрпризов в хранилище.

Готовы попробовать?

Дистрибутив self-contained — на сервере ничего доставлять не нужно, среда .NET внутри.

MSI (служба) и портативный EXE — self-contained, ~40 и ~102 МБ. Внешних зависимостей ставить не нужно.

Под капотом

Чистая (гексагональная) архитектура

Техническая деталь для разработчиков: зависимости направлены только внутрь (Domain ← Application ← Адаптеры ← Хосты), движки не ссылаются друг на друга.

Слои: Domain, Application, Engines/Infrastructure, Hosts
Добавление новой целевой СУБД (например, ClickHouse) — это отдельный проект-адаптер без изменений ядра.