§ P16 — Интеграции · Источники данных

Все методы выгрузки данных из 1С для BI в 2026

7 способов · Матрица выбора · Гибридные стратегии

Семь технических способов извлечь данные из 1С для BI-системы: OData, HTTP-сервисы, прямой SQL к базе, ATK BI View, Denvic Extractor, ПланОбмена, КД 3.0. Разбираем плюсы, минусы, производительность и реальные сценарии применения. Статья про техническую сторону — без правовых интерпретаций.

1С — самая распространённая транзакционная система среднего бизнеса: там живут продажи, бухгалтерия, зарплата, остатки, закупки, управленческий учёт. Любая BI-система рано или поздно упирается в вопрос: как забрать данные из 1С быстро, стабильно и без ущерба продуктиву.

Хорошая новость: методов много. Плохая: у каждого свои ограничения. «Подключу OData — и всё будет работать» — работает до первого регистра с миллионом строк. «Возьму прямой SQL» — работает, пока не натыкаешься на GUID в binary(16) и таблицы с именами _AccumRg12345. Разбираем все рабочие варианты: производительность, грабли, когда какой применять.

Про правовой аспект. В сообществе регулярно всплывают споры о том, «разрешает ли лицензия 1С прямой доступ к SQL-базе». Формулировки в EULA размытые, интерпретации противоречат друг другу и общим нормам. Эта статья — строго про техническую сторону: что технически возможно, как работает, какие ограничения. Правовые вопросы оставляем юристам и конкретным условиям вашей лицензии.

Краткий обзор: 7 методов на одной таблице

Метод Скорость Усилия на разработку CDC / инкремент Нагрузка на 1С Стоимость
01 · OData RESTНизкаяМинимум (встроено)Через DataVersionСредняя0 ₽
02 · HTTP-сервисы (кастомные)Средняя-высокаяСредние (1С-разработчик)Полный контрольКонтролируемая0 ₽ (есть 1С-разработчик)
03 · Прямой SQL к базеВысокаяВысокие (реверс метаданных)Через &Version или триггерыМинимальная0 ₽
04 · ATK BI ViewВысокаяМинимум (готовые VIEW)Встроенный CDCМинимальнаяКоммерческий
05 · Denvic ExtractorВысокаяМинимум (managed ETL)Встроенный CDC + SCDМинимальнаяКоммерческий
06 · ПланОбмена + узлыСредняяСредние (конфигурация 1С)Нативный CDCМинимальная0 ₽
07 · КД 3.0 (XML)НизкаяСредние (правила КД)Через XML-сообщенияВысокая0 ₽

«Единственно правильного» метода нет. Выбор зависит от объёма данных, частоты обновлений, наличия 1С-разработчика, бюджета и архитектуры DWH. Ниже — разбор каждого метода.

Детальный разбор методов

Метод 01REST · Встроенный

OData REST-интерфейс

Самый простой и официальный способ. Поставляется с 1С:Предприятие 8.3 «из коробки». Включается в Конфигураторе: для каждого объекта метаданных (справочник, документ, регистр) выставляется свойство «Использовать стандартный OData-интерфейс».

После публикации веб-сервера (IIS или Apache) доступ идёт по URL вида:

# Получить справочник Номенклатура
GET http://1c-server/base/odata/standard.odata/Catalog_Номенклатура?$format=json

# Отфильтровать + выбрать поля
GET http://1c-server/base/odata/standard.odata/Catalog_Номенклатура
    ?$filter=IsFolder eq false and DeletionMark eq false
    &$select=Ref_Key,Description,Code,Артикул
    &$format=json

# Пагинация + сортировка
GET http://1c-server/base/odata/standard.odata/Document_РеализацияТоваровУслуг
    ?$filter=Date ge datetime'2026-01-01T00:00:00'
    &$top=1000
    &$skip=0
    &$orderby=Date
    &$format=json

Поддерживается Basic/NTLM/Windows-авторизация. Протокол OData v3 и v4 (зависит от версии платформы). Также доступны связанные сущности через $expand: ?$expand=Товары,Склад.

Скорость массовой выгрузки~500-2000 строк/сек
Лучший сценарийСправочники < 100k строк
ИнкрементDataVersion (бинарная метка)
Плюсы
  • Встроено, без сторонних инструментов
  • Стандартный REST + JSON
  • Работает любой HTTP-клиент (Python, .NET, Power BI)
  • Авторизация через существующих пользователей 1С
Минусы
  • Медленно на больших регистрах (миллионы строк)
  • N+1 при загрузке связанных объектов
  • Блокировки: читает как транзакция
  • Нет агрегаций на стороне 1С

Инкрементальная выгрузка. Каждый объект имеет служебное поле DataVersion — бинарную метку, которая меняется при любом изменении записи. Схема: храните максимальный DataVersion из последней выгрузки, делаете $filter=DataVersion gt 'xxx' — получаете только изменения. Работает, но DataVersion непредсказуемо меняется при массовых операциях 1С.

Когда применять: справочники (номенклатура, контрагенты, подразделения) до 100 тыс. строк, где полная перезаливка раз в сутки устраивает. Документы до 500 тыс. строк с инкрементом по Date + DataVersion. На регистрах накоплений с миллионами строк OData упирается в потолок.

Метод 02Кастомный REST · Контролируемый

HTTP-сервисы (собственные endpoints)

В Конфигураторе создаётся объект «HTTP-Сервис» с методами (GET/POST), внутри которых вы пишете 1С-код: делаете запрос через Запрос.Выполнить(), собираете результат, возвращаете JSON или XML. Полная свобода в том, что и как возвращать.

// 1С-код: метод GET в HTTP-сервисе
Процедура ВыполнитьПолучениеПродажПериод(Запрос, Ответ)
    ДатаС = Запрос.ПараметрыURL["ДатаС"];
    ДатаПо = Запрос.ПараметрыURL["ДатаПо"];

    ЗапросДанных = Новый Запрос;
    ЗапросДанных.Текст =
        "ВЫБРАТЬ
        |   Продажи.Период КАК Дата,
        |   Продажи.Номенклатура.Код КАК НоменклатураКод,
        |   Продажи.Количество,
        |   Продажи.Стоимость
        |ИЗ
        |   РегистрНакопления.Продажи.Обороты(&ДатаС, &ДатаПо, Период) КАК Продажи";
    ЗапросДанных.УстановитьПараметр("ДатаС", ДатаС);
    ЗапросДанных.УстановитьПараметр("ДатаПо", ДатаПо);

    Результат = ЗапросДанных.Выполнить().Выбрать();

    МассивДанных = Новый Массив;
    Пока Результат.Следующий() Цикл
        Элемент = Новый Структура(
            "Дата,НоменклатураКод,Количество,Стоимость",
            Результат.Дата, Результат.НоменклатураКод,
            Результат.Количество, Результат.Стоимость
        );
        МассивДанных.Добавить(Элемент);
    КонецЦикла;

    Ответ.УстановитьТелоИзСтроки(
        ЗначениеВJSON(МассивДанных),
        "UTF-8"
    );
КонецПроцедуры
Скорость~2000-10000 строк/сек
Лучший сценарийАгрегации, витрины, сложная логика
ИнкрементПроизвольный (ваш код)
Плюсы
  • Полный контроль над запросом и форматом ответа
  • Можно делать агрегации внутри 1С (МАХ скорость)
  • Легко добавить авторизацию по API-ключу
  • Один endpoint = один бизнес-сценарий
Минусы
  • Нужен 1С-разработчик на внедрение
  • Каждый новый endpoint — новый релиз конфигурации
  • Кастомный код живёт в конфигурации 1С

Когда применять: нужны агрегаты (обороты регистров, итоги по группам), сложные выборки с join-ами, быстрая выгрузка больших объёмов с преагрегацией. Когда ETL-команда хочет получать готовые витрины, а не сырые строки.

Совет: держите endpoints в отдельной подсистеме «Интеграция_DWH» — это упрощает поддержку и отделяет их от основной бизнес-логики. И сразу версионируйте: /api/v1/sales, а не просто /api/sales.

Метод 03Прямой SQL · Максимум скорости

Прямой SQL к базе MS SQL Server

1С:Предприятие 8 хранит данные в MS SQL Server (или PostgreSQL) в собственных таблицах с закодированными именами. Если подключиться к базе напрямую через SQL Server Management Studio или ADO.NET, можно читать данные без участия сервера 1С. Скорость — максимально возможная для SQL-базы.

Структура имён таблиц 1С:

_Reference123         — справочник (ID 123 в метаданных)
_Reference123_VT456   — табличная часть справочника
_Document84           — документ
_Document84_VT789     — табличная часть документа
_DocumentJournal12    — журнал документов
_AccumRg45            — регистр накопления (движения)
_AccumRgT45           — таблица итогов регистра
_AccRg30              — регистр бухгалтерии
_InfoRg67             — регистр сведений
_Enum10               — перечисление
_Const                — константы
Config                — метаданные (XML)
DBSchema              — структура базы
Params                — параметры базы

Главная сложность: цифры в именах таблиц не соответствуют никакому очевидному порядку. Mapping «_Reference123 = справочник Номенклатура» хранится в таблице Config и в XML-файлах конфигурации. Без reverse-инжиниринга метаданных прямой SQL бесполезен.

Типичные grаbli:

  • GUID хранятся как BINARY(16). Чтобы увидеть как строку: CAST(_IDRRef AS UNIQUEIDENTIFIER).
  • Ссылочные поля — это пара колонок. Одна хранит тип объекта (_Fld123_TYPE), другая — ID (_Fld123_RRRef). Для составного типа нужна CASE-конструкция.
  • Даты хранятся со смещением на 2000 лет вперёд. DATEADD(year, -2000, _Date_Time) возвращает реальную дату.
  • Строки в NVARCHAR фиксированной длины — с паддингом пробелами. RTRIM() обязателен.
  • Булевы значения — как BINARY(1). CAST(_Fld456 AS TINYINT).
  • NULL в ссылках представлен как 0x00000000000000000000000000000000, не SQL NULL.

Минимальный пример:

-- Справочник Номенклатура (после reverse: _Reference123)
SELECT
    CAST(_IDRRef AS UNIQUEIDENTIFIER) AS ref_guid,
    RTRIM(_Code) AS nom_code,
    RTRIM(_Description) AS nom_name,
    _Folder AS is_folder,
    _Marked AS is_deleted
FROM _Reference123 WITH (NOLOCK)
WHERE _Marked = 0x00;
Скорость~50000-500000 строк/сек
Лучший сценарийБольшие регистры, факт-таблицы DWH
Инкремент&Version (колонка) или триггеры
Плюсы
  • Максимальная скорость выгрузки
  • Все SQL-инструменты работают: CTE, оконные функции, индексы
  • Не блокирует 1С-пользователей при NOLOCK/snapshot isolation
  • Можно делать произвольные join-ы между объектами
Минусы
  • Нужен reverse-слой имён таблиц и колонок
  • Структура меняется при обновлении конфигурации 1С
  • GUID, даты, ссылки — с подводными камнями
  • Требует DBA-уровня SQL-знаний

Рекомендация: используйте read-only replica (AlwaysOn) или snapshot isolation — так вы не блокируете продуктивную базу. Для автоматизации reverse-инжиниринга есть Tool_1CD (читает XML-конфигурацию, генерирует mapping), ATK Extract и другие — см. следующие методы.

Метод 04Commercial tooling · Готовое решение

ATK BI View

Коммерческий инструмент от Analytical Technology Group (ATG). Снимает главную боль прямого SQL: автоматически генерирует набор SQL VIEW поверх базы 1С с человекочитаемыми именами колонок, правильной распаковкой GUID и дат, разворачиванием ссылок.

Вместо SELECT _IDRRef, _Description FROM _Reference123 вы пишете:

SELECT
    nom_guid,
    nom_code,
    nom_name,
    nom_parent_code,
    nom_unit_name,
    is_deleted
FROM ATK.v_Catalog_Nomenclature
WHERE is_deleted = 0;

VIEW хранятся в отдельной схеме (например, ATK), исходная 1С-база не изменяется. Генератор ATK периодически (по расписанию) пересчитывает VIEW при изменении структуры 1С.

Скорость~50000-500000 строк/сек (прямой SQL)
Лучший сценарийБыстрый старт BI на 1С без 1С-разработки
ИнкрементШтатный CDC + snapshots
Плюсы
  • Готовые VIEW с читаемыми именами из коробки
  • Автообновление при изменении конфигурации 1С
  • Скорость прямого SQL
  • Минимум усилий на старт — ETL становится тривиальным
  • Не требует 1С-разработчика
Минусы
  • Коммерческая лицензия (оплата за инсталляцию/сервер)
  • Привязка к поставщику
  • VIEW не всегда покрывают редкие кастомные объекты

Когда применять: быстрый старт BI в средней компании без своей 1С-команды; когда DWH-команда знает SQL, но не хочет разбираться с внутренней структурой 1С. Типовой срок от установки до первой витрины — 1-2 недели.

Метод 05Managed ETL · Полный цикл

Denvic Extractor

Ещё один коммерческий инструмент, уровнем выше: уже не просто VIEW, а полноценный managed-ETL. Закрывает весь жизненный цикл: извлечение → CDC → SCD Type 2 → загрузка в целевую БД → оркестрация и мониторинг.

Архитектурно Denvic работает как отдельный сервис, который:

  1. Подключается к источнику 1С (прямой SQL или реплика)
  2. По расписанию/триггеру делает CDC: сравнивает текущий snapshot с предыдущим
  3. Генерирует delta (inserted/updated/deleted) и применяет к целевой БД
  4. Ведёт журнал изменений для audit и SCD Type 2 (исторические версии)
  5. Алертит при аномалиях (скачок объёма, расхождение контрольных сумм)
СкоростьВысокая (incremental только)
Лучший сценарийКрупные инсталляции, несколько 1С-баз
ИнкрементCDC + SCD Type 2 из коробки
Плюсы
  • End-to-end ETL без своей разработки
  • Нативная поддержка SCD Type 2 (исторические версии справочников)
  • Управление несколькими источниками из одной консоли
  • Мониторинг качества данных и алерты
Минусы
  • Дороже ATK (но больше функций)
  • Black-box: логика ETL внутри продукта, кастомизация через свои правила
  • Требует «своего» DWH под их target-схему

Когда применять: несколько 1С-баз в холдинге (3-10+ юрлиц), нужен исторический срез данных и единый audit-trail, нет ресурсов на собственный ETL. Хорошо заходит там, где качество данных критично — в финансах и консолидации отчётности.

Метод 06Native 1C CDC · Официальный канал

ПланОбмена + узлы регистрации

Встроенный в 1С механизм распределённых информационных баз (РИБ) и обменов данными. Идея: в конфигурации 1С создаётся объект метаданных «ПланОбмена» с узлами-получателями. Когда объекты изменяются, 1С автоматически регистрирует факт изменения для подписанных узлов.

Внешняя система (ваша BI-платформа, DWH) выступает как узел-получатель. Забирает через HTTP/COM/файл-обмен только изменения с момента последней квитанции, применяет к себе и подтверждает получение. 1С очищает регистрацию изменений для этого узла.

// В 1С создаём узел "DWH" в ПланеОбмена "ОбменСBI"
// Регистрируем изменения для объекта "Продажи"

// Чтение изменений через HTTP-сервис
ВыборкаИзменений = ПланыОбмена.ОбменСBI.ВыбратьИзменения(
    Узел, НомерСообщения
);
Пока ВыборкаИзменений.Следующий() Цикл
    // Сериализуем в JSON/XML, возвращаем внешней системе
КонецЦикла;

// После подтверждения получения внешней системой
ПланыОбмена.ОбменСBI.УдалитьРегистрациюИзменений(
    Узел, НомерСообщения
);
СкоростьЗависит от объёма delta (обычно небольшой)
Лучший сценарийReal-time или near-real-time sync
ИнкрементНативный, с квитанциями
Плюсы
  • Чистый CDC: читаем только то, что изменилось
  • Не пропускает изменения (в отличие от DataVersion-cursor)
  • Минимальная нагрузка на 1С и сеть
  • Поддержка удаления (tombstones)
Минусы
  • Требует настройки в конфигурации 1С (1С-разработчик)
  • Механизм квитанций требует надёжного двухстороннего протокола
  • При сбое потребителя регистрация растёт — нужен мониторинг

Когда применять: near-real-time BI (каждые 5-15 минут), когда нельзя пропустить ни одного изменения (финансы, остатки). Часто комбинируется с HTTP-сервисом: endpoint читает регистрацию изменений для узла DWH и отдаёт delta в JSON. ETL на стороне BI применяет изменения и подтверждает квитанцией.

Метод 07XML обмен · Legacy

КД 3.0 (Конвертация данных)

Универсальный механизм обмена между конфигурациями 1С. Правила обмена описываются в отдельной подсистеме КД («Конвертация данных»), данные выгружаются в XML-файлы по схеме Enterprise Data.

Для BI применяется редко: формат XML-сообщений тяжёлый, обмен идёт пакетами, полной автоматизации нет. Обычно используется для миграций между 1С-базами (например, при смене конфигурации) или для интеграции с внешними учётными системами.

СкоростьНизкая (XML-сериализация)
Лучший сценарий1C ↔ 1C миграции, редко для BI
ИнкрементЧерез XML-сообщения

Когда применять для BI: редко, если вообще. Если в компании уже настроен обмен через КД, можно подцепить BI как получателя XML. Но парсинг больших XML, обработка ошибок и скорость делают этот путь хуже остальных. Упоминаем для полноты картины.

Как выбирать: матрица сценариев

Практические рекомендации в зависимости от исходной ситуации:

СценарийРекомендуемый методКомментарий
Одна 1С-база, <500k строк, старт BI за 2 неделиOData или ATK BI ViewOData при ограниченном бюджете. ATK при наличии средств — быстрее результат.
Одна 1С-база, миллионы строк в регистрахATK BI View + прямой SQLOData будет падать на объёмах. Прямой SQL с reverse необходим.
Есть 1С-разработчик, сложная бизнес-логикаHTTP-сервисы + ПланОбменаПолный контроль, преагрегация на стороне 1С, чистый CDC.
Холдинг: 5-10 1С-баз, консолидацияDenvic ExtractorManaged ETL окупается на нескольких источниках.
Near-real-time дашборды (каждые 5 мин)ПланОбмена + HTTP-сервисЕдинственный рабочий паттерн для real-time.
Жёсткие требования к истории (SCD Type 2)Denvic или собственный ETL на ATKDenvic даёт историю из коробки. На ATK пишется вручную.
Минимальный бюджет, нет 1С-разработчикаODataКомпромисс: медленно, но бесплатно и быстро стартует.

Гибридные стратегии

На практике одним методом обходятся редко. Типовые рабочие комбинации:

Комбо 01 · ATK + HTTP-сервисы

ATK BI View используется для всех стандартных справочников и простых регистров (80% данных). Для сложных агрегатов или кастомной логики пишется HTTP-сервис. ETL тянет и оттуда, и оттуда, сваливает в Промежуточный DWH, дальше обычная трансформация.

Комбо 02 · Прямой SQL + ПланОбмена

Первоначальная загрузка (initial load) — прямым SQL: быстро наполняем DWH историей. Дальше — ПланОбмена для delta-изменений. Снимаем нагрузку с 1С, имеем актуальные данные без full-scan.

Комбо 03 · OData + HTTP-сервисы

Когда нет доступа к SQL-базе (облачная 1С:Фреш, хостинг без SQL-доступа). OData для справочников, HTTP-сервисы для преагрегированных регистров. Медленнее прямого SQL, но не требует инфраструктурного доступа.

Комбо 04 · Denvic + собственные endpoints

Denvic тянет стандартные объекты, но для специфической бизнес-логики (например, консолидация EBITDA по 10 юрлицам) делается отдельный HTTP-сервис с финальной агрегацией. Получаем масштабируемость Denvic + гибкость 1С-кода.

Типичные грабли при выгрузке из 1С

  1. Обновление конфигурации 1С ломает SQL-запросы. Новая версия УТ/УПП/ERP меняет структуру таблиц или добавляет новые поля. ATK/Denvic регенерируют VIEW автоматически. Собственный ETL — пересматриваем и правим.
  2. Регистры бухгалтерии (_AccRg) имеют нестандартную структуру с измерениями как колонки. ATK и Denvic нормализуют это в удобный вид. При прямом SQL нужна отдельная логика.
  3. Движения и итоги регистров могут расходиться. Если итоги посчитаны некорректно (баг 1С или незакрытый период), SUM(движения) и значения из таблицы итогов будут разными. Правило: для аналитики всегда используйте движения, а не итоги.
  4. Пометка на удаление ≠ удаление. Объекты с _Marked = 0x01 считаются удалёнными логически, но физически остаются в базе. Не забудьте добавить фильтр WHERE _Marked = 0x00.
  5. Периодические регистры сведений имеют колонку _Period. При JOIN с другими таблицами учитывайте, что актуальное значение — это запись с максимальным Period.
  6. Перепроведение документов меняет движения регистров задним числом. Если ETL делает инкремент по Date, изменения в старых периодах пропускаются. Компенсация — регулярная ресинхронизация скользящего окна (например, последние 30 дней перечитываем всегда).
  7. GUID в BINARY(16) со swap-байтами. Прямое приведение к UNIQUEIDENTIFIER даёт некорректную строку. Правильно — использовать функцию-конвертер, которая swap-ит байты по стандарту 1С.
  8. Бесконечно растущая регистрация ПланаОбмена. Если потребитель (ваш ETL) упал и не квитирует, регистрация накапливается. Мониторьте таблицу регистрации; настройте очистку через N дней или алерт при превышении порога.

Наш production-стек в проектах DEEONE

На типовых проектах среднего бизнеса (500М-5Б ₽ выручки, 1-3 1С-базы) мы чаще всего берём:

  • ATK BI View — для быстрого старта, стандартных справочников и основных регистров. Закрывает 80% потребностей без 1С-разработчика.
  • HTTP-сервисы — для специфических сценариев: кастомные отчёты, консолидация нескольких юрлиц, тяжёлые преагрегации. Endpoint под каждый отдельный бизнес-вопрос.
  • ПланОбмена — когда нужен real-time или near-real-time. Обычно для остатков и продаж в операционных дашбордах.
  • OData — редко, только когда нет SQL-доступа к базе (облако или корпоративные ограничения).

Denvic Extractor ставим в холдингах с 5+ 1С-базами, где экономия на собственном ETL окупает стоимость лицензии. Прямой SQL без ATK — когда клиент категорически против коммерческих инструментов и готов содержать собственный reverse-слой. Рабочий путь, но дорогой по поддержке.

Что делать дальше

  • Если стартуете BI на 1С с нуля — посмотрите P1 про DWH на MS Stack: там про структуру DWH, куда приземлять данные из 1С. И скачайте карту 1С-источников — закроет вопросы первого интервью с подрядчиком.
  • Если выгрузка из 1С уже есть, но тормозит или ломается — BI-аудит за 5 дней найдёт узкие места и даст план перехода.
  • Если нужно обсудить конкретную ситуацию — 30-минутный звонок, расскажем какой метод подходит под ваши объёмы и ограничения.

Связанные материалы:

§ Консультация · 30 минут

Какой метод
подходит вам?

Опишите вашу конфигурацию 1С, объёмы, требования к real-time — порекомендуем метод и спроектируем конкретную интеграционную схему.

Телефон+7 918 042 34 43