Выгрузка данных из 1С:Предприятие 8 — рутинная задача, с которой регулярно сталкиваются бухгалтеры, аналитики и IT-специалисты.hether вам нужно перенести справочники в Excel для отчётности, интегрировать данные с внешней системой через XML/JSON, или автоматизировать обмен с сайтом — в каждом случае требуется свой подход. Проблема в том, что универсального решения нет: метод выгрузки зависит от версии платформы (1С 8.2 или 8.3), конфигурации (Бухгалтерия, УТ 11, ЗУП 3.1), формата выходных данных и даже прав пользователя в системе.
В этой статье мы разберём 5 рабочих способов выгрузки — от простейшего копирования таблиц до программного обмена через COM-соединение и REST API. Особое внимание уделим типичным ошибкам (например, обрезке данных при выгрузке в Excel из-за ограничения на 65 536 строк в старых версиях) и способам их обхода. Если вы не программист, начните с первых двух разделов — там описаны методы без написания кода. Для разработчиков приведём примеры на встроенном языке 1С и SQL-запросы.
1. Выгрузка в Excel через стандартные отчёты
Самый быстрый способ для пользователей без технических навыков — использовать встроенные отчёты 1С с последующим экспортом в Excel (.xlsx или .xls). Метод подходит для разовых задач, когда нужно получить данные по справочникам (Номенклатура, Контрагенты), документам (Реализация, Поступление) или регистрам (Остатки товаров).
Алгоритм действий:
- 📊 Откройте нужный отчёт (например,
Оборотно-сальдовая ведомостьилиАнализ субконто) через менюОтчёты. - ⚙️ Настройте параметры отбора (период, организация, счета) и нажмите
Сформировать. - 📥 В окне отчёта кликните по кнопке
Ещё → Выгрузить → В Excel(илиСохранить как...в старых версиях). - 💾 Выберите папку для сохранения и подтвердите экспорт.
⚠️ Внимание: В 1С 8.2 при выгрузке больших таблиц (>65 тыс. строк) данные обрезаются. Чтобы избежать потерь, разбивайте отчёт на части по периодам или используйте выгрузку в CSV (см. следующий раздел).
Преимущества метода:
- ✅ Не требует прав администратора или знания кода.
- ✅ Сохраняет форматирование (цвета, шрифты) при выгрузке в
.xlsx. - ✅ Подходит для любых конфигураций (БП 3.0, УНФ, КА 2.4).
Недостатки:
- ❌ Ограничение на объём данных (зависит от версии Excel).
- ❌ Нет возможности автоматизировать выгрузку (нужно повторять вручную).
- ❌ В некоторых конфигурациях экспортируются не все колонки (например, скрытые реквизиты).
2. Выгрузка в CSV/ТXT через «Универсальный обмен данными»
Если нужно экспортировать большие объёмы данных без потерь, подойдёт выгрузка в CSV или TXT через механизм Универсальный обмен данными. Этот метод поддерживают все актуальные конфигурации (1С:ERP, УТ 11, ЗУП 3.1) и он лишён ограничений Excel. Файл CSV можноlater открыть в Excel, Google Sheets или загрузить в другую систему.
Пошаговая инструкция:
- Откройте меню
Файл → Универсальный обмен данными → Выгрузка данных. - В окне выгрузки укажите:
- 📁 Формат файла: выберите
Текстовый (разделители)илиCSV. - 📌 Объект выгрузки: справочник, документ или регистр (например,
НоменклатураилиРеализацияТоваровУслуг). - 🔍 Отбор: задайте фильтры (период, организация, тип номенклатуры).
- 📁 Формат файла: выберите
Выгрузить и сохраните файл в удобную папку.Пример настройки для выгрузки Контрагентов:
Формат: CSV (разделитель - точка с запятой)
Кодировка: UTF-8
Объект: Справочник.Контрагенты
Поля: Наименование, ИНН, КПП, Адрес, Телефон
Отбор: Только активные контрагенты
| Формат файла | Разделитель | Кодировка | Подходит для |
|---|---|---|---|
| CSV | Точка с запятой (;) |
UTF-8 | Импорта в Excel, Google Sheets, базы данных |
| TXT | Табуляция (\t) |
Windows-1251 | Старых систем (например, 1С 7.7) |
| XML | Теги | UTF-8 | Обмена с другими программами (например, СБИС, Диадок) |
⚠️ Внимание: При выгрузке в CSV даты сохраняются в форматеДД.ММ.ГГГГ. Если вам нужен форматГГГГ-ММ-ДД(например, для загрузки в MySQL), придётся конвертировать данные после экспорта или использовать XML.
Убедиться, что в 1С установлена галочка "Выгружать все поля"|
Проверить кодировку (UTF-8 для современных систем)|
Задать разделитель (точка с запятой для CSV)|
Сохранить файл в папку без кириллических символов в пути-->
3. Программная выгрузка через встроенный язык 1С
Для автоматизации выгрузки (например, еженедельного экспорта данных в CRM или BI-систему) используют скрипты на встроенном языке 1С. Этот метод требует минимальных знаний программирования, но даёт полный контроль над процессом: можно фильтровать данные, преобразовывать форматы и даже отправлять файлы по FTP или email.
Пример кода для выгрузки справочника Номенклатура в CSV:
Процедура ВыгрузитьНоменклатуруВCSV()
// Создаём объект для записи в файл
ЗаписьТекста = Новый ЗаписьТекста();
ЗаписьТекста.Открыть("C:\Export\номенклатура.csv", КодировкаТекста.UTF8);
// Записываем заголовки колонок
ЗаписьТекста.ЗаписатьСтроку("Код;Наименование;Артикул;ЕдиницаИзмерения;Цена");
// Выбираем данные из справочника
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Строка = "";
Строка = Строка + Выборка.Код + ";";
Строка = Строка + Выборка.Наименование + ";";
Строка = Строка + Выборка.Артикул + ";";
Строка = Строка + Выборка.ЕдиницаИзмерения.Наименование + ";";
Строка = Строка + Выборка.Цена;
ЗаписьТекста.ЗаписатьСтроку(Строка);
КонецЦикла;
ЗаписьТекста.Закрыть();
Сообщить("Выгрузка завершена!");
КонецПроцедуры
Где разместить код:
- 🛠️ В внешней обработке (если выгрузка нужна редко).
- 🤖 В регламентном задании (для автоматического запуска по расписанию).
- 📦 В конфигурации (если выгрузка — часть бизнес-процесса).
Преимущества программной выгрузки:
- 🔄 Можно настроить автоматический запуск (например, каждый понедельник в 3:00).
- 🔧 Гибкая настройка формата данных (даты, числа, разделители).
- 📤 Интеграция с другими системами (отправка файлов по
FTP,API).
⚠️ Внимание: При выгрузке больших справочников (>100 тыс. записей) скрипт может «подвисать». Чтобы избежать этого, используйте пакетную обработку (выгружайте данные порциями по 10–20 тыс. строк) или оптимизируйте запрос с помощью ИндексированныеВыборки.
Если нужно выгрузить данные с иерархией (например, группы номенклатуры), используйте рекурсивный обход справочника или функцию ПолучитьИерархию().
4. Выгрузка через ODBC и прямые SQL-запросы
Для опытных пользователей и администраторов баз данных доступен метод выгрузки через ODBC-соединение. Он позволяет выполнять SQL-запросы непосредственно к базе 1С (если она работает на MS SQL Server или PostgreSQL) и экспортировать результаты в любые внешние системы. Этот способ незаменим для интеграции с Power BI, Qlik Sense или другими инструментами анализа.
Как настроить ODBC-соединение:
- Установите драйвер ODBC для вашей СУБД (например, Microsoft ODBC Driver for SQL Server).
- Создайте источник данных ODBC в
Панель управления → Администрирование → Источники данных ODBC. - Укажите параметры подключения:
- 📌 Сервер: адрес сервера 1С (например,
localhost\SQLEXPRESS). - 📌 База данных: имя базы 1С (например,
Base_UT11). - 📌 Аутентификация: выберите
Windowsили укажите логин/пароль.
- 📌 Сервер: адрес сервера 1С (например,
Данные → Получить данные → Из базы данных → Из ODBC) или другой инструмент.Пример SQL-запроса для выгрузки Реализации товаров:
SELECT
T0._Fld1974 AS [Дата],
T0._Fld1976 AS [Номер],
T1._Description AS [Контрагент],
T2._Description AS [Номенклатура],
T0._Fld1980 AS [Количество],
T0._Fld1981 AS [Цена],
T0._Fld1982 AS [Сумма]
FROM
_Document1973 AS T0
LEFT JOIN
_Reference16 AS T1 ON T0._Fld1977 = T1._IDRRef
LEFT JOIN
_Reference14 AS T2 ON T0._Fld1979 = T2._IDRRef
WHERE
T0._DocumentKind = 1 -- Тип документа "Реализация товаров и услуг"
Особенности метода:
- 🔍 Требует знания SQL и структуры базы 1С.
- 🔒 Нужны права на доступ к СУБД (не всегда доступно обычным пользователям).
- ⚡ Быстрее, чем встроенные механизмы 1С, для больших объёмов данных.
⚠️ Внимание: Структура таблиц в базе 1С может меняться при обновлении конфигурации. Перед написанием запросов проверяйте актуальные имена полей вКонфигураторе(Все функции → Метаданные).
Как узнать имена таблиц в базе 1С?
В Конфигураторе откройте меню Администрирование → Поддержка → Тестирование и исправление. Запустите тест с галочкой "Показать структуру таблиц". В логе появится список всех таблиц и их полей. Альтернативно можно использовать утилиты вроде SQL Server Management Studio для просмотра схемы базы.
5. Обмен данными через XML/JSON и веб-сервисы
Для интеграции 1С с внешними системами (например, интернет-магазином на Bitrix или WooCommerce, CRM, ERP) используют выгрузку в форматах XML или JSON через веб-сервисы или REST API. Этот метод требует настройки на стороне 1С и внешней системы, но обеспечивает автоматический двусторонний обмен.
Способы реализации:
- 🌐 Встроенные веб-сервисы: в 1С публикуется
WS-сервис, к которому обращается внешняя система. - 🔄 HTTP-сервисы: 1С отправляет данные по
POST/GET-запросам на URL внешней системы. - 📦 Файловый обмен: 1С выгружает
XML/JSONв папку, внешняя система забирает файл по расписанию.
Пример кода для выгрузки данных в JSON и отправки на сервер:
Процедура ОтправитьДанныеНаСервер()
// Формируем JSON с данными
Данные = Новый Структура();
Данные.Вставить("ДатаВыгрузки", ТекущаяДата());
Данные.Вставить("Контрагенты", Новый Массив());
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Контрагент = Новый Структура();
Контрагент.Вставить("ИНН", Выборка.ИНН);
Контрагент.Вставить("Наименование", Выборка.Наименование);
Данные.Контрагенты.Добавить(Контрагент);
КонецЦикла;
// Преобразуем в JSON
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьJSON(Данные);
ТекстJSON = ЗаписьJSON.Закрыть();
// Отправляем POST-запрос
HTTPСоединение = Новый HTTPСоединение("api.example.com", 80);
Запрос = Новый HTTPЗапрос("/upload");
Запрос.УстановитьТелоИзСтроки(ТекстJSON);
Запрос.УстановитьЗаголовок("Content-Type", "application/json");
Ответ = HTTPСоединение.ОтправитьДляПолученияДанных(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Сообщить("Данные успешно отправлены!");
Иначе
Сообщить("Ошибка: " + Ответ.ПолучитьТекст());
КонецЕсли;
КонецПроцедуры
Популярные сценарии использования:
- 🛒 Синхронизация 1С:УТ с интернет-магазином (остатки, цены, заказы).
- 📊 Автоматическая выгрузка отчётов в Power BI или Tableau.
- 🔄 Обмен с CRM (например, Bitrix24, АмоCRM).
⚠️ Внимание: При обмене через JSON учитывайте ограничения на размер данных (например, в 1С:Предприятие 8.3 максимальный размер строки — 1 Гб). Для больших объёмов разбивайте данные на пакеты или используйте сжатие (GZIP).
6. Выгрузка через внешние обработки и расширения
Если встроенные механизмы 1С не покрывают ваши задачи, можно воспользоваться внешними обработками или расширениями конфигурации. Это готовые решения, которые расширяют функционал стандартной выгрузки. Например:
- 📊 "Выгрузка в Excel (с формулами)" — сохраняет формулы и форматирование.
- 📤 "Универсальный обмен данными 2.0" — поддерживает XML, JSON, CSV с гибкими настройками.
- 🔄 "Интеграция с Google Sheets" — автоматическая выгрузка в Google Таблицы.
Где взять обработки:
- 🛒 Инфостарт (infostart.ru) — крупнейшая база решений для 1С.
- 📦 1С:ИТС — официальные расширения (доступны по подписке).
- 🤝 GitHub — открытые обработки от сообщества (например, vanessa-automation).
Как установить внешнюю обработку:
- Скачайте файл обработки (
.epfили.erf). - В 1С откройте меню
Файл → Открыть → Выбрать файл обработки. - Запустите обработку и следуйте инструкциям на экране.
Пример популярных обработок:
| Название | Назначение | Формат выгрузки | Стоимость |
|---|---|---|---|
| ВыгрузкаУниверсальная | Экспорт любых данных в Excel/CSV/XML | XLSX, CSV, XML | Бесплатно |
| Обмен с Google Sheets | Автоматическая синхронизация с Google Таблицами | Google Sheets API | От 1 500 руб. |
| JSON REST Сервер | Публикация данных 1С в виде REST API | JSON | От 3 000 руб. |
⚠️ Внимание: Перед установкой внешних обработок проверяйте их совместимость с вашей версией 1С и конфигурацией. Некоторые решения могут конфликтовать с обновлениями платформы.
Внешние обработки экономят время, но требуют тестирования. Всегда проверяйте выгруженные данные на корректность перед использованием в отчётности или интеграциях.
Типичные ошибки и их решения
Даже при правильной настройке выгрузки пользователи сталкиваются с проблемами. Рассмотрим самые распространённые ошибки и способы их исправления.
1. Ошибка: «Недостаточно прав для выполнения операции»
- 🔐 Причина: У пользователя нет прав на выгрузку данных или доступ к справочникам.
- 🛠️ Решение: Обратитесь к администратору 1С, чтобы он выдал права на:
- Чтение нужных справочников/документов.
- Использование механизма
Универсальный обмен данными. - Запись в файлы (если выгружаете на диск).
2. Ошибка: «Файл не найден» при выгрузке
- 📁 Причина: Указан неверный путь к папке или нет прав на запись.
- 🛠️ Решение:
- Проверьте путь (например,
C:\Export\должен существовать). - Убедитесь, что в пути нет кириллических символов.
- Запустите 1С от имени администратора.
- Проверьте путь (например,
3. Ошибка: «Превышен лимит строк в Excel»
- 📊 Причина: В Excel 2003–2007 лимит — 65 536 строк, в Excel 2010+ — 1 048 576.
- 🛠️ Решение:
- Разбейте выгрузку на несколько файлов.
- Используйте CSV вместо XLSX.
- Обновите Excel до актуальной версии.
4. Ошибка: «Некорректная кодировка символов»
- 🔤 Причина: В файле используются символы, не поддерживаемые кодировкой (например,
Windows-1251вместоUTF-8). - 🛠️ Решение:
- При выгрузке укажите кодировку
UTF-8. - Откройте файл в Notepad++ и конвертируйте кодировку (
Кодировки → Преобразовать в UTF-8).
- При выгрузке укажите кодировку
5. Ошибка: «Не удалось подключиться к базе данных» (при ODBC)
- 🔌 Причина: Неверные настройки подключения или отсутствует драйвер ODBC.
- 🛠️ Решение:
- Проверьте имя сервера и базы данных.
- Установите актуальный драйвер ODBC для вашей СУБД.
- Включите
SQL Server Authentication, если используете логин/пароль.
FAQ: Частые вопросы по выгрузке данных из 1С
Можно ли выгрузить данные из 1С в Google Таблицы автоматически?
Да, для этого есть несколько способов:
- Использовать внешнюю обработку (например, "Обмен с Google Sheets" с Инфостарта).
- Написать скрипт на встроенном языке, который отправляет данные через
Google Sheets API. - Выгрузить данные в CSV и загрузить в Google Таблицы вручную или через Google Apps Script.
Для автоматического обновления настройте регламентное задание в 1С.
Как выгрузить данные из 1С в MySQL?
Есть два основных метода:
- Через ODBC:
- Настройте ODBC-соединение с MySQL.
- Используйте
Запросв 1С для выборки данных и запишите их в MySQL черезADO.
- Выгрузите данные из 1С в CSV.
- Импортируйте файл в MySQL с помощью команды
LOAD DATA INFILE.
Пример команды для импорта в MySQL:
LOAD DATA INFILE 'C:/export/data.csv'
INTO TABLE products
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
Почему при выгрузке в Excel русские буквы отображаются как «кракозябры»?
Проблема связана с неверной кодировкой. Решения:
- При выгрузке укажите кодировку
UTF-8(вместоWindows-1251). - Откройте файл в Excel через
Импорт данных → Из текстаи выберите кодировку65001 (UTF-8). - Конвертируйте файл в Notepad++ (
Кодировки → Преобразовать в UTF-8).
Как выгрузить данные из 1С в формате JSON для API?
Используйте встроенный класс ЗаписьJSON:
Данные = Новый