Как выгрузить данные из 1С 8: способы для Excel, XML, DBF и JSON

· 10 мин

Содержание

Самая частая выгрузка из 1С 8.3 — отчёт или список в Excel: откройте отчёт, нажмите значок дискеты Сохранить (или Главное меню → Файл → Сохранить как) и выберите тип «Лист Excel 2007 (*.xlsx)». Для списка документов или справочника сначала выполните Ещё → Вывести список..., а потом сохраните результат так же.

Остальные форматы выбирают по задаче. Excel — для анализа и передачи бухгалтеру. XML — для переноса данных между базами 1С. DBF — когда принимающая программа старая и понимает только его. JSON и OData — для сайтов, CRM и сервисов, которые забирают данные сами. Ниже — как сделать каждую выгрузку в 1С 8 без программиста и где без него не обойтись.

Подготовка к выгрузке данных: права, отборы и копия базы

Сама выгрузка данные не меняет. Но многие способы идут в паре с загрузкой в другую базу, и вот там ошибка стоит дорого.

Перед началом проверьте три вещи:

  • 🔑 Права. Пользователю нужны права на просмотр выгружаемых объектов. Для внешних обработок нужно ещё право на их открытие — обычно оно есть у роли администратора, а у рядового бухгалтера его нет.
  • 🧭 Команда «Все функции». Многие встроенные обработки открываются только через неё. Включается в Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”».
  • 💾 Резервная копия. Если выгрузка готовится для загрузки в другую базу — сделайте копию базы -приёмника. Файловую базу достаточно скопировать вместе с файлом 1Cv8.1CD при закрытой программе, серверную — выгрузить в .dt через Конфигуратор или средствами СУБД.

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

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

Выгрузка из 1С в Excel: от кнопки до программного способа

Excel покрывает 80% бытовых задач. Способов четыре, от самого простого.

Способ 1. Сохранить готовый отчёт

  1. Сформируйте отчёт: ОСВ, анализ счёта, ведомость по зарплате — любой.
  2. Нажмите значок дискеты Сохранить в шапке отчёта или Главное меню → Файл → Сохранить как.
  3. В поле «Тип файла» выберите «Лист Excel 2007 (*.xlsx)».
  4. Укажите папку и имя файла, нажмите «Сохранить».

Так же сохраняются печатные формы: счёт, акт, ТОРГ-12. Откройте форму кнопкой Печать, затем — та же дискета.

Тип файлаКогда выбирать
*.xlsxОсновной вариант, до 1 048 576 строк на лист
*.xlsТолько для старого Excel 2003, лимит 65 536 строк
*.mxlТабличный документ 1С: открыть потом в 1С без потерь оформления
*.pdfОтправить контрагенту, чтобы не правили
*.odsДля LibreOffice и МойОфис

Способ 2. Вывести список документов или справочника

Журнал документов , список контрагентов или номенклатуры — это не отчёт, кнопки «Сохранить» у него нет.

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

💡 Для пяти-десяти строк быстрее выделить их в списке, нажать Ctrl+C и вставить в Excel. Колонки сохранятся.

Способ 3. Универсальный отчёт и отчёты на СКД

Когда нужна выборка, которой нет в стандартных отчётах, — например, все реквизиты контрагентов с ИНН, КПП и договорами, — используйте «Универсальный отчёт». В 1С:Бухгалтерии 3.0 он лежит в разделе Отчеты → Стандартные отчеты.

В нём выбирают тип объекта (справочник, документ, регистр), сам объект, поля и отборы. Результат сохраняется в Excel обычным способом. Почти любой отчёт на системе компоновки данных можно перенастроить через Настройки: добавить поля, убрать группировки и получить «плоскую» таблицу, удобную для сводной таблицы Excel.

Способ 4. Программно, без участия пользователя

Табличный документ записывается в файл одной строкой встроенного языка:

ТабДок.Записать("C:\Выгрузка\osv.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Это основа для автоматической выгрузки по расписанию — о ней ниже.

Выгрузка в XML: перенос данных между базами 1С

XML нужен, когда данные из одной базы 1С надо перенести в другую. Вариантов три, и путать их нельзя.

ИнструментКогдаРиски
«Выгрузка и загрузка данных XML»Перенос между базами с одинаковой конфигурациейПри разных версиях конфигураций загрузка падает или ломает объекты
«Универсальный обмен данными в формате XML» + правила обменаМежду разными конфигурациями (например, старая УТ → Бухгалтерия)Нужны правила под конкретную пару конфигураций
Синхронизация данных (EnterpriseData)Регулярный обмен типовых конфигурацийНастраивается один раз, но требует аккуратного сопоставления

Выгрузка через «Выгрузку и загрузку данных XML»

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

  1. Откройте обработку: Главное меню → Файл → Открыть, выберите файл .epf.
  2. На вкладке выгрузки отметьте объекты: справочники, документы, регистры.
  3. Задайте период и отборы, если нужны.
  4. Укажите имя файла и нажмите «Выгрузить данные».

В базе-приёмнике та же обработка открывается на вкладке загрузки.

⚠️ Обработка переносит объекты по уникальным идентификаторам. Если в приёмнике уже заведены те же контрагенты вручную, получите дубли.

Универсальный обмен по правилам

Обработка «Универсальный обмен данными в формате XML» встроена в типовые конфигурации — найдите её через Все функции → Обработки. Правила обмена — отдельный файл, который описывает, какой объект источника во что превращается в приёмнике. Для типовых пар правила готовят разработчики конфигураций или франчайзи; для нетиповых их пишут в конфигурации «Конвертация данных ».

Регламентированные отчёты и декларации

Отдельный случай XML — выгрузка отчётности для ФНС, СФР и Росстата. В форме отчёта есть кнопка Выгрузить: 1С проверит контрольные соотношения и сохранит файл в формате, который примет контролирующий орган.

Выгрузка в DBF для старых систем

DBF до сих пор требуют некоторые банковские клиенты, складские и учётные программы из 90-х и 2000-х. Готовой кнопки «Сохранить в DBF» в 1С 8 нет. Путей два.

Через Excel и LibreOffice. Выгрузите таблицу в xlsx, откройте её в LibreOffice Calc и сохраните как «dBASE (.dbf)». Современный Excel в DBF не сохраняет.

Минусы: типы полей и кодировку LibreOffice подбирает сам, а принимающая программа часто требует строгих длин и кодировку DOS (OEM, 866).

Программно через объект XBase. Встроенный язык 1С умеет создавать DBF-файлы напрямую. Пример выгрузки контрагентов:

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

Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.ЭтоГруппа Тогда
        Продолжить;
    КонецЕсли;
    Файл.Добавить();
    Файл.INN  = Выборка.ИНН;
    Файл.NAME = Лев(Выборка.Наименование, 100);
    Файл.Записать();
КонецЦикла;

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

Типы полей: S — строка, N — число (с длиной и точностью), D — дата, L — логическое. Имя поля в DBF — не длиннее 10 символов латиницей.

💡 Попросите у принимающей стороны точную структуру файла: имена полей, длины и кодировку. Без неё DBF «вроде открывается», но данные съезжают.

Выгрузка в JSON и OData для современных интеграций

Сайты, CRM, маркетплейсы и BI-системы обычно ждут JSON. Платформа 1С:Предприятие 8.3 работает с JSON штатно, начиная с версии 8.3.6.

Разовый файл JSON

Данные = Новый Массив;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.ЭтоГруппа Тогда
        Продолжить;
    КонецЕсли;
    Данные.Добавить(Новый Структура("Код, Наименование, Артикул",
        Выборка.Код, Выборка.Наименование, Выборка.Артикул));
КонецЦикла;

Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл("C:\Выгрузка\nomenklatura.json");
ЗаписатьJSON(Запись, Данные);
Запись.Закрыть();

Такой код запускают из внешней обработки. Ссылки, перечисления и даты напрямую в ЗаписатьJSON не передаются — их сначала превращают в строки или используют СериализаторXDTO.

OData: данные забирают сами

Если внешняя система должна брать данные регулярно, удобнее не выгружать файлы, а открыть доступ по протоколу OData:

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

Адрес вида http://сервер/база/odata/standard.odata/Catalog_Контрагенты?$format=json вернёт справочник в JSON.

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

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

Если отчёт выгружают каждый день вручную, это время можно вернуть. Есть три рабочих схемы.

Регламентное задание. Программист добавляет в конфигурацию (или в расширение) задание с процедурой выгрузки и расписанием. В клиент-серверном варианте задания выполняет сервер 1С сам. В файловом варианте они работают, только пока открыт хотя бы один сеанс или настроен отдельный запуск — на это часто натыкаются.

Запуск по командной строке + Планировщик Windows. Обработку выгрузки запускают параметром /Execute:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Выгрузка" /P"пароль" /Execute"D:\Scripts\export.epf" /DisableStartupMessages

Номер версии в пути подставьте свой. Обработка должна в модуле при открытии сделать выгрузку и закрыть программу. Задание создаётся в Планировщике заданий Windows с нужным временем.

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

Резервная выгрузка всей базы. Для бэкапа — не для обмена — подходит выгрузка в .dt:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Админ" /P"пароль" /DumpIB"E:\Backup\buh.dt"

⚠️ На время выгрузки .dt нельзя работать в базе: запускайте её ночью и предупредите пользователей, что открытые сеансы помешают.

Если стандартных способов мало: COM-соединение, ODBC, HTTP-сервисы

Когда данные нужны другой программе «на лету», используют подключение к 1С извне.

МетодКак работаетКогда подходит
COM-соединение (V83.COMConnector)Внешняя программа на Windows подключается к базе и выполняет запросы на языке 1ССкрипты на Python, VBScript, PowerShell; обработки в Excel
HTTP-сервисыПрограммист описывает свой API в конфигурации или расширенииИнтеграция с сайтом, мобильным приложением
ODataСтандартный REST-интерфейс без программированияBI-системы, Power BI, простые интеграции
Прямые запросы к СУБДЧтение таблиц MS SQL или PostgreSQL в обход 1СПочти никогда

Чтение базы напрямую через SQL выглядит соблазнительно, но имена таблиц там служебные (_Reference25, _Document112), меняются при изменении конфигурации, а фирма 1С такой доступ не поддерживает. Для отчётности лучше OData или COM.

Современного ODBC-драйвера для баз 1С 8 фирма 1С не выпускает. Сторонние решения есть, но их надёжность проверяйте сами.

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

Типичные ошибки при выгрузке и как их обойти

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

Ещё одна частая жалоба: «нет кнопки “Вывести список "». Её нет в формах, где разработчик отключил командную панель, — тогда помогает выделение и Ctrl+C или «Универсальный отчёт».

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

Можно ли выгрузить из 1С сразу несколько отчётов в один файл Excel?
Штатно — нет, каждый отчёт сохраняется отдельно. Объединяют листы уже в Excel или программно, собирая несколько табличных документов в один.
Как выгрузить из 1С в CSV?
Сохраните таблицу в xlsx, затем в Excel выберите «Сохранить как → CSV». Для регулярной выгрузки проще написать обработку, которая пишет текст через ЗаписьТекста с нужным разделителем и кодировкой.
Сохранится ли оформление отчёта при выгрузке в Excel?
Шрифты, границы, заливка и объединённые ячейки сохраняются. Расшифровки, группировки «плюсиками» и интерактивные ссылки — нет.
Нужна ли отдельная лицензия для автоматической выгрузки?
Запуск 1С по расписанию или COM-подключение занимает лицензию, как обычный пользователь. Если все лицензии заняты днём, ставьте выгрузку на ночь.
Можно ли выгрузить данные из 1С, если программа не запускается?
Из самой программы — нет. Но если цел файл базы или копия .dt, её разворачивают на другом компьютере с платформой 1С и выгружают оттуда.