Экспорт справочников из 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.
Инструкция:
- Откройте нужный справочник (например,
Справочники → Номенклатура). - Нажмите
Ещё → Все функции(илиПравка → Все функциив старых версиях). - В поисковой строке введите «Выгрузить данные» и выберите соответствующую команду.
- Укажите путь для сохранения файла, выберите формат (
Excel 97-2003илиXML) и нажмите «Сохранить».
⚠️ Внимание: При экспорте в Excel через «Все функции» 1С автоматически обрезает текстовые поля длиннее 255 символов. Если в вашем справочнике есть длинные описания (например, в карточках товаров), используйте альтернативные методы из следующих разделов.
Убедитесь, что справочник не содержит более 65 536 строк (ограничение Excel 97-2003)
Закройте все открытые формы 1С — это ускорит процесс
Проверьте права доступа: для выгрузки нужны права на чтение справочника
-->
Преимущества метода:
- 🔹 Не требует установки дополнительных обработок
- 🔹 Сохраняет иерархию справочников (если она есть)
- 🔹 Подходит для пользователей без технических навыков
Недостатки:
- ❌ Ограничение по объёму данных (зависания при >50 000 строк)
- ❌ Нет возможности выбрать конкретные поля для экспорта
- ❌ Формат
XMLполучается неструктурированным (требует постобработки)
2. Экспорт через внешнюю обработку «Выгрузка данных»
Для более гибкой выгрузки используйте стандартную обработку ВыгрузкаДанных.epf, которая входит в поставку 1С:Предприятие. Она позволяет:
- 📌 Выбирать конкретные поля справочника
- 📌 Экспортировать в
Excel,XML,JSON,CSV - 📌 Настраивать фильтры (например, выгружать только активные элементы)
- 📌 Сохранять настройки шаблонов для повторного использования
Как запустить обработку:
- Перейдите в
Файл → Открыть. - Выберите файл обработки (обычно находится в папке
C:\Program Files\1Cv8\templates\Релиз\ВыгрузкаДанных.epf). - В открывшемся окне укажите:
- Источник данных (например,
Справочник.Номенклатура) - Формат выгрузки (
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. Программный экспорт через запросы (для разработчиков)
Если вам нужно автоматизировать выгрузку или интегрировать её в другой процесс (например, ежедневный обмен с сайтом), используйте встроенный язык 1С. Ниже приведён универсальный код для экспорта справочника в 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();
КонецПроцедуры
Чтобы запустить этот код:
- Откройте конфигуратор (
Файл → Конфигуратор). - Перейдите в
Отладка → Открыть модульи выберите любой глобальный модуль. - Вставьте код и нажмите
F5для выполнения. - 🔄 Настраивать правила преобразования данных
- 🔄 Экспортировать только изменённые записи
- 🔄 Сохранять историю обменов
- 🔄 Работать с
XML,JSONи дажеSOAP
⚠️ Внимание: При работе с COMОбъект("Excel.Application") 1С может «подвисать», если не закрыть процесс Excel явно. Всегда добавляйте строку Excel.Quit() в конце процедуры, даже если возникла ошибка.
Excel (XLSX)
XML
JSON
CSV
Другой-->
4. Выгрузка через «Универсальный обмен данными» (для интеграций)
Если вам нужно не просто экспортировать справочник, а настроить регулярный обмен с другой системой (например, Bitrix24, МойСклад или 1С:УНФ), используйте механизм Универсальный обмен данными (УОД). Он позволяет:
Пошаговая настройка:
- Откройте
Администрирование → Обмен данными → Универсальный обмен данными. - Создайте новый узел обмена (например, «Выгрузка в CRM»).
- В настройках узла укажите:
- Тип данных:
Справочник.Номенклатура(или другой) - Формат обмена:
XMLилиJSON - Путь к файлу или URL для отправки
- Тип данных:
⚠️ Внимание: При настройке УОД для выгрузки в XML убедитесь, что в параметрах обмена отключён флаг «Использовать сжатие». В некоторых версиях 1С это приводит к повреждению файла при размере >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 1С по умолчанию подставляет ссылки в виде {UUID}. Чтобы получить читаемые наименования, добавьте в запрос поля вида Родитель.Наименование КАК НаименованиеРодителя.
7. Автоматизация экспорта: расписания и регламентные задания
Если экспорт нужно выполнять регулярно (например, ежедневно в 23:00), настройте регламентное задание:
- Откройте
Администрирование → Поддержка и обслуживание → Регламентные задания. - Создайте новое задание с типом «Выполнение кода».
- В поле «Код» вставьте процедуру экспорта (например, из раздела 3).
- Настройте расписание (еженедельно, ежемесячно и т. д.).
- Укажите пользователя, от имени которого будет выполняться задание (нужны права на экспорт).
- Окна Excel или других программ открываться не будут (используйте «невидимый» режим).
- Ошибки не будут показаны пользователю — их нужно логировать в файл.
- Время выполнения задания ограничено настройками сервера 1С (по умолчанию — 60 минут).
Пример кода для регламентного задания (выгрузка в Excel с отправкой по email):
Процедура ЭкспортИОтправитьПоEmail() Экспорт
ИмяФайла = "C:\Exports\номенклатура_" + ТекущаяДата() + ".xlsx";
ЭкспортВExcel(ИмяФайла, "Номенклатура");
// Отправка email
Почта = Новый Почта;
Сообщение = Почта.СоздатьСообщение();
Сообщение.Текст = "Выгрузка номенклатуры на " + ТекущаяДата();
Сообщение.Тема = "Ежедневная выгрузка из 1С";
Сообщение.Получатели.Добавить("analytic@company.ru");
Сообщение.Вложения.Добавить(ИмяФайла);
Почта.Отправить(Сообщение);
КонецПроцедуры
⚠️ Внимание: При настройке автоматического экспорта в 1С:Предприятие версии 8.3.20 и выше учтите, что регламентные задания выполняются в фоновом режиме. Это означает, что:
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 не поддерживается. Но вы можете:
- Выгрузить данные в
CSVи загрузить его в Google Sheets вручную. - Использовать Google Apps Script для автоматической загрузки файла с сервера.
- Настроить интеграцию через Zapier или Make (ex-Integromat).
Для автоматического обновления лучше использовать JSON-выгрузку + API Google Sheets.
Как экспортировать справочник с картинками (изображениями товаров)?
Стандартные методы не поддерживают экспорт вложений. Варианты решения:
- 🖼️ Используйте обработку
ВыгрузкаДанныхСКартинками.epf(доступна на Инфостарт). - 🖼️ Экспортируйте изображения отдельно через
ХранилищеДополнительнойИнформации. - 🖼️ Настройте
HTTP-Сервисдля выдачи картинок по ссылкам (например,http://server/1c/image?ref=UUID).
Для 1С:УТ 11 и ERP 2 есть готовые обработки выгрузки каталога с изображениями в YML (для Яндекс.Маркет).
Почему при экспорте в Excel русские буквы отображаются как «кракозябры»?
Проблема связана с неверной кодировкой. Решения:
- При сохранении файла явно укажите кодировку:
Книга.SaveAs(ИмяФайла, , , , Истина, "utf-8"); - Откройте повреждённый файл в Notepad++ и пересохраните в кодировке
UTF-8 без BOM. - Используйте формат
CSVс явным указанием кодировки в первой строке:"sep=;Кодировка: UTF-8
...
Как экспортировать только изменённые записи справочника?
Используйте регистр сведений для отслеживания изменений или фильтр по дате модификации:
Запрос.Текст =
"ВЫБРАТЬ
| Справочник.Номенклатура.Ссылка,
| Справочник.Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Справочник.Номенклатура.ДатаИзменения >= &ДатаНачала";
Для 1С:ERP и УТ 11 есть готовый механизм ПланыОбмена, который отслеживает только изменённые объекты.
Можно ли экспортировать данные из 1С в базу данных MySQL?
Да, для этого:
- Установите ODBC-драйвер для MySQL на сервере 1С.
- Используйте
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();
- Для больших объёмов данных используйте пакетную вставку (
INSERT INTO ... VALUES (), (), ()).
⚠️ Внимание: При работе с MySQL через ODBC могут возникать проблемы с кодировкой. Всегда явно указывайте CHARSET=utf8mb4 в строке подключения.