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

Мы не будем ограничиваться поверхностными инструкциями. Здесь вы найдёте уникальные приёмы для обхода ограничений 1С (например, экспорт более 100 000 строк без зависаний), сравнение форматов выгрузки (.xlsx, .xml, .json), а также решения типичных ошибок вроде «Недостаточно памяти» или «Файл повреждён». Особое внимание уделим безопасности: как экспортировать данные без риска утечки конфиденциальной информации.

Статья актуальна для всех современных версий 1С:Предприятие 8.3 (включая последние релизы 2026 года) и большинства конфигураций: Бухгалтерия 3.0, Управление торговлей 11, Зарплата и управление персоналом, ERP 2. Если вы работаете с устаревшими версиями (8.1 или 8.2), часть методов может потребовать адаптации — об этом мы предупредим отдельно.

1. Стандартный экспорт через «Все функции» — самый простой способ

Начнём с базового метода, который не требует прав администратора или знания программирования. Этот способ подходит для разовых выгрузок небольших справочников (до 50 000 записей) в форматы .mxl (внутренний формат 1С) или .xls.

Инструкция:

  1. Откройте нужный справочник (например, Справочники → Номенклатура).
  2. Нажмите Ещё → Все функции (или Правка → Все функции в старых версиях).
  3. В поисковой строке введите «Выгрузить данные» и выберите соответствующую команду.
  4. Укажите путь для сохранения файла, выберите формат (Excel 97-2003 или XML) и нажмите «Сохранить».

⚠️ Внимание: При экспорте в Excel через «Все функции» автоматически обрезает текстовые поля длиннее 255 символов. Если в вашем справочнике есть длинные описания (например, в карточках товаров), используйте альтернативные методы из следующих разделов.

Убедитесь, что справочник не содержит более 65 536 строк (ограничение Excel 97-2003)

Закройте все открытые формы 1С — это ускорит процесс

Проверьте права доступа: для выгрузки нужны права на чтение справочника

-->

Преимущества метода:

  • 🔹 Не требует установки дополнительных обработок
  • 🔹 Сохраняет иерархию справочников (если она есть)
  • 🔹 Подходит для пользователей без технических навыков

Недостатки:

  • ❌ Ограничение по объёму данных (зависания при >50 000 строк)
  • ❌ Нет возможности выбрать конкретные поля для экспорта
  • ❌ Формат XML получается неструктурированным (требует постобработки)

2. Экспорт через внешнюю обработку «Выгрузка данных»

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

  • 📌 Выбирать конкретные поля справочника
  • 📌 Экспортировать в Excel, XML, JSON, CSV
  • 📌 Настраивать фильтры (например, выгружать только активные элементы)
  • 📌 Сохранять настройки шаблонов для повторного использования

Как запустить обработку:

  1. Перейдите в Файл → Открыть.
  2. Выберите файл обработки (обычно находится в папке C:\Program Files\1Cv8\templates\Релиз\ВыгрузкаДанных.epf).
  3. В открывшемся окне укажите:
    • Источник данных (например, Справочник.Номенклатура)
    • Формат выгрузки (XLSX рекомендуется для больших объёмов)
    • Поля для экспорта (можно перетащить мышью)
  • Нажмите «Выгрузить» и укажите путь сохранения.
  • Где найти обработку, если её нет в папке по умолчанию?

    Если файл ВыгрузкаДанных.epf отсутствует, его можно:

    1. Скачать с портала 1С:ИТС (раздел «Обработки»)

    2. Взять из дистрибутива вашей конфигурации (папка ExtForms)

    3. Попросить у партнёра-фрилансера или службы поддержки 1С

    ⚠️ Внимание: При выгрузке в JSON через эту обработку кириллические символы автоматически экранируются (например, «Привет» становится «\u041F\u0440\u0438\u0432\u0435\u0442»). Чтобы избежать этого, перед экспортом добавьте в настройки обработки параметр КодировкаUTF8=Истина.

    Формат Макс. строк Сохранение иерархии Поддержка фильтров Требует доработок
    XLSX 1 048 576 Да Да Нет
    CSV Неограничено Нет Да Да (разделители)
    XML Неограничено Да Да Иногда (структура)
    JSON Неограничено Да Да Да (кодировка)
    MXL Неограничено Да Нет Нет

    3. Программный экспорт через запросы (для разработчиков)

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

    Процедура ЭкспортВExcel(ИмяФайла, ИмяСправочника)
    

    // Создаём объект Excel

    Excel = Новый COMОбъект("Excel.Application");

    Книга = Excel.Workbooks.Add();

    Лист = Книга.Worksheets(1);

    // Получаем данные справочника

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | Справочник." + ИмяСправочника + ".Ссылка КАК Ссылка,

    | Справочник." + ИмяСправочника + ".Наименование КАК Наименование,

    | Справочник." + ИмяСправочника + ".Родитель КАК Родитель

    |ИЗ

    | Справочник." + ИмяСправочника + " КАК Справочник." + ИмяСправочника;

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    // Заполняем Excel

    Лист.Cells(1,1).Value = "Ссылка";

    Лист.Cells(1,2).Value = "Наименование";

    Лист.Cells(1,3).Value = "Родитель";

    Строка = 2;

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

    Лист.Cells(Строка,1).Value = Выборка.Ссылка;

    Лист.Cells(Строка,2).Value = Выборка.Наименование;

    Лист.Cells(Строка,3).Value = Выборка.Родитель;

    Строка = Строка + 1;

    КонецЦикла;

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

    Книга.SaveAs(ИмяФайла);

    Excel.Quit();

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

    Чтобы запустить этот код:

    1. Откройте конфигуратор (Файл → Конфигуратор).
    2. Перейдите в Отладка → Открыть модуль и выберите любой глобальный модуль.
    3. Вставьте код и нажмите F5 для выполнения.
    4. ⚠️ Внимание: При работе с COMОбъект("Excel.Application") может «подвисать», если не закрыть процесс Excel явно. Всегда добавляйте строку Excel.Quit() в конце процедуры, даже если возникла ошибка.

      Excel (XLSX)

      XML

      JSON

      CSV

      Другой-->

      4. Выгрузка через «Универсальный обмен данными» (для интеграций)

      Если вам нужно не просто экспортировать справочник, а настроить регулярный обмен с другой системой (например, Bitrix24, МойСклад или 1С:УНФ), используйте механизм Универсальный обмен данными (УОД). Он позволяет:

      • 🔄 Настраивать правила преобразования данных
      • 🔄 Экспортировать только изменённые записи
      • 🔄 Сохранять историю обменов
      • 🔄 Работать с XML, JSON и даже SOAP

    Пошаговая настройка:

    1. Откройте Администрирование → Обмен данными → Универсальный обмен данными.
    2. Создайте новый узел обмена (например, «Выгрузка в CRM»).
    3. В настройках узла укажите:
      • Тип данных: Справочник.Номенклатура (или другой)
      • Формат обмена: XML или JSON
      • Путь к файлу или URL для отправки
  • Настройте правила отбора (например, выгружать только товары с остатком > 0).
  • Запустите обмен кнопкой «Выполнить обмен».
  • ⚠️ Внимание: При настройке УОД для выгрузки в XML убедитесь, что в параметрах обмена отключён флаг «Использовать сжатие». В некоторых версиях это приводит к повреждению файла при размере >100 МБ.

    💡

    Если вам нужно выгружать данные в Google Sheets, используйте промежуточный формат CSV и настройте автоматическое импортирование через Google Apps Script. Это позволит обновлять таблицы в реальном времени без ручного вмешательства.

    5. Экспорт больших справочников (>100 000 строк) без зависаний

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

    Способ 1. Пакетная выгрузка через временные таблицы

    Разбейте экспорт на части по 10 000–20 000 строк с помощью этого кода:

    Процедура ПакетнаяВыгрузка(ИмяСправочника, ПутьКФайлу, РазмерПакета = 10000)
    

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | Справочник." + ИмяСправочника + ".Ссылка КАК Ссылка

    |ИЗ

    | Справочник." + ИмяСправочника + " КАК Справочник." + ИмяСправочника +

    "|ГДЕ

    | Справочник." + ИмяСправочника + ".Ссылка В (

    | ВЫБРАТЬ ПЕРВЫЕ " + РазмерПакета + "

    | Справочник." + ИмяСправочника + ".Ссылка

    | ИЗ Справочник." + ИмяСправочника + "

    | УПОРЯДОЧИТЬ ПО Ссылка

    | ИНДЕКСИРОВАТЬ ПО Ссылка

    | )";

    // Далее — цикл по пакетам с записью в файл

    // ...

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

    Способ 2. Выгрузка через ADODB.Stream (для XML/JSON)

    Используйте потоковую запись для минимизации потребления памяти:

    Процедура ВыгрузкаВПоток(ИмяФайла, Данные)
    

    Stream = Новый COMОбъект("ADODB.Stream");

    Stream.Type = 2; // Текстовый поток

    Stream.Charset = "utf-8";

    Stream.Open();

    Stream.WriteText(Данные);

    Stream.SaveToFile(ИмяФайла, 2); // 2 = перезаписать файл

    Stream.Close();

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

    Способ 3. Экспорт в SQL-базу

    Если конечная система поддерживает прямую работу с SQL (например, PostgreSQL или MySQL), используйте ODBC-соединение для прямой выгрузки:

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

    Соединение.ConnectionString = "DRIVER={PostgreSQL Unicode};SERVER=localhost;DATABASE=test;UID=user;PWD=pass";

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

    Запрос = Новый COMОбъект("ADODB.Recordset");

    Запрос.Open("SELECT * FROM номенклатура", Соединение);

    Пока Не Запрос.EOF Цикл

    // Запись данных в 1С или другой источник

    Запрос.MoveNext();

    КонецЦикла;

    💡

    Для справочников размером >500 000 строк оптимально использовать комбинацию пакетной выгрузки + потоковая запись в JSON. Это снижает нагрузку на сервер 1С и ускоряет процесс в 3–5 раз.

    6. Экспорт с сохранением связей между справочниками

    Если вам нужно выгрузить не только сам справочник, но и его связи с другими объектами (например, номенклатуру с привязанными складами, ценами и поставщиками), используйте объединённые запросы:

    Процедура ЭкспортНоменклатурыСЦенами(ИмяФайла)
    

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | Номенклатура.Ссылка КАК Номенклатура,

    | Номенклатура.Наименование КАК Наименование,

    | Цены.Цена КАК Цена,

    | Цены.Валюта КАК Валюта,

    | Склады.Наименование КАК Склад

    |ИЗ

    | Справочник.Номенклатура КАК Номенклатура

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены

    | ПО Номенклатура.Ссылка = Цены.Номенклатура

    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады

    | ПО Цены.Склад = Склады.Ссылка";

    // Далее — выгрузка результата в Excel или JSON

    // ...

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

    Для сохранения иерархии (например, групп номенклатуры) добавьте в запрос поле Родитель и используйте рекурсивный обход при постобработке файла.

    ⚠️ Внимание: При экспорте связанных данных через XML по умолчанию подставляет ссылки в виде {UUID}. Чтобы получить читаемые наименования, добавьте в запрос поля вида Родитель.Наименование КАК НаименованиеРодителя.

    7. Автоматизация экспорта: расписания и регламентные задания

    Если экспорт нужно выполнять регулярно (например, ежедневно в 23:00), настройте регламентное задание:

    1. Откройте Администрирование → Поддержка и обслуживание → Регламентные задания.
    2. Создайте новое задание с типом «Выполнение кода».
    3. В поле «Код» вставьте процедуру экспорта (например, из раздела 3).
    4. Настройте расписание (еженедельно, ежемесячно и т. д.).
    5. Укажите пользователя, от имени которого будет выполняться задание (нужны права на экспорт).
    6. Пример кода для регламентного задания (выгрузка в Excel с отправкой по email):

      Процедура ЭкспортИОтправитьПоEmail() Экспорт
      

      ИмяФайла = "C:\Exports\номенклатура_" + ТекущаяДата() + ".xlsx";

      ЭкспортВExcel(ИмяФайла, "Номенклатура");

      // Отправка email

      Почта = Новый Почта;

      Сообщение = Почта.СоздатьСообщение();

      Сообщение.Текст = "Выгрузка номенклатуры на " + ТекущаяДата();

      Сообщение.Тема = "Ежедневная выгрузка из 1С";

      Сообщение.Получатели.Добавить("analytic@company.ru");

      Сообщение.Вложения.Добавить(ИмяФайла);

      Почта.Отправить(Сообщение);

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

      ⚠️ Внимание: При настройке автоматического экспорта в 1С:Предприятие версии 8.3.20 и выше учтите, что регламентные задания выполняются в фоновом режиме. Это означает, что:

      • Окна Excel или других программ открываться не будут (используйте «невидимый» режим).
      • Ошибки не будут показаны пользователю — их нужно логировать в файл.
      • Время выполнения задания ограничено настройками сервера (по умолчанию — 60 минут).

    8. Типичные ошибки и их решения

    Разберём самые частые проблемы при экспорте и способы их устранения:

    Ошибка Причина Решение
    Недостаточно памяти Слишком большой объём данных или утечка памяти в 1С Разбейте экспорт на пакеты по 10 000 строк или используйте ADODB.Stream
    Файл повреждён и не открывается Неправильная кодировка или прерванная запись Проверьте параметры Charset="utf-8" и используйте Try-Catch для обработки ошибок
    Ошибка OLE: Сбой при вызове метода Проблемы с COMОбъект("Excel.Application") Установите Microsoft Excel на сервере 1С или используйте альтернативные библиотеки (например, EPPlus)
    Превышено время ожидания Долгое выполнение запроса или обмена Увеличьте таймаут в настройках сервера 1С или оптимизируйте запрос
    Нет прав на экспорт Ограничения ролей пользователя Настройте права в конфигураторе: Администрирование → Пользователи → Роли

    Если вы столкнулись с ошибкой, не описанной в таблице, проверьте журнал регистрации (Администрирование → Журнал регистрации). Часто там содержится подробное описание проблемы, включая номер строки кода, на которой произошёл сбой.

    💡

    90% ошибок при экспорте связаны с недостатком памяти или правами доступа. Всегда начинайте диагностику с проверки этих двух моментов.

    FAQ: Ответы на частые вопросы

    Можно ли экспортировать справочник из 1С в Google Sheets напрямую?

    Нет, прямой экспорт в Google Sheets не поддерживается. Но вы можете:

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

    Для автоматического обновления лучше использовать JSON-выгрузку + API Google Sheets.

    Как экспортировать справочник с картинками (изображениями товаров)?

    Стандартные методы не поддерживают экспорт вложений. Варианты решения:

    • 🖼️ Используйте обработку ВыгрузкаДанныхСКартинками.epf (доступна на Инфостарт).
    • 🖼️ Экспортируйте изображения отдельно через ХранилищеДополнительнойИнформации.
    • 🖼️ Настройте HTTP-Сервис для выдачи картинок по ссылкам (например, http://server/1c/image?ref=UUID).

    Для 1С:УТ 11 и ERP 2 есть готовые обработки выгрузки каталога с изображениями в YML (для Яндекс.Маркет).

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

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

    1. При сохранении файла явно укажите кодировку:
      Книга.SaveAs(ИмяФайла, , , , Истина, "utf-8");
    2. Откройте повреждённый файл в Notepad++ и пересохраните в кодировке UTF-8 без BOM.
    3. Используйте формат CSV с явным указанием кодировки в первой строке:
      "sep=;
      

      Кодировка: UTF-8

      ...

    Как экспортировать только изменённые записи справочника?

    Используйте регистр сведений для отслеживания изменений или фильтр по дате модификации:

    Запрос.Текст =
    

    "ВЫБРАТЬ

    | Справочник.Номенклатура.Ссылка,

    | Справочник.Номенклатура.Наименование

    |ИЗ

    | Справочник.Номенклатура

    |ГДЕ

    | Справочник.Номенклатура.ДатаИзменения >= &ДатаНачала";

    Для 1С:ERP и УТ 11 есть готовый механизм ПланыОбмена, который отслеживает только изменённые объекты.

    Можно ли экспортировать данные из 1С в базу данных MySQL?

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

    1. Установите ODBC-драйвер для MySQL на сервере 1С.
    2. Используйте ADODB.Connection для прямой записи:
      Соединение = Новый COMОбъект("ADODB.Connection");
      

      Соединение.ConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=test;UID=user;PWD=pass";

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

      Запрос = Новый COMОбъект("ADODB.Recordset");

      Запрос.Open("SELECT * FROM products", Соединение, 1, 3); // 1 = adOpenKeyset, 3 = adLockOptimistic

      // Запись данных из 1С в MySQL

      Запрос.AddNew();

      Запрос.Fields("name").Value = "Товар из 1С";

      Запрос.Update();

    3. Для больших объёмов данных используйте пакетную вставку (INSERT INTO ... VALUES (), (), ()).

    ⚠️ Внимание: При работе с MySQL через ODBC могут возникать проблемы с кодировкой. Всегда явно указывайте CHARSET=utf8mb4 в строке подключения.