Как выгрузить данные из 1С 8: способы для Excel, XML, DBF и JSON
Содержание
Самая частая выгрузка из 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. Сохранить готовый отчёт
- Сформируйте отчёт: ОСВ, анализ счёта, ведомость по зарплате — любой.
- Нажмите значок дискеты
Сохранитьв шапке отчёта илиГлавное меню → Файл → Сохранить как. - В поле «Тип файла» выберите «Лист Excel 2007 (*.xlsx)».
- Укажите папку и имя файла, нажмите «Сохранить».
Так же сохраняются печатные формы: счёт, акт, ТОРГ-12. Откройте форму кнопкой Печать, затем — та же дискета.
| Тип файла | Когда выбирать |
|---|---|
*.xlsx | Основной вариант, до 1 048 576 строк на лист |
*.xls | Только для старого Excel 2003, лимит 65 536 строк |
*.mxl | Табличный документ 1С: открыть потом в 1С без потерь оформления |
*.pdf | Отправить контрагенту, чтобы не правили |
*.ods | Для LibreOffice и МойОфис |
Способ 2. Вывести список документов или справочника
Журнал документов , список контрагентов или номенклатуры — это не отчёт, кнопки «Сохранить» у него нет.
- Откройте список, настройте отбор и колонки (
Ещё → Изменить формуилиЕщё → Настроить список). - Выполните
Ещё → Вывести список.... - Отметьте нужные колонки, флажок «Только выделенные» — если выгружаете не весь список.
- В открывшемся табличном документе нажмите
Сохранитьи выберите 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. Порядок:
- Откройте обработку:
Главное меню → Файл → Открыть, выберите файл.epf. - На вкладке выгрузки отметьте объекты: справочники, документы, регистры.
- Задайте период и отборы, если нужны.
- Укажите имя файла и нажмите «Выгрузить данные».
В базе-приёмнике та же обработка открывается на вкладке загрузки.
⚠️ Обработка переносит объекты по уникальным идентификаторам. Если в приёмнике уже заведены те же контрагенты вручную, получите дубли.
Универсальный обмен по правилам
Обработка «Универсальный обмен данными в формате 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:
- Опубликуйте базу на веб-сервере (
Администрирование → Публикация на веб-серверев Конфигураторе) с флажком «Публиковать стандартный интерфейс OData». - В режиме 1С:Предприятие укажите, какие объекты доступны через интерфейс. В типовых конфигурациях для этого есть форма «Настройка стандартного интерфейса OData» — найдите её через
Все функции → Обработки. - Создайте отдельного пользователя только с правами на чтение.
Адрес вида 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?
Как выгрузить из 1С в CSV?
ЗаписьТекста с нужным разделителем и кодировкой.Сохранится ли оформление отчёта при выгрузке в Excel?
Нужна ли отдельная лицензия для автоматической выгрузки?
Можно ли выгрузить данные из 1С, если программа не запускается?
.dt, её разворачивают на другом компьютере с платформой 1С и выгружают оттуда.