Выгрузка справочников из 1С:Предприятие — одна из самых востребованных операций при миграции данных, интеграции с другими системами или резервном копировании. Несмотря на кажущуюся простоту, процесс имеет нюансы: от ограничений прав до совместимости форматов. В этой статье разберём все актуальные способы — от стандартных инструментов платформы до программных решений для автоматизации.
Важно понимать, что метод выгрузки зависит от версии 1С (8.2, 8.3), конфигурации (УТ 11, ERP 2.5, БП 3.0) и целей: нужен ли одноразовый экспорт или регулярный обмен. Например, для переноса справочника Номенклатура в Excel хватит штатных средств, а для синхронизации с Bitrix24 потребуется REST API или EnterpriseData.
Если вы не программист, сосредоточьтесь на первых трёх способах — они не требуют знания 1С:Предприятие на уровне кода. Разработчикам пригодятся разделы про запросы и HTTP-сервисы, где мы раскроем нюансы работы с JSON и XML.
1. Экспорт через пользовательский интерфейс (без программирования)
Самый простой способ — использовать встроенные инструменты 1С. Он подходит для одноразовых операций и не требует прав администратора. Рассмотрим на примере справочника Контрагенты в 1С:Бухгалтерия 3.0:
- Откройте справочник: перейдите в раздел
Справочники → Контрагенты. - Выделите нужные записи: используйте
Ctrl+Aдля выбора всех или отметьте конкретные строки. - Экспортируйте: нажмите
Ещё → Выгрузить данные(илиФайл → Сохранить как...в старых версиях). - Выберите формат: доступны
Excel (.xlsx),XML,TXT(разделитель — табуляция или запятая).
Ограничения метода:
- 🔹 Не сохраняются связанные данные (например, адреса контрагентов из справочника
Адресапридётся выгружать отдельно). - 🔹 Максимум 10 000 строк за один экспорт (в 1С:УТ 11 лимит может отличаться).
- 🔹 Нет истории изменений — экспортируются только актуальные данные.
Если в выгруженном Excel отображаются "реквизиты" вместо названий (например, Ссылка8327 вместо "ООО Ромашка"), откройте файл через LibreOffice Calc — он корректнее обрабатывает ссылки 1С.
⚠️ Внимание: В 1С:ERP 2.5 при экспорте вExcelчерез менюЕщёможет сработать ограничение на количество колонок. Если часть данных обрезается, используйте внешнюю обработку (раздел 3).
2. Выгрузка через конфигуратор (для администраторов)
Конфигуратор предоставляет больше возможностей, но требует прав доступа к 1С:Предприятие в режиме Конфигуратор. Этот метод подходит для выгрузки всех данных справочника включая служебные поля (например, ПометкаУдаления или Родитель).
Пошаговая инструкция:
- Запустите 1С:Предприятие в режиме Конфигуратор (удерживайте
Shiftпри запуске или выберите в меню Пуск). - Откройте окно
Все функции(Сервис → Все функции). - Перейдите в
Операции → Выгрузка данных XML. - В поле
Файлукажите путь сохранения (например,C:\Export\Контрагенты.xml). - В
Объектыдобавьте нужный справочник (например,Справочник.Контрагенты). - Нажмите
Выгрузитьи дождитесь завершения.
Преимущества метода:
- 🔹 Сохраняется полная структура справочника, включая иерархию и реквизиты.
- 🔹 Можно выгрузить несколько справочников за раз (например,
Номенклатура+ЕдиницыИзмерения). - 🔹 Формат
XMLподходит для последующего импорта в другую базу 1С.
| Формат выгрузки | Поддерживаемые данные | Ограничения | Пример использования |
|---|---|---|---|
XML |
Полная структура, включая ссылки и реквизиты | Большой размер файла для объёмных справочников | Перенос данных между базами 1С |
Excel (.xlsx) |
Только табличные данные (без иерархии) | Лимит 10 000 строк, нет служебных полей | Аналитика в Excel, отчёты для руководства |
JSON |
Гибкая структура, поддерживает вложенность | Требует обработки для импорта в 1С | Интеграция с веб-сервисами |
TXT (CSV) |
Простая таблица с разделителями | Нет поддержки иерархии и ссылочных типов | Импорт в другие программы (например, 1С:ЗУП) |
Закрыть все сеансы пользователей в базе|Сделать резервную копию (Файл → Сохранить данные)|Проверить свободное место на диске (XML может весить в 2-3 раза больше, чем данные в базе)|Отключить антивирус (может блокировать выгрузку больших файлов)-->
3. Внешние обработки для расширенного экспорта
Если стандартных инструментов недостаточно, используйте внешние обработки — готовые решения от сообщества 1С. Они позволяют:
- 🔹 Выгружать данные с фильтрацией (например, только активные контрагенты).
- 🔹 Сохранять иерархию справочников (для
Номенклатурыс группами). - 🔹 Экспортировать в
JSON,SQLили другие форматы.
Где скачать обработки:
- 🔹 Инфостарт — крупнейшая база решений (есть бесплатные и платные варианты).
- 🔹 Портал ИТС — официальные обработки от 1С (требуется подписка).
- 🔹 GitHub — открытые проекты (например,
1C-Export-Tools).
Пример популярных обработок:
- 🔹 "Выгрузка в Excel с отбором" — позволяет задавать фильтры по реквизитам (например, выгрузить контрагентов с долгом > 100 000 ₽).
- 🔹 "Универсальный обмен данными" — поддерживает
JSON,XML,CSVи настройку шаблонов. - 🔹 "Выгрузка справочников в SQL" — для переноса данных в PostgreSQL или MS SQL.
Как проверить обработку на вирусы?
Перед использованием скачанной обработки:
1. Проверьте её хеш (MD5/SHA-1) на сайте источника.
2. Откройте файл в текстовом редакторе (например, Notepad++) — код 1С должен быть читаемым, без зашифрованных блоков.
3. Запустите в "песочнице" (тестовой базе 1С) с отключённым интернетом.
4. Используйте антивирус с обновлёнными базами (например, Kaspersky или Dr.Web).
⚠️ Внимание: Обработки от сторонних разработчиков могут содержать уязвимости или скрытый функционал (например, отправку данных на внешний сервер). Всегда тестируйте их в изолированной среде перед использованием на рабочей базе.
4. Автоматизированная выгрузка через запросы (1С:Предприятие 8.3)
Для разработчиков и опытных пользователей доступен метод выгрузки через запросы на встроенном языке 1С. Этот способ гибок и позволяет получить данные в любом формате, но требует знания синтаксиса.
Пример кода для выгрузки справочника Номенклатура в JSON:
// Получаем данные из справочника
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
// Формируем JSON
МассивДанных = Новый Массив;
Пока Выборка.Следующий() Цикл
Элемент = Новый Структура;
Элемент.Вставить("Ссылка", Выборка.Ссылка);
Элемент.Вставить("Наименование", Выборка.Наименование);
Элемент.Вставить("Артикул", Выборка.Артикул);
Элемент.Вставить("ЕдиницаИзмерения", Выборка.ЕдиницаИзмерения);
МассивДанных.Добавить(Элемент);
КонецЦикла;
// Сохраняем в файл
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.Записать(МассивДанных);
ТекстJSON = ЗаписьJSON.Закрыть();
ЗаписьФайла = Новый ЗаписьТекста("C:\Export\Номенклатура.json");
ЗаписьФайла.ЗаписатьСтроку(ТекстJSON);
ЗаписьФайла.Закрыть();
Особенности метода:
- 🔹 Можно фильтровать данные прямо в запросе (например,
ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ). - 🔹 Поддерживаются сложные структуры (вложенные объекты, массивы).
- 🔹 Требует прав на выполнение запросов (роль "Администратор" или кастомная с соответствующими разрешениями).
Используйте ОбходРезультатаЗапроса для больших справочников (>50 000 записей) — это снизит нагрузку на память.
5. Выгрузка через REST API и EnterpriseData
Для интеграции 1С с внешними системами (Bitrix24, 1С:Документооборот, веб-сайты) используйте REST API или EnterpriseData (встроенный механизм обмена). Это самый современный и масштабируемый способ, но требует настройки на стороне сервера.
Шаги для настройки EnterpriseData:
- В 1С:Предприятие откройте
Администрирование → Публикация на веб-сервере. - Установите флаги для
ODataиREST. - В файле
web.config(для IIS) илиapache.conf(для Apache) настройте права доступа. - Сформируйте URL вида:
http://[адрес_сервера]/[имя_базы]/odata/standard.odata/Catalog_Номенклатура?$format=json&$top=1000
Пример запроса к API для получения справочника Контрагенты:
GET /hs/Exchange/Контрагенты HTTP/1.1
Host: your-1c-server.ru
Authorization: Basic base64(login:password)
Accept: application/json
{
"limit": 1000,
"offset": 0,
"fields": ["Наименование", "ИНН", "КПП"]
}
Плюсы метода:
- 🔹 Реальное время — данные обновляются при каждом запросе.
- 🔹 Гибкая фильтрация (например,
?$filter=ИНН eq '1234567890'). - 🔹 Поддерживает пагинацию для больших справочников.
⚠️ Внимание: При настройке REST API в 1С:Предприятие 8.3 убедитесь, что на сервере установлен SSL-сертификат. Передача данных по HTTP (без шифрования) может привести к утечке конфиденциальной информации (ИНН, contracts и т.д.).
6. Альтернативные способы: обмен через файлы и COM-соединение
Если ни один из перечисленных методов не подходит, рассмотрите альтернативы:
- 🔹 Обмен через файлы (
.dt,.xml):
Используется в 1С:УТ 11 и ERP 2.5 для регулярного обмена между базами. Настройка ведётся вАдминистрирование → Обмен данными. - 🔹 COM-соединение:
Позволяет управлять 1С из внешних программ (например, Python или C#) черезV83.ComConnector. Пример кода на Python:import comtypes.clientconn = comtypes.client.CreateObject("V83.ComConnector")
base = conn.Connect("File=C:\Bases\Trade;Usr=Администратор;Pwd=123")
- 🔹 Выгрузка через 1С:Конвертация данных:
Специализированный инструмент для переноса данных между разными конфигурациями (например, из УТ 10.3 в УТ 11).
Важно: При использовании COM-соединения проверьте разрядность системы и 1С — 32-битное приложение не сможет подключиться к 64-битной базе (и наоборот).
7. Типичные ошибки и их решения
При выгрузке справочников пользователи сталкиваются с типичными проблемами. Разберём самые частые:
| Ошибка | Причина | Решение |
|---|---|---|
Недостаточно прав для операции |
У пользователя нет роли "Администратор" или "Выгрузка данных" | Запросите права у администратора или используйте учётную запись с полными доступом |
Файл не найден (C:\Export\...) |
Указан несуществующий путь или нет прав на запись | Проверьте путь в настройках или сохраните файл на рабочий стол |
Превышен лимит строк (10000) |
Ограничение 1С на экспорт в Excel | Разбейте выгрузку на части или используйте XML/JSON |
Ошибка формата потока |
Повреждение файла при сохранении | Повторите экспорт с отключённым антивирусом или измените формат |
Не найден объект метаданных |
Опечатка в имени справочника в запросе | Проверьте регистр и синтаксис (например, Справочник.Контрагенты, а не Контрагенты) |
Если ошибка не указана в таблице:
- 🔹 Проверьте журнал регистрации (
Администрирование → Журнал регистрации). - 🔹 Убедитесь, что версия платформы совместима с используемым методом (например,
REST APIдоступен только в 8.3.14+). - 🔹 Для сложных случаев используйте отладчик 1С (
Сервис → Отладка).
FAQ: Частые вопросы по выгрузке справочников
Можно ли выгрузить справочник с историей изменений?
Да, но не через стандартный экспорт. Используйте:
- 🔹 Запросы с выборкой из регистра сведений (например,
РегистрСведений.ИсторияИзменений). - 🔹 Внешние обработки типа "Выгрузка истории изменений" (доступны на Инфостарт).
- 🔹 Логирование — если история не велась, данные восстановить нельзя.
Как выгрузить справочник с картинками (например, фото номенклатуры)?
Картинки хранятся в отдельном хранилище. Варианты:
- 🔹 Используйте обработку "Выгрузка картинок из 1С" (например, эта).
- 🔹 Через COM-соединение получите двоичные данные и сохраните в файлы.
- 🔹 В 1С:УТ 11 картинки можно выгрузить вместе с номенклатурой в
EnterpriseData(форматbase64).
Внимание: Картинки увеличивают размер файла в 10-100 раз. Для больших каталогов используйте архивацию (ZIP).
Почему при выгрузке в Excel вместо названий отображаются коды (например, "Ссылка123")?
Это происходит потому, что 1С сохраняет ссылки на объекты, а не их текстовые представления. Решения:
- 🔹 В обработке экспорта добавьте замену ссылок на
Представление()илиНаименование. - 🔹 В Excel используйте функцию
=ПОЛУЧИТЬ.ДАННЫЕ.ИЗ.XMLдля преобразования. - 🔹 Экспортируйте в
CSVс разделителем;— иногда формат отображается корректнее.
Как автоматизировать выгрузку по расписанию?
Для регулярного экспорта настройте:
- 🔹 Регламентное задание в 1С (
Администрирование → Регламентные задания). - 🔹 Внешний скрипт на Python или PowerShell, который запускает 1С с параметрами.
- 🔹 Планировщик Windows (
taskschd.msc) для запуска обработки по времени.
Пример команды для планировщика:
"C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" DESIGNER /S"C:\Bases\Trade" /NАдминистратор /P123 /Execute"C:\Scripts\Export.epf"
Можно ли выгрузить справочник из 1С в Google Sheets?
Да, для этого:
- Выгрузите данные в
CSVилиJSON(способы 1-4). - Используйте Google Apps Script для загрузки файла в Google Sheets:
function importCSV() {
var file = DriveApp.getFilesByName("Контрагенты.csv").next();
var csvData = file.getBlob().getDataAsString();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rows = csvData.split("\n");
for (var i = 0; i < rows.length; i++) {
sheet.getRange(i+1, 1, 1, rows[i].split(";").length).setValues([rows[i].split(";")]);
}
}
Или используйте сервис Zapier для автоматизации (поддерживает 1С через REST API).