К статье
Практический материал

Отчеты и Аналитика · 13 мин

1С как источник данных: способы получения данных для отчётов и интеграций

Как использовать 1С как источник данных: способы выгрузки, OData, COM, планы обмена, подключение к Power BI и Excel, типичные ошибки и проверка результата.

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

Единого «правильного» метода нет: для разового анализа в Excel достаточно выгрузки табличного документа, для регулярной аналитики удобен OData или прямое чтение через запросы, а для обмена между системами предназначены планы обмена и веб-сервисы. Ниже разобраны основные подходы, их ограничения и критерии выбора.

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

Какие данные реально хранятся в 1С и в каком виде

Информационная база 1С состоит из объектов конфигурации: справочников (номенклатура, контрагенты), документов (реализации, поступления, платежи), регистров накопления и сведений (остатки, цены, взаиморасчёты), регистров бухгалтерии. Физически всё это лежит либо в файловой базе, либо на сервере СУБД — Microsoft SQL Server, PostgreSQL, Oracle или IBM DB2.

При проектировании выгрузки важно понимать, что «документ» в 1С — это не сама информация о движении товара или денег, а породившая её запись. Фактические данные для аналитики чаще находятся в движениях документа по регистрам. Поэтому корректный источник для отчёта по продажам — не таблица документов «Реализация», а регистр накопления «Продажи» или «ВыручкаИСебестоимостьПродаж» в зависимости от конфигурации.

Ещё один нюанс — виртуальные таблицы запросов (Остатки, Обороты, ОстаткиИОбороты). Они не хранятся физически, а вычисляются платформой из итоговых таблиц регистра. При выгрузке через OData или запросы они доступны так же, как обычные таблицы, что сильно упрощает получение агрегированных данных.

Способы извлечения данных: обзор и границы применения

Платформа предлагает несколько независимых каналов доступа к данным. Выбор зависит от частоты обмена, объёма, требований к безопасности и наличия доработок в конфигурации.

СпособКогда подходитОсновные ограничения
Выгрузка в Excel/CSV из отчётаРазовый анализ, передача данных коллегамРучная операция, нет актуальности, легко ошибиться в периоде
OData (REST-интерфейс)Power BI, внешние приложения, регулярное чтениеТребует публикации на веб-сервере, нагрузка на базу при тяжёлых запросах
COM-соединениеОбмен между базами 1С на одном сервереТолько Windows, работает в одном процессе, устаревающий подход
Планы обменаРегулярная синхронизация между базами 1СТребуют настройки, обмениваются объектами, а не агрегатами
HTTP/веб-сервисыИнтеграция с любыми внешними системамиНужна доработка конфигурации и сопровождение кода
Прямое чтение из СУБДВысоконагруженная аналитика, витрины данныхНет понятных имён таблиц, риск обойти логику платформы, не поддерживается вендором

Сравнение вариантов

OData

Лучший баланс для BI: стандартный протокол, не требует доработок, но нужен веб-сервер и контроль нагрузки

Выгрузка файлами

Подходит для разовых задач и малых объёмов; не масштабируется и требует дисциплины версий файлов

HTTP-сервисы

Максимальная гибкость и контроль формата, но требуют разработки и сопровождения

Прямое чтение СУБД

Быстро для больших объёмов, но опасно: структура таблиц меняется при обновлениях, легко получить некорректные данные

Выгрузка в Excel и CSV: быстрый путь для разовых задач

Самый простой способ получить данные — сформировать нужный отчёт (например, «Продажи по контрагентам» или оборотно-сальдовую ведомость) и сохранить табличный документ через «Файл → Сохранить как» в формате Excel. Дополнительно почти любой список в 1С можно вывести кнопкой «Ещё → Вывести список», предварительно настроив отбор и колонки.

Для передачи данных в другую систему удобнее CSV: создайте отчёт на СКД или обработку, которая формирует таблицу значений и сохраняет её текстовым файлом с разделителем. При ручной выгрузке из табличного документа проверяйте, что группировки развёрнуты, иначе в файл попадут свёрнутые строки без детализации.

Порядок действий для выгрузки списка в Excel
  1. 1
    Откройте нужный список (документы, справочник, регистр) и задайте отбор по периоду и организации
  2. 2
    Через «Ещё → Изменить форму» или настройку списка оставьте только нужные колонки
  3. 3
    Выполните «Ещё → Вывести список», отметьте все строки и выведите в табличный документ
  4. 4
    Сохраните табличный документ в формате Excel и проверьте количество строк и итоги по ключевой колонке

Контрольный приём: после выгрузки сверьте итог по суммовой колонке в Excel с итогом отчёта в 1С. Расхождение почти всегда означает, что часть строк не попала в выгрузку из-за отбора, группировки или ограничения на количество выводимых строк.

OData: стандартный интерфейс для Power BI и внешних приложений

Начиная с платформы 8.3.5, 1С умеет автоматически публиковать REST-интерфейс OData. После публикации на веб-сервере (IIS или Apache) объекты конфигурации становятся доступны по HTTP в формате, который понимают Power BI, Excel Power Query, Tableau и другие инструменты. Доработка конфигурации не требуется — достаточно включить публикацию в свойствах базы.

Адрес имеет вид http://сервер/база/odata/standard.odata/, а конкретная сущность, например документ реализации, доступна как Document_РеализацияТоваровУслуг. Параметры $filter, $select, $top позволяют отбирать данные на стороне сервера. Для аналитики особенно полезны виртуальные таблицы регистров: AccumulationRegister_Продажи с агрегацией через $apply (зависит от версии платформы).

http
GET http://server/ut/odata/standard.odata/Document_РеализацияТоваровУслуг?$filter=Date ge datetime'2026-01-01T00:00:00'&$select=Number,Date,СуммаДокумента&$format=json

Для подключения из Power BI используйте коннектор «OData-канал» или «Веб», укажите базовый URL и аутентификацию (обычно базовая, по пользователю 1С). Обязательно фильтруйте данные на стороне запроса: вытягивание полной таблицы документов за несколько лет без $filter способно надолго занять сеанс и замедлить работу пользователей.

Обмен между базами 1С: планы обмена и COM

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

План обмена передаёт объекты целиком: документ со всеми табличными частями, элемент справочника. Это правильно для репликации учётных данных, но неудобно для аналитики — агрегаты придётся считать на стороне приёмника. Если цель именно аналитическая витрина, план обмена стоит рассматривать как транспорт сырья, а не как готовый отчётный источник.

COM-соединение (V83.COMConnector) позволяет одной базе 1С подключиться к другой и выполнять в ней запросы. Способ рабочий, но ограничен Windows-окружением и создаёт нагрузку в виде полноценного сеанса. Для новых интеграций предпочтительнее HTTP-сервисы или OData.

HTTP-сервисы и внешние обработки: когда нужен свой формат

Если потребителю нужен специфический формат (например, компактный JSON с уже посчитанными оборотами), оптимальное решение — HTTP-сервис внутри конфигурации. Разработчик описывает шаблон URL, в обработчике выполняет запрос к регистрам и возвращает готовую выборку. Такой сервис отдаёт ровно те данные, которые нужны, и не открывает лишнего.

Для файлового обмена по расписанию используют внешние обработки с регламентными заданиями: обработка формирует CSV, XML или JSON и складывает в сетевой каталог или отправляет по SFTP. Это простой и надёжный вариант для ночных выгрузок в хранилище данных, когда онлайн-доступ не нужен.

Для регулярных выгрузок фиксируйте момент среза: сохраняйте дату последней успешной выгрузки и отбирайте изменённые с неё объекты. Полная перезагрузка всех данных каждую ночь быстро упирается в объём и время выполнения. Дельта-выгрузка по дате изменения или периоду регистра решает эту проблему.
ПЗ
Практическое замечание

Прямое чтение из СУБД: почему это крайняя мера

Искушение подключиться к SQL-базе напрямую велико: скорость высокая, а SQL знаком аналитикам. Однако структура таблиц 1С не документирована для прямого доступа: имена вида _Document123 меняются при реструктуризации, ссылки хранятся как бинарные значения, а итоги регистров требуют понимания служебных таблиц. Любое обновление конфигурации может молча сломать такую выгрузку.

Допустимый компромисс — читать из СУБД только реплицированную копию или использовать известные механизмы витрин, где сопоставление таблиц зафиксировано и проверяется после каждого обновления. Запись в базу напрямую через SQL недопустима категорически: это нарушает целостность данных и лишает поддержки.

Типичные ошибки
01
Чтение документов вместо регистров: отчёт по продажам строится по шапкам документов и расходится с учётными данными, потому что не учтены движения и корректировки
02
Выгрузка без фильтров через OData: тяжёлый запрос блокирует сеанс и мешает пользователям
03
Прямая запись или чтение SQL без фиксации структуры: после обновления конфигурации выгрузка ломается или отдаёт неверные данные
04
Публикация OData с полными правами у служебного пользователя: через интерфейс доступны все объекты, включая зарплату и банковские данные
05
Отсутствие сверки итогов: ошибки отбора и обрезанные выгрузки обнаруживаются только при расхождении отчётов

Проверка качества выгруженных данных

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

Контрольные точки

Как проверить результат

Количество строк в выгрузке против отчёта в 1С за тот же период
Норма

Числа совпадают точно

Тревожный признак

Разница даже в одну строку — ищите отбор, группировку или дубли

Сумма по ключевому показателю (выручка, оборот по счёту)
Норма

Итоги сходятся до копейки

Тревожный признак

Расхождение означает потерю части движений или неверный источник

Границы периода в приёмнике
Норма

Минимальная и максимальная даты соответствуют заданному периоду

Тревожный признак

Данные обрезаны или захвачен лишний период

Актуальность данных
Норма

В приёмнике виден документ, проведённый недавно

Тревожный признак

Новые документы не попадают — нарушен механизм дельта-выгрузки

Как выбрать подходящий способ

Маршрут решения

Как выбрать действие

Нужен разовый анализ или таблица для коллегиСформируйте отчёт в 1С и сохраните в Excel, сверив итоги
Нужна регулярная аналитика в Power BI или ExcelОпубликуйте OData, настройте запросы с фильтрацией и расписание обновления
Данные должны попадать в другую базу 1СНастройте типовую синхронизацию через план обмена
Внешней системе нужен особый формат или агрегатыРазработайте HTTP-сервис с выдачей готовых данных
Объёмы большие и есть хранилище данныхНастройте ночную дельта-выгрузку файлами через регламентное задание

Решение почти всегда начинается с вопроса о частоте и потребителе. Человеку достаточно файла, BI-системе — стандартного протокола, другой учётной системе — надёжного транспорта с гарантией доставки. Комбинировать способы нормально: например, OData для аналитиков и план обмена для бухгалтерии в одной базе.

Итог

Что важно запомнить

1С отдаёт данные через выгрузки в файлы, OData, планы обмена, COM и HTTP-сервисы. Аналитику берите из регистров, а не из документов; тяжёлые запросы фильтруйте на стороне сервера; любой канал замыкайте сверкой итогов. Прямой доступ к СУБД — только для чтения копии и как крайняя мера.

Частые вопросы

Можно ли подключить Power BI к 1С без доработок конфигурации?

Да, через OData: достаточно опубликовать базу на веб-сервере и включить REST-интерфейс в настройках публикации. Power BI подключается коннектором OData по URL вида http://сервер/база/odata/standard.odata/ с учётными данными пользователя 1С.

Почему отчёт в BI не сходится с отчётом в 1С?

Чаще всего причины три: выгружены документы вместо движений по регистрам, в запросе нет фильтра по периоду или организации, либо не учтены помеченные на удаление и непроведённые документы. Сверку начинайте с оборотов регистра за один закрытый месяц.

Опасно ли открывать OData для аналитиков?

Опасно при неверной настройке. Создайте отдельного пользователя с правами только на чтение нужных объектов, используйте HTTPS, не публикуйте интерфейс в открытый интернет и ограничьте тяжёлые запросы настройками веб-сервера и платформы.

Чем план обмена отличается от выгрузки через OData?

План обмена передаёт объекты целиком между базами 1С с гарантией доставки и контролем изменений — это инструмент синхронизации учёта. OData — интерфейс чтения для внешних потребителей, он не отслеживает изменения и не гарантирует доставку, зато не требует второй базы 1С.

Как выгружать только изменённые данные, а не всё подряд?

Храните в настройках выгрузки дату последнего успешного сеанса и отбирайте объекты с датой изменения или периодом движений позже неё. Для регистров удобно ориентироваться на период записей, для справочников — на служебные признаки изменений или планы обмена как механизм регистрации.

Можно ли читать базу 1С напрямую из SQL Server?

Технически чтение возможно, но структура таблиц не документирована и меняется при обновлениях, поэтому такой подход не поддерживается и требует постоянной ревизии. Запись в базу через SQL запрещена полностью — она разрушает целостность данных. Безопасная альтернатива — OData, HTTP-сервисы или выгрузка в витрину штатными средствами.