Выгрузка данных из 1С 8.3 наружу: от кнопки «Сохранить» до запросов к СУБД

· 11 мин

Содержание

Быстрее всего вытащить данные из 1С так: откройте нужный отчёт или список, сформируйте его и сохраните через главное меню ≡ → Файл → Сохранить как в формате .xlsx. Для списков есть команда Ещё → Вывести список, для выборок по любым справочникам и регистрам — «Универсальный отчёт». Если нужна регулярная выгрузка в другую систему, подключайтесь через OData, COM-соединение или внешнюю обработку .

Ниже каждый способ разобран по шагам: что он умеет, где его ограничение и какие проблемы всплывают при экспорте данных из 1С в Excel, CSV и XML. Всё описано для платформы 8.3 с интерфейсом «Такси»; пути меню даны для 1С:Бухгалтерии 3.0, в других типовых конфигурациях на БСП они почти такие же.

Какой способ выгрузки данных из 1С выбрать

Сначала ответьте себе на три вопроса: сколько строк, как часто и куда. От этого зависит инструмент.

ЗадачаСпособНужны праваОграничение
Разово сохранить отчёт или печатную формуСохранить как → xlsx/pdfобычный пользовательвид отчёта со всеми шапками и группировками
Выгрузить список документов или справочникЕщё → Вывести списокправо «Вывод»только колонки, которые есть в списке
Собрать выборку из любой таблицы базыУниверсальный отчётдоступ к объектунужно разобраться с настройками
Перенести данные в другую базу 1Собработка выгрузки в XMLадминистраторфайл читается только 1С
Отдавать данные в Power BI, Excel, сайтODataадминистратор, веб-сервернужна публикация базы
Ежедневная выгрузка без участия человекавнешняя обработка по расписанию, COMадминистраторнужен программист 1С
Аналитика на SQL поверх базызапросы к MS SQL / PostgreSQLдоступ к СУБДтолько клиент-серверная база, только чтение

💡 Если сомневаетесь, начинайте сверху таблицы. Разовые задачи обычно закрывает сохранение отчёта или вывод списка, без программиста.

Выгрузка из 1С в Excel: отчёты, списки и печатные формы

Отчёт целиком

  1. Сформируйте отчёт: например, Отчеты → Оборотно-сальдовая ведомость за нужный период.
  2. Щёлкните мышью по полю с результатом, чтобы фокус был на табличном документе.
  3. Откройте главное меню ≡ в левом верхнем углу и выберите Файл → Сохранить как. В отчётах БСП та же команда вынесена кнопкой с дискетой на панель отчёта.
  4. В поле типа файла выберите Лист Microsoft Excel 2007-... (*.xlsx) и сохраните.

Табличный документ 1С сохраняется в форматы xlsx, xls, ods, pdf, docx, html, txt и в собственный mxl. Формата CSV в этом списке нет: его получают через Excel («Сохранить как CSV») или обработкой, о ней ниже.

Любой список: документы, контрагенты, номенклатура

  1. Откройте список, например Справочники → Контрагенты.
  2. Наложите отбор, если нужна часть записей: по группе, по дате, через поиск.
  3. Нажмите Ещё → Вывести список.
  4. В окне отметьте колонки и выберите вывод в табличный документ.
  5. Полученную таблицу сохраните в xlsx тем же Сохранить как.

Колонки берутся из формы списка. Нужна колонка, которой нет на экране (например, ИНН в списке документов)? Добавьте её через Ещё → Изменить форму, затем повторите вывод.

⚠️ Если команда «Вывести список » недоступна или пишет об ошибке прав — у вашей роли выключено право «Вывод». Его включает администратор в настройках пользователей и прав; самостоятельно это не обойти.

Быстро скопировать кусок

Для десятка строк хватает буфера обмена: выделите строки в списке (Shift или Ctrl + щелчок), нажмите Ctrl+C и вставьте в Excel. Колонки разложатся по ячейкам. Для тысяч строк этот приём неудобен: динамический список подгружает записи порциями, и выделить всё надёжно не получится.

Печатные формы

В форме предварительного просмотра (накладная, счёт, акт) есть кнопка «Сохранить». Она предлагает выбрать формат: xlsx, pdf, docx. Отметьте нужные галочками — 1С сохранит файл каждой формы в выбранную папку.

Универсальный отчёт: выборка из любого справочника и регистра

Когда готового отчёта под задачу нет, а выводить список мало, берите «Универсальный отчёт». Он строит таблицу по любому объекту базы: справочнику, документу с табличной частью, регистру накопления, сведений или бухгалтерии.

Где найти: в БП 3.0 он в разделе Отчеты, в группе стандартных отчётов. Если не видно — включите в Сервис и настройки → Параметры флажок «Отображать команду “Все функции”» и откройте ≡ → Все функции → Отчеты → Универсальный отчет.

Как собрать выгрузку

  1. В шапке отчёта выберите тип объекта, например «Документ».
  2. Выберите сам объект: «Реализация (акты, накладные, УПД)».
  3. Укажите таблицу: сам документ или его табличную часть «Товары» — так вы получите построчную выгрузку номенклатуры.
  4. Задайте период.
  5. Откройте Настройки, переключитесь на расширенный вид.
  6. На вкладке полей отметьте только нужные: дата, номер, контрагент, номенклатура, количество, сумма.
  7. В структуре оставьте одну группировку «Детальные записи» — получится плоская таблица без промежуточных итогов.
  8. Сформируйте и сохраните в xlsx.

💡 Плоская таблица из «Детальных записей» — лучший вариант для сводных таблиц в Excel. Группировки и итоги дают объединённые ячейки, и фильтр в Excel работает с ними криво.

Удачную настройку сохраните как вариант отчёта командой сохранения варианта в меню Ещё. В следующий раз выгрузка займёт три щелчка.

Чего универсальный отчёт не умеет

  • 📌 Склеивать данные из разных объектов в одну строку произвольным образом — для этого нужен запрос.
  • 📌 Выгружать по расписанию без участия пользователя (есть рассылка отчётов в БСП, но она шлёт файл по почте, а не кладёт его в другую систему).
  • 📌 Показывать объекты, на которые у пользователя нет прав чтения.

Выгрузка данных из 1С в XML и CSV через обработки

XML для переноса между базами

Для переноса справочников и документов из одной базы 1С в другую используют обработки в формате XML:

  • 🔹 «Выгрузка и загрузка данных XML» (файл ВыгрузкаЗагрузкаДанныхXML83.epf). Выгружает выбранные объекты метаданных как есть. Работает только между базами с одинаковой структурой конфигурации.
  • 🔹 «Универсальный обмен данными в формате XML» (V8Exchan83.epf). Переносит данные между разными конфигурациями по правилам обмена, которые готовят в «Конвертации данных».
  • 🔹 Типовые обмены в формате EnterpriseData — встроены в БП, УТ, ERP и настраиваются в Администрирование → Синхронизация данных.

Обе обработки открывают через ≡ → Файл → Открыть. Перед загрузкой XML в рабочую базу сделайте резервную копию: загрузка перезаписывает объекты с теми же ссылками.

XML из этих обработок — внутренний формат 1С. Открыть его в Excel можно, но разбирать вручную тяжело. Для внешних систем он не подходит.

CSV для внешних программ

Штатной кнопки «Сохранить в CSV» в 1С нет. Варианты:

  1. Сохранить отчёт или список в xlsx, открыть в Excel и пересохранить как «CSV (разделители — запятые)». Русский Excel ставит разделителем точку с запятой.
  2. Сохранить табличный документ в txt — получится текст с табуляцией, его понимают почти все загрузчики.
  3. Написать небольшую внешнюю обработку, которая сразу пишет CSV, — пример в следующих разделах.

Полная копия базы — это не выгрузка данных

Файл .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) — резервная копия для другой 1С. Читать его сторонними программами нельзя. Если вас просят «выгрузить базу » для аудитора или новой учётной системы, уточните: им нужен .dt для разворачивания в 1С или таблицы с данными.

ODBC, SQL и OData: прямое подключение к данным 1С

ODBC: чего ждать

В 1С 8.3 нет штатного ODBC-драйвера, через который Excel или Access увидели бы таблицы файловой базы. Механизм «Внешние источники данных» работает в обратную сторону: 1С читает чужие базы через ODBC. Поэтому прямое подключение «по ODBC» на практике означает одно из двух: запросы к СУБД клиент-серверной базы или публикацию OData.

SQL-запросы к MS SQL или PostgreSQL

Если база клиент-серверная, данные лежат в обычной СУБД и читаются любым SQL-клиентом. Сложность в именах: таблицы называются _Reference45, _Document312, _AccumRg1024, а поля — _Fld5678. Ссылки хранятся в двоичном виде в полях с окончанием RRef.

Чтобы сопоставить имена с объектами конфигурации, выполните во встроенном языке функцию ПолучитьСтруктуруХраненияБазыДанных() и сохраните результат в таблицу. Она покажет, какой таблице СУБД соответствует, скажем, Справочник.Контрагенты и как называется поле ИНН.

Правила безопасности:

  • ⛔ Только чтение. Изменение данных через SQL в обход платформы ломает связи, итоги регистров и кэш — такие правки фирма 1С не поддерживает.
  • ⏱ Тяжёлые аналитические запросы к рабочей базе днём тормозят пользователей. Гоняйте их на копии или реплике.
  • 🔄 После обновления конфигурации номера таблиц и полей могут поменяться — перестраивайте сопоставление.

OData: стандартный REST-интерфейс

С платформы 8.3.5 любую опубликованную на веб-сервере базу можно открыть по протоколу OData. Это самый удобный способ подключить к 1С Excel Power Query, Power BI или сайт без программирования на стороне 1С.

  1. Опубликуйте базу на IIS или Apache через Конфигуратор → Администрирование → Публикация на веб-сервере, отметив публикацию стандартного интерфейса OData.
  2. В режиме «Предприятие» укажите, какие объекты отдавать: в БП это настройка стандартного интерфейса OData в разделе Администрирование → Синхронизация данных (в других конфигурациях название пункта может отличаться). Без этого шага сервис отдаёт пустой список.
  3. Создайте для интеграции отдельного пользователя 1С с правами только на чтение нужных объектов.
  4. В Excel: Данные → Получить данные → Из других источников → Из канала OData, адрес вида:
http://server/buh/odata/standard.odata/

Объекты называются по шаблону Catalog_Контрагенты, Document_РеализацияТоваровУслуг, AccumulationRegister_ТоварыНаСкладах. Excel покажет их списком, дальше работаете как с обычной таблицей Power Query и обновляете одной кнопкой.

Автоматическая выгрузка: внешняя обработка, расписание, COM

Внешняя обработка с запросом

Если выгрузка повторяется каждый день, проще один раз написать обработку. Пример серверной процедуры, которая пишет номенклатуру в CSV:

&НаСервере
Процедура ВыгрузитьНоменклатуруНаСервере(ИмяФайла)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Наименование КАК Наименование
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    НЕ Номенклатура.ЭтоГруппа
    |    И НЕ Номенклатура.ПометкаУдаления";

    Выборка = Запрос.Выполнить().Выбрать();

    Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
    Запись.ЗаписатьСтроку("Код;Наименование");

    Пока Выборка.Следующий() Цикл
        Наименование = СтрЗаменить(Выборка.Наименование, ";", ",");
        Запись.ЗаписатьСтроку(СтрШаблон("%1;%2", СокрЛП(Выборка.Код), Наименование));
    КонецЦикла;

    Запись.Закрыть();

КонецПроцедуры

Кодировка ANSI (windows-1251) нужна, чтобы русский Excel открыл файл двойным щелчком без «кракозябр». Для загрузки в веб-сервисы обычно просят UTF-8 — замените на КодировкаТекста.UTF8.

⚠️ Процедура выполняется на сервере 1С, поэтому путь ИмяФайла — это папка на сервере, а не на компьютере пользователя. В клиент-серверной базе у службы 1С должны быть права на запись в эту папку.

Запуск по расписанию

Два рабочих варианта:

  • 🗓 Через «Дополнительные отчеты и обработки». Подключите обработку в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Если программист описал в ней серверную команду, в карточке появится настройка расписания, и выгрузка пойдёт регламентным заданием.
  • 🖥 Через планировщик Windows. Запускайте клиент с параметром /Execute, а в обработке при открытии выполняйте выгрузку и завершайте сеанс:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Выгрузка" /P"пароль" /Execute"D:\Scripts\export.epf"

Для серверной базы вместо /F укажите /S"server\buh". Пароль в bat-файле лучше заменить на пользователя с минимальными правами — он хранится открытым текстом.

COM-соединение из Python, 1С или скриптов

COM-соединение даёт внешней программе на Windows полный доступ к объектной модели и запросам. Сначала зарегистрируйте компоненту от имени администратора, подставив свою версию платформы:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\comcntr.dll"

Подключение из Python (пакет pywin32):

import win32com.client

connector = win32com.client.Dispatch("V83.COMConnector")
base = connector.Connect('File="D:\\Bases\\Buh";Usr="Выгрузка";Pwd="пароль";')
query = base.NewObject("Запрос")
query.Текст = "ВЫБРАТЬ Код, Наименование ИЗ Справочник.Контрагенты"
selection = query.Выполнить().Выбрать()
while selection.Следующий():
    print(selection.Код, selection.Наименование)

Разрядность Python и платформы должна совпадать: 64-битный Python работает только с 64-битной 1С. Каждое COM-подключение занимает лицензию, как обычный сеанс.

Проблемы при экспорте данных из 1С и их решение

Диагностика: выберите симптом

Если выгрузка большого отчёта зависает или падает по памяти, сузьте период и уберите лишние поля. Отчёт на 300 тысяч строк надёжнее выгрузить тремя частями по кварталу, чем одним годом.

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

Можно ли выгрузить данные из 1С без запуска самой 1С?
Только из клиент-серверной базы — SQL-запросами к СУБД. Файловую базу (1Cv8.1CD) читает лишь платформа 1С, сторонние программы с ней не работают.
Что передать аудитору или новой программе, если просят «всю базу»?
Аудитору обычно хватает оборотно-сальдовой ведомости, карточек счетов и журналов документов в xlsx. Файл .dt нужен, только если получатель развернёт его в своей 1С.
Как выгрузить остатки на дату для переноса в другую учётную систему?
Сформируйте оборотно-сальдовую ведомость на нужную дату с разворотом по субконто или отчёт «Остатки товаров» и сохраните в xlsx. Для товаров добавьте в универсальном отчёте поля кода и артикула, чтобы при загрузке позиции сопоставились.
Как перенести данные из 1С в Google Таблицы?
Сохраните отчёт в xlsx и откройте файл в Google Диске либо импортируйте CSV в UTF-8. Для регулярного обновления нужен OData или скрипт, который сам выкладывает файл.
Занимает ли OData-подключение лицензию 1С?
Да, обращения через опубликованный веб-сервис идут в сеансах 1С и используют клиентскую лицензию на время запроса. Учитывайте это, если лицензий впритык.