Выгрузка данных из 1С:Предприятие — одна из самых востребованных операций при интеграции с другими системами, миграции на новую версию или резервном копировании. Чаще всего пользователям требуется выгрузить справочники: номенклатуру, контрагентов, сотрудников, организации или физических лиц. Но даже опытные бухгалтеры и программисты 1С иногда сталкиваются с ошибками при экспорте — от некорректного формата файла до потери связей между объектами.

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

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

📊 Для какой цели вам нужна выгрузка из 1С?
Перенос данных в другую программу
Резервное копирование
Анализ данных в Excel
Интеграция с сайтом
Другое

1. Стандартные способы выгрузки справочников

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

Самый простой способ — использование команды Файл → Сохранить как... в открытом справочнике. Этот метод подходит для выгрузки небольших списков (до 10 000 строк) в форматы:

  • 📄 TXT/CSV — универсальный формат для импорта в Excel или другие программы. Поддерживает разделители (табуляция, запятая, точка с запятой).
  • 📊 XLS/XLSX — удобен для дальнейшей обработки в Microsoft Excel или Google Sheets. Сохраняет форматирование ячеек.
  • 📑 HTML — редко используется, но может пригодиться для веб-отчётов.
  • 🖼️ MXL (1С) — внутренний формат для обмена между базами 1С. Сохраняет все свойства объектов, включая ссылки и иерархию.

Для выгрузки через Сохранить как... откройте нужный справочник (например, Номенклатура или Контрагенты), выделите требуемые строки (или нажмите Ctrl+A для выделения всех) и выберите формат. Обратите внимание: в CSV не сохраняются картинки, вложения и дополнительные реквизиты — только основные поля.

Если нужна выгрузка с сохранением всех свойств объектов (включая пользовательские реквизиты и табличные части), используйте механизм Выгрузка данных через Администрирование → Обмен данными → Выгрузка данных. Здесь можно настроить:

  • 🔄 Выбор конкретных справочников и документов.
  • 📂 Путь сохранения и формат (например, XML или JSON).
  • 🔗 Указание связей между объектами (важно для последующего импорта).
💡

Перед выгрузкой больших справочников (более 50 000 записей) закройте все окна 1С и отключите фоновые задачи. Это ускорит процесс и снизит риск ошибок.

2. Выгрузка через «План обмена» для регулярного обмена

Если выгрузка нужна не разово, а для регулярной синхронизации с другой базой 1С или внешней системой, настройте План обмена. Этот инструмент позволяет автоматизировать обмен данными по расписанию или по событию (например, при изменении справочника).

Алгоритм настройки:

  1. Перейдите в Администрирование → Обмен данными → Планы обмена.
  2. Создайте новый план обмена или выберите существующий (например, ОбменССайтом).
  3. В разделе Настройки синхронизации укажите:
    • 📤 Формат обмена (XML, JSON или Сообщение обмена).
    • 📁 Каталог обмена (сетевая или локальная папка).
    • Расписание (если нужен автоматический обмен).
  • Включите нужные справочники в обмен через Состав данных.
  • Запустите выгрузку вручную или дождитесь автоматического запуска.
  • Преимущество этого метода — сохранение связей между объектами (например, при выгрузке Заказов покупателей вместе с ними экспортируются связанные Контрагенты и Номенклатура). Однако настройка плана обмена требует прав администратора и понимания структуры данных.

    Убедиться, что у пользователя есть права на обмен данными|

    Создать резервную копию базы|

    Проверить свободное место в каталоге обмена|

    Согласовать формат данных с получателем (если обмен с внешней системой)|

    Тестировать обмен на копии базы перед применением на рабочей версии-->

    3. Выгрузка в Excel с сохранением структуры

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

    Самый надёжный способ — выгрузка через Универсальный обмен данными (входит в стандартную поставку 1С). Алгоритм:

    1. Откройте Файл → Открыть... и выберите обработку УниверсальныйОбменДанными.epf (лежит в каталоге установки 1С).
    2. В окне обработки укажите:
      • 📋 Источник данных — справочник (например, Номенклатура).
      • 📑 Формат выгрузкиExcel или CSV.
      • 📌 Поля для выгрузки — отметьте галочками нужные колонки.
  • Нажмите Выгрузить и сохраните файл.
  • Для выгрузки иерархических справочников (например, Номенклатура с группами и подгруппами) используйте обработку ВыгрузкаДереваСправочникаВExcel.epf. Она сохраняет структуру в виде отступов или дополнительных колонок с уровнями вложенности.

    Как выгрузить табличные части справочников?

    Табличные части (например, Цены номенклатуры или Контакты контрагента) не экспортируются стандартными средствами. Для их выгрузки:

    1. Используйте обработку ВыгрузкаДанныхВExcelПлюс.epf (доступна на Инфостарте).

    2. Или напишите запрос на языке 1С:Предприятие с объединением основной таблицы и табличных частей через ЛЕВОЕ СОЕДИНЕНИЕ.

    3. Для автоматизации создайте внешнюю обработку с кнопкой "Выгрузить всё", которая последовательно экспортирует основные реквизиты и табличные части в разные листы Excel.

    4. Программная выгрузка для разработчиков

    Если стандартные методы не подходят (например, нужна выгрузка по сложному алгоритму или с преобразованием данных), используйте встроенный язык 1С:Предприятие. Ниже приведён пример кода для выгрузки справочника Контрагенты в JSON-файл с сохранением всех реквизитов и табличных частей.

    Пример кода для выгрузки в JSON:

    Процедура ВыгрузитьКонтрагентовВJSON(КаталогВыгрузки)
    

    // Создаём объект для записи JSON

    ЗаписьJSON = Новый ЗаписьJSON;

    ЗаписьJSON.УстановитьСтроку();

    // Выбираем все контрагенты

    Выборка = Справочники.Контрагенты.Выбрать();

    Пока Выборка.Следующий() Цикл

    // Формируем структуру данных

    ДанныеКонтрагента = Новый Структура();

    ДанныеКонтрагента.Вставить("Ссылка", Выборка.Ссылка.УникальныйИдентификатор());

    ДанныеКонтрагента.Вставить("Наименование", Выборка.Наименование);

    ДанныеКонтрагента.Вставить("ИНН", Выборка.ИНН);

    ДанныеКонтрагента.Вставить("КПП", Выборка.КПП);

    // Добавляем табличную часть "Контакты"

    Контакты = Новый Массив();

    Для Каждого Контакт Из Выборка.Контакты Цикл

    Контакты.Добавить(Контакт.Представление);

    КонецЦикла;

    ДанныеКонтрагента.Вставить("Контакты", Контакты);

    // Записываем в JSON

    ЗаписьJSON.ЗаписатьJSON(ДанныеКонтрагента);

    КонецЦикла;

    // Сохраняем файл

    ИмяФайла = КаталогВыгрузки + "Контрагенты.json";

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

    ЗаписьJSON.Записать(ИмяФайла);

    Сообщить("Выгрузка завершена: " + ИмяФайла);

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

    Для выгрузки в XML замените ЗаписьJSON на ЗаписьXML и адаптируйте структуру под нужный формат. Этот метод гибко настраивается: можно добавлять фильтры (например, выгружать только активных контрагентов), преобразовывать данные или экспортировать связанные справочники.

    Если требуется выгрузка больших объёмов данных (более 100 000 записей), используйте пакетную обработку:

    • 📦 Разбейте данные на порции по 10 000–20 000 записей.
    • 🔄 Выгружайте порции последовательно в отдельные файлы.
    • 📂 Объедините файлы после выгрузки (например, через PowerShell или Python).
    💡

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

    5. Выгрузка через внешние обработки и расширения

    Для упрощения выгрузки разработчики и партнёры 1С создают внешние обработки, которые расширяют стандартные возможности. Популярные решения:

    • 🔧 «Выгрузка в Excel (плюс)» — поддерживает выгрузку табличных частей, иерархических справочников и пользовательских реквизитов. Доступна на Инфостарт.
    • 📤 «Универсальный обмен данными» — позволяет настраивать шаблоны выгрузки для разных форматов (XML, JSON, CSV).
    • 🔄 «Обмен с МойСклад» — специализированная обработка для интеграции с сервисом МойСклад.
    • 📊 «Выгрузка отчётов в Excel» — выгружает не только справочники, но и отчёты с сохранением формул.

    Преимущества внешних обработок:

    • ⚡ Быстрая настройка без программирования.
    • 🛠️ Поддержка сложных структур (например, выгрузка Документов со всеми табличными частями).
    • 🔄 Возможность сохранения настроек для повторного использования.

    Где скачать обработки:

    • Инфостарт (infostart.ru) — крупнейшая база решений для 1С.
    • 1С:ИТС — официальные обработки от фирмы 1С.
    • GitHub — открытые решения от сообщества (например, 1C-Excel-Templates).

    Перед использованием внешней обработки:

    ⚠️ Внимание: Проверьте обработку на тестовой базе! Некоторые решения могут содержать ошибки или конфликтовать с вашей конфигурацией. Особенно осторожно используйте обработки с открытым кодом — они могут модифицировать данные.

    6. Выгрузка для интеграции с другими системами

    Если цель выгрузки — интеграция с внешними системами (например, Битрикс24, 1С-Бухгалтерия в облаке, МойСклад или CRM), используйте специализированные форматы и протоколы:

    • 🔗 REST API — для обмена с веб-сервисами (например, отправка данных в Битрикс24 через HTTP-запросы).
    • 📦 CommerceML — стандартный формат для обмена с интернет-магазинами (1С-Битрикс, Shop-Script).
    • 📡 JSON/XML через FTP — универсальный способ для автоматического обмена.

    Пример настройки интеграции с МойСклад:

    1. В МойСклад получите API-ключ в разделе Настройки → Интеграции.
    2. В 1С настройте HTTP-соединение через ИнтернетПодключение.
    3. Используйте обработку ОбменСМойСклад (доступна на Инфостарт) или напишите собственный скрипт для отправки данных.

    Для обмена с 1С:Бухгалтерия 8 в облаке используйте встроенный механизм Обмен данными с другими программами:

    1. В облачной версии перейдите в Администрирование → Обмен данными.
    2. Создайте новую настройку обмена и укажите локальную базу как источник.
    3. Выберите справочники для синхронизации (например, Контрагенты и Номенклатура).
    4. Запустите обмен вручную или настройте расписание.

    Таблица сравнения форматов для интеграции:

    Формат Подходит для Преимущества Недостатки
    CommerceML Интернет-магазины (1С-Битрикс, Shop-Script) Стандартизирован, поддерживает номенклатуру, цены, остатки Сложная структура, не подходит для бухгалтерских данных
    JSON REST API, мобильные приложения, JavaScript-системы Лёгкий, удобен для веб, поддерживает вложенные объекты Нет строгой схемы, возможны ошибки при парсинге
    XML 1С ↔ 1С, государственные системы (например, Диадок) Строгая структура, поддерживает XSD-схемы Большой размер файлов, сложнее в обработке
    CSV Excel, простые системы импорта Универсален, маленький размер Не сохраняет иерархию и связи между объектами
    MXL Обмен между базами 1С Сохраняет все свойства объектов, включая ссылки Не читается внешними системами
    💡

    При интеграции с веб-сервисами (например, Битрикс24) сначала проверьте лимиты API. Некоторые тарифы ограничивают количество запросов в минуту, и массовая выгрузка может заблокировать доступ.

    7. Ошибки при выгрузке и как их избежать

    Даже при использовании стандартных инструментов выгрузки пользователи сталкиваются с ошибками. Рассмотрим типичные проблемы и способы их решения:

    1. Ошибка: «Недостаточно памяти»

    • 🔹 Причина: Выгрузка большого справочника (более 50 000 записей) в один файл.
    • 🔧 Решение: Разбейте данные на части или используйте пакетную обработку. Закройте все ненужные окна 1С перед выгрузкой.

    2. Ошибка: «Неверный формат файла»

    • 🔹 Причина: Несоответствие разделителей в CSV (например, запятая вместо точки с запятой).
    • 🔧 Решение: Укажите явный разделитель при выгрузке или откройте файл в Excel через Импорт данных.

    3. Ошибка: «Нарушена ссылочная целостность»

    • 🔹 Причина: При выгрузке не экспортированы связанные справочники (например, выгружается Номенклатура без Единиц измерения).
    • 🔧 Решение: Используйте План обмена или проверьте настройки внешней обработки на полноту выгрузки.

    4. Ошибка: «Доступ запрещён»

    • 🔹 Причина: У пользователя нет прав на выгрузку данных или запись в каталог.
    • 🔧 Решение: Запросите права у администратора или сохраните файл в другую папку (например, на Рабочий стол).

    Если ошибка не типична, проверьте лог обмена данными:

    1. Перейдите в Администрирование → Обмен данными → Журнал обмена.
    2. Найдите последнюю запись с ошибкой и изучите детали.
    3. При необходимости экспортируйте лог в файл для анализа.
    ⚠️ Внимание: Если выгрузка прерывается на больших объёмах данных, попробуйте использовать Фоновое задание. Для этого в коде выгрузки добавьте вызов процедуры через ФоновыеЗадания.Выполнить() — это снизит нагрузку на интерфейс.

    8. Автоматизация выгрузки: расписание и триггеры

    Для регулярной выгрузки (например, ежедневного экспорта Заказов покупателей в CRM) настройте автоматическое выполнение. В 1С есть два основных способа:

    1. Регламентные задания

    • Перейдите в Администрирование → Регламентные задания.
    • Создайте новое задание, укажите процедуру выгрузки (например, ВыгрузитьКонтрагентовВJSON).
    • Настройте расписание (ежедневно, еженедельно или по событию).

    2. Триггеры на события

    Если выгрузка должна запускаться при изменении данных (например, при проведении документа), используйте подписки на события. Пример кода для выгрузки при изменении справочника Контрагенты:

    Процедура ПриИзмененииКонтрагента(Объект) Экспорт
    

    Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда

    Возврат;

    КонецЕсли;

    // Выгружаем только изменённого контрагента

    Данные = Новый Структура();

    Данные.Вставить("Ссылка", Объект.Ссылка.УникальныйИдентификатор());

    Данные.Вставить("Наименование", Объект.Наименование);

    Данные.Вставить("ИНН", Объект.ИНН);

    // Сохраняем в файл

    ЗаписьJSON = Новый ЗаписьJSON;

    ЗаписьJSON.УстановитьСтроку();

    ЗаписьJSON.ЗаписатьJSON(Данные);

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

    ИмяФайла = "C:\Exchange\Контрагенты\" + Объект.Ссылка.УникальныйИдентификатор() + ".json";

    ЗаписьJSON.Записать(ИмяФайла);

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

    // Подписываемся на событие

    ПодпискаНаСобытие("ПриЗаписиОбъекта", "Контрагенты", "ПриИзмененииКонтрагента");

    Для автоматической выгрузки в облачные хранилища (например, Яндекс.Диск или Google Drive) используйте внешние скрипты на Python или PowerShell, которые будут забирать файлы из папки выгрузки и загружать их в облако.

    💡

    Автоматизация выгрузки экономит время, но требует тестирования! Перед настройкой регламентных заданий проверьте работу скрипта вручную на копии базы.

    FAQ: Частые вопросы по выгрузке из 1С

    Как выгрузить справочник с картинками (например, фотографии номенклатуры)?

    Стандартные средства 1С не поддерживают выгрузку вложений (включая картинки). Решения:

    • Используйте обработку ВыгрузкаКартинокИз1С (доступна на Инфостарт).
    • Напишите скрипт на 1С:Предприятие, который сохраняет картинки в папку, а в CSV/Excel добавляет пути к файлам.
    • Для CommerceML картинки выгружаются автоматически в отдельную папку import_files.
    Можно ли выгрузить данные из 1С в Google Sheets?

    Да, для этого:

    1. Выгрузите данные в CSV или Excel.
    2. Используйте Google Apps Script для автоматической загрузки файла в Google Sheets.
    3. Или настройте интеграцию через Zapier/Make (если нужна автоматическая синхронизация).

    Для прямой выгрузки без промежуточных файлов напишите скрипт на 1С:Предприятие, который отправляет данные через HTTP-запросы в Google Sheets API.

    Почему при выгрузке в Excel русские буквы отображаются как «кракозябры»?

    Проблема кодировки. Решения:

    • При сохранении в CSV выберите кодировку UTF-8 или Windows-1251.
    • В Excel при открытии файла используйте Импорт данных → Указать кодировку.
    • Если выгружаете через ADO, явно укажите кодировку в соединении.
    Как выгрузить данные из 1С в SQL-базу (например, PostgreSQL или MySQL)?

    Способы:

    • Используйте ODBC-соединение и выгружайте данные через запросы.
    • Напишите скрипт на 1С:Предприятие, который формирует INSERT-запросы и отправляет их в базу.
    • Для регулярного обмена настройте ETL-процесс (например, через Apache NiFi или Talend).

    Пример кода для выгрузки в PostgreSQL:

    Соединение = Новый COMОбъект("ADODB.Connection");
    

    Соединение.ConnectionString = "Driver={PostgreSQL Unicode};Server=localhost;Port=5432;Database=test;Uid=user;Pwd=password";

    Соединение.Open();

    Для Каждого Контрагент Из Справочники.Контрагенты Цикл

    Запрос = "INSERT INTO контрагенты (id, name, inn) VALUES ('"

    + Контрагент.Ссылка.УникальныйИдентификатор() + "', '"

    + Контрагент.Наименование + "', '"

    + Контрагент.ИНН + "')";

    Соединение.Execute(Запрос);

    КонецЦикла;

    Можно ли выгрузить данные из 1С:УТ 11.4 в 1С:Бухгалтерию 3.0 без потерь?

    Да, но требуется настройка Плана обмена или использование типовой обработки ВыгрузкаДанныхДляБухгалтерии. Особенности:

    • Проверьте соответствие справочников (например, Номенклатура в УТ и БП может иметь разные реквизиты).
    • Используйте CommerceML или XML для обмена.
    • После выгрузки сверьте остатки и документы в обеих базах.

    Для сложных случаев (например, переноса истории докумен