Выгрузка данных из 1С Предприятие: 7 рабочих способов

· 9 мин

Содержание

Выгрузка данных из 1С почти никогда не требует Конфигуратора и выгрузки всей базы в .dt. Чтобы отдать бухгалтеру остатки склада или передать номенклатуру в другую программу, хватает двух кнопок в режиме «Предприятие»: список выгружается в Excel, а для обмена между базами есть готовые механизмы XML.

Полный .dt нужен только для переноса всей информационной базы целиком. Для выборочной выгрузки данных из 1С:Предприятие под каждую задачу — отчёт, обмен, интеграция с сайтом — свой способ. Ниже семь рабочих вариантов: от простого экспорта в Excel до REST‑интерфейса. Выбирайте по тому, кому и в каком формате нужны данные.

Какой способ выгрузки выбрать?

Что подготовить перед выгрузкой: права и копия базы

Проверьте три вещи до того, как нажимать кнопки.

  • 🔑 Права. Экспорт списка в Excel доступен любому, кто видит сам список. А вот запуск внешних обработок и выгрузка через обмен требуют отдельного права — его настраивает администратор в профилях групп доступа (Администрирование → Настройки пользователей и прав).
  • 💾 Копия перед записью обратно. Сама выгрузка данные не портит — она только читает. Но если вы готовите файл для последующей загрузки в другую базу, сделайте архивную копию той базы, куда будете грузить.
  • 📂 Куда класть файл. На сервере 1С путь к файлу считается относительно сервера, а не вашего компьютера. Если выгрузка идёт на клиент-серверной базе через код, используйте помещение во временное хранилище или каталог, доступный серверу.

Для разовой выборки по сложному условию удобно сначала собрать данные в консоли запросов или отчёте на СКД, а уже результат сохранить в файл. Так не придётся выгружать лишнее.

Выгрузка в Excel и CSV: быстрый экспорт списков и отчётов

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

Из списка справочника или журнала документов:

  1. Откройте нужный список.
  2. В командной панели нажмите Еще → Вывести список.
  3. В окне настройки выберите выводимые колонки и тип Табличный документ.
  4. Нажмите ОК — данные откроются как таблица.
  5. Сохраните: Главное меню → Файл → Сохранить как и выберите формат.

Из готового отчёта всё ещё проще: сформируйте отчёт и сохраните его тем же пунктом Главное меню → Файл → Сохранить как.

Доступные форматы при сохранении табличного документа:

ФорматРасширениеКогда использовать
Лист Excel.xlsxобычная работа в современном Excel
Лист Excel 97.xlsполучатель на старой версии Office
Текст с разделителями.csv / .txtзагрузка в другую программу, банк-клиент
Табличный документ.mxlобмен между базами 1С без потери оформления
Документ ODF.odsполучатель на LibreOffice/OpenOffice

Проверьте кодировку при выгрузке в CSV. Если принимающая программа ждёт Windows‑1251, а вы сохранили в UTF‑8, кириллица превратится в «кракозябры». В окне сохранения .txt/.csv кодировку можно задать явно.

Вывести список выгружает то, что видно в списке с учётом текущего отбора и группировок. Снимите лишние отборы, если нужны все строки.

Выгрузка в XML: универсальный обмен между базами

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

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

  • Типовая обработка «Выгрузка и загрузка данных XML». Берётся с диска ИТС, запускается через Файл → Открыть (при наличии права на внешние обработки). Отмечаете галочками нужные объекты метаданных — она выгружает их в один XML. На приёмной стороне та же обработка грузит файл обратно. Подходит, когда конфигурации на обеих сторонах идентичны.
  • Настроенный обмен данными. В типовых конфигурациях (Администрирование → Синхронизация данных) обмен между базами уже работает по готовым правилам и формирует XML‑сообщения автоматически. Это способ для постоянного обмена, а не разовой выгрузки.
  • Конвертация данных (КД 3) с правилами обмена. Нужна, когда структура баз разная: правила сопоставляют объект-источник с объектом-приёмником. Файл правил (.xml) подключается к универсальной обработке обмена.

Для разовой выгрузки в собственном формате данные пишут кодом через сериализацию XDTO или объект ЗаписьXML. Это уже задача для программиста — об этом в разделе про внешние обработки.

Выгрузка в DBF: совместимость со старыми программами

DBF просят, когда данные нужно передать в программу прошлых лет: старую бухгалтерию, складскую систему, некоторые банк-клиенты. Встроенной кнопки «сохранить в DBF» у табличного документа нет — файл формируют кодом через объект XBase.

Минимальный рабочий пример — выгрузка номенклатуры:

Файл = Новый XBase;
Файл.Кодировка = КодировкаXBase.OEM;
Файл.Поля.Добавить("CODE", "S", 9);
Файл.Поля.Добавить("NAME", "S", 50);
Файл.СоздатьФайл("C:\Выгрузка\nomenkl.dbf");

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Файл.Добавить();
    Файл.CODE = Выборка.Код;
    Файл.NAME = Выборка.Наименование;
    Файл.Записать();
КонецЦикла;

Файл.ЗакрытьФайл();

Что здесь важно:

  • 🔤 Кодировка. Старые DBF обычно в OEM (DOS‑866). Если принимающая программа путает регистр и русские буквы, попробуйте КодировкаXBase.ANSI.
  • 📏 Длина полей. Для строкового поля ("S") третий параметр — максимальная длина. Если наименование длиннее, оно обрежется, поэтому задавайте запас.
  • 🧩 Типы полей. "N" — число (четвёртый параметр задаёт знаки после запятой), "D" — дата, "L" — логическое. Числовое поле нельзя заполнять строкой.

При чтении готового DBF обратно перебор строк идёт в цикле с проверкой конца файла методом ВКонце().

Автоматическая выгрузка по расписанию

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

Клиент-серверная база — регламентное задание. Логику выгрузки оформляют в отдельном методе и вешают на регламентное задание. Расписание задаётся в режиме «Предприятие» (Администрирование → Обслуживание → Регламентные и фоновые задания). Сервер сам запустит задание в указанное время, пользователь не нужен.

Файловая база — планировщик Windows. Регламентные задания в файловом варианте выполняются только пока открыт сеанс, поэтому надёжнее запускать 1С в пакетном режиме по расписанию ОС. Команда для планировщика:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"C:\Base" /N"Выгрузка" /P"пароль" /Execute"C:\Scripts\vygruzka.epf" /DisableStartupMessages
  • ENTERPRISE — запуск в режиме «Предприятие».
  • /F — путь к файловой базе (для серверной — /S сервер\база).
  • /N и /P — пользователь и пароль.
  • /Execute — обработка .epf, которая и делает выгрузку, после чего платформа закрывается сама.
  • /DisableStartupMessages — без всплывающих окон, чтобы запуск не завис в ожидании нажатия.

Пароль в строке планировщика лежит открытым текстом. Заведите для фоновой выгрузки отдельного пользователя с минимальными правами — только на чтение нужных данных.

Прямой доступ к базе через ODBC: когда это оправдано

Здесь нужна честность. 1С хранит данные в SQL Server или PostgreSQL, и формально к этой базе можно подключиться по ODBC напрямую. На практике это плохая идея для большинства задач.

Почему прямой ODBC к базе 1С рискован:

  • Имена таблиц и полей обфусцированы (_Reference123, _Document456_IDRRef) и недокументированы.
  • Структура меняется при каждом обновлении конфигурации — ваш SQL‑запрос сломается без предупреждения.
  • Чтение в обход платформы игнорирует итоги, разделение данных и права — легко получить несогласованные цифры.

Где ODBC уместен: когда наоборот — 1С читает внешнюю базу. Для этого есть штатный механизм внешних источников данных (ВнешниеИсточникиДанных), он подключается к любому ODBC‑источнику и работает с его таблицами как с обычными объектами 1С. Если же задача именно отдать данные во внешнюю СУБД, записывайте в неё из 1С через тот же механизм внешних источников или через COM‑объект ADO — но не читайте SQL‑базу 1С напрямую сторонними инструментами.

REST‑интерфейс OData: выгрузка для сайта и внешних сервисов

Когда данные должен забирать не человек, а другая система — сайт, мобильное приложение , сервис интеграции — используйте стандартный интерфейс OData. Платформа сама публикует справочники, документы и регистры как REST‑ресурсы, писать серверный код не нужно.

Порядок настройки:

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

После этого данные доступны по HTTP. Пример запроса номенклатуры в JSON:

http://ваш-сервер/база/odata/standard.odata/Catalog_Номенклатура?$format=json

Полезные параметры запроса:

ПараметрЧто делает
$format=jsonответ в JSON вместо XML
$top=100первые 100 записей
$filter=отбор, например $filter=DeletionMark eq false
$select=только нужные поля

OData отдаёт данные под правами указанного пользователя. Заведите для интеграции отдельного пользователя только с чтением нужных объектов и закройте доступ к публикации паролем на уровне веб-сервера.

Стандартный REST‑интерфейс доступен на платформе не ниже 8.3.5. Если нужен формат ответа, которого OData не даёт, пишут собственный HTTP‑сервис — это уже разработка.

Внешние обработки для нестандартных выгрузок

Когда ни один типовой способ не подходит — нужен особый формат файла, сложная выборка с расчётами, выгрузка по хитрому условию — задачу решает внешняя обработка (.epf).

Внутри обработки доступен весь язык 1С: запросом собираете данные, а дальше записываете их в нужный формат —

  • 📄 текстовый файл через объект ЗаписьТекста;
  • 🧾 XML через ЗаписьXML или сериализацию XDTO;
  • 📊 табличный документ, который потом сам сохраняется в .xlsx;
  • 🗃 DBF через XBase, как в примере выше.

Готовую обработку кладут в каталог, подключают через Файл → Открыть или помещают в справочник дополнительных обработок (Администрирование → Печатные формы, отчёты и обработки), чтобы её можно было запускать из интерфейса и ставить на расписание.

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

Перед запуском выгрузки проверьте
Выполнено: 0 / 5

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

Можно ли выгрузить данные без прав администратора?
Экспорт списков и отчётов в Excel доступен обычному пользователю — достаточно видеть сам список. А вот запуск внешних обработок, настройка обмена и публикация OData требуют отдельных прав, которые выдаёт администратор.
Чем выгрузка в XML отличается от выгрузки всей базы в `.dt`?
.dt — это слепок всей информационной базы целиком, он грузится только в пустую базу идентичной конфигурации и делается из Конфигуратора в монопольном режиме. XML выгружает выборочные объекты (нужные справочники и документы) и подходит для обмена между работающими базами.
Почему в выгруженном CSV вместо русских букв «кракозябры»?
Не совпала кодировка. 1С по умолчанию может сохранить в UTF‑8, а принимающая программа ждёт Windows‑1251 (или наоборот). В окне сохранения текстового файла выберите кодировку, которую ждёт получатель.
Как выгружать данные автоматически, если база файловая?
Регламентные задания в файловой базе работают только при открытом сеансе. Надёжнее запускать 1С в пакетном режиме через планировщик Windows командой с ключом /Execute и внешней обработкой, которая делает выгрузку и закрывает платформу.
Можно ли читать базу 1С напрямую через ODBC из Excel или BI?
Технически да, но структура таблиц обфусцирована и меняется при каждом обновлении конфигурации, поэтому такой отчёт нестабилен. Для отдачи данных наружу правильнее опубликовать OData‑интерфейс — он отдаёт понятные имена объектов и учитывает права.