Выгрузка данных из 1С 8.3: от кнопки «Сохранить» до обмена по расписанию
Содержание
Чтобы сделать выгрузку в 1С, сначала определите, кому нужны данные. Человеку с Excel хватит команды Ещё → Вывести список и сохранения в .xlsx. Другой базе 1С нужна синхронизация или обмен по правилам конвертации. Внешней системе (сайту, CRM, BI) — файл XML/JSON или HTTP-сервис.
Частая ошибка — начинать с программирования. Половина задач по выгрузке данных из 1С решается штатными средствами за пять минут. Обработку пишут, только когда нужен нестандартный состав полей, регулярный автоматический запуск или формат, которого нет в типовых механизмах.
С чего начать: какой способ выгрузки выбрать
Подберите способ по получателю и регулярности. Таблица ниже покрывает почти все практические случаи.
| Задача | Способ | Нужен программист | Регулярность |
|---|---|---|---|
| Таблица для руководителя | Отчёт или список → сохранить в .xlsx | Нет | Разово |
| Перенос справочников между базами 1С | Синхронизация данных, «Выгрузка/загрузка данных XML» | Нет | Разово или по расписанию |
| Обмен БП ↔ УТ, БП ↔ ЗУП | Типовая синхронизация (формат EnterpriseData) | Нет | Постоянно |
| Нетиповая база, свои объекты | Правила КД 2 / КД 3 | Да | Постоянно |
| Сайт, маркетплейс, CRM | XML/JSON-файл, OData, HTTP-сервис | Часто да | Постоянно |
| Копия всей базы | Выгрузка в .dt через Конфигуратор | Нет | Разово |
Если файл нужен один раз и прочитает его человек — не ищите обработку. Список или отчёт, сохранённый в Excel, почти всегда достаточен.
Перед любой выгрузкой проверьте три вещи:
- 🔐 Права. Пользователь должен видеть данные, которые выгружает. Ограничения на уровне записей отрежут часть строк без предупреждения.
- 📅 Период и отборы. Выгрузка «за всё время» по большому регистру может идти час и упасть по памяти.
- 🧾 Формат получателя. Узнайте заранее, нужен ли разделитель
;или,, кодировка UTF-8 или windows-1251, точка или запятая в дробных числах.
Штатные механизмы выгрузки данных в 1С 8.3
Список или отчёт в Excel
Самый быстрый способ выгрузки в 1С:
- Откройте нужный журнал или справочник.
- Нажмите
Ещё → Вывести список. - Отметьте колонки, которые нужны, и нажмите «ОК».
- В открывшемся табличном документе нажмите кнопку сохранения (дискета) или
Ещё → Сохранить как. - Выберите тип файла «Лист Microsoft Excel 2007-… (*.xlsx)».
С отчётами то же самое: сформируйте отчёт и сохраните его через кнопку сохранения на панели отчёта. Доступны форматы .xlsx, .xls, .ods, .pdf, .mxl, .txt, .html.
«Вывести список» выгружает только то, что сейчас показано в списке с учётом отборов. Снимите отбор по периоду, если нужен весь массив.
Синхронизация данных между базами
Типовые конфигурации на БСП умеют обмениваться через Администрирование → Синхронизация данных. Включите флажок синхронизации, задайте префикс информационной базы и создайте новую синхронизацию с нужной программой. Мастер предложит канал: локальный или сетевой каталог, FTP, электронная почта, интернет (для баз в облаке).
Сам обмен идёт в формате EnterpriseData, правила уже встроены в конфигурацию. Это лучший вариант для пар «Бухгалтерия — Управление торговлей», «Бухгалтерия — ЗУП».
Обработки «Выгрузка/загрузка данных XML» и «Универсальный обмен данными XML»
Обе обработки — внешние файлы .epf, их открывают через Файл → Открыть (меню с тремя полосками в верхнем левом углу).
- 📦 «Выгрузка/загрузка данных XML» переносит объекты между базами с одинаковой конфигурацией. Отмечаете справочники и документы, получаете XML, загружаете в другую базу той же обработкой.
- 🔄 «Универсальный обмен данными XML » работает с правилами конвертации КД 2 и переносит данные между разными конфигурациями.
Обе обработки распространяются с поставкой платформы и конфигураций. Скачивайте их только из официальных источников, а не со случайных форумов.
Выгрузка всей базы в .dt
Это не обмен, а резервная копия. Путь: Конфигуратор → Администрирование → Выгрузить информационную базу. Файл .dt содержит конфигурацию и все данные, загружается в Конфигураторе обратно.
Загрузка .dt полностью заменяет базу-приёмник. Перед загрузкой сделайте копию базы .
Выгрузка через внешнюю обработку: когда штатного мало
Внешняя обработка нужна, если требуется особый состав полей, своя структура файла или запуск без участия пользователя. Её пишут в Конфигураторе (Файл → Новый → Внешняя обработка) и сохраняют как .epf.
Подключить готовую обработку можно двумя путями:
- разово — через
Файл → Открыть; - постоянно — в разделе
Администрирование → Печатные формы, отчеты и обработки, флажок «Дополнительные отчеты и обработки», затем добавить файл в список.
Пример: выгрузка номенклатуры в CSV. Код выполняется на сервере, файл пишется в каталог, доступный серверу.
&НаСервереБезКонтекста
Процедура ВыгрузитьНоменклатуруНаСервере(ИмяФайла)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Код;Наименование;Артикул");
Пока Выборка.Следующий() Цикл
Строка = СокрЛП(Выборка.Код) + ";"
+ ЭкранироватьCSV(Выборка.Наименование) + ";"
+ ЭкранироватьCSV(Выборка.Артикул);
Текст.ЗаписатьСтроку(Строка);
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ЭкранироватьCSV(Значение)
Стр = СтрЗаменить(Строка(Значение), """", """""");
Возврат """" + Стр + """";
КонецФункции
Реквизит «Артикул» есть не во всех конфигурациях. Проверьте состав справочника в Конфигураторе и поправьте запрос под свою базу.
В клиент-серверной базе путь вида C:\Выгрузка\ указывает на диск сервера 1С, а не вашего компьютера. Для выгрузки на компьютер пользователя формируйте файл во временном хранилище и передавайте его на клиент.
XML и JSON: выгрузка данных из 1С для внешних систем
Для сайтов, маркетплейсов и CRM обычно нужен XML или JSON. Во встроенном языке 1С для этого есть готовые объекты, вручную собирать строки не нужно.
| Объект | Что делает |
|---|---|
ЗаписьXML | Пишет XML-файл или строку, сам экранирует &, <, > |
ЗаписьJSON + ЗаписатьJSON() | Сериализует структуры, соответствия и массивы в JSON |
СериализаторXDTO | Выгружает объекты 1С целиком в XML или JSON |
| HTTP-сервисы | Отдают данные по запросу внешней системы, без файлов |
| Стандартный интерфейс OData | Даёт доступ к объектам базы по REST без написания кода |
Пример выгрузки в JSON:
Данные = Новый Массив;
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Элемент = Новый Структура("code,name,inn",
СокрЛП(Выборка.Код), Выборка.Наименование, Выборка.ИНН);
Данные.Добавить(Элемент);
КонецЦикла;
Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл(ИмяФайла, "UTF-8");
ЗаписатьJSON(Запись, Данные);
Запись.Закрыть();
Структура в JSON превращается в объект, массив — в массив. Ссылки, даты и перечисления напрямую в JSON не пишутся: преобразуйте их в строки или задайте функцию преобразования.
Если интеграция постоянная, файловый обмен лучше заменить HTTP-сервисом или OData. Внешняя система сама забирает свежие данные, и не нужно следить за папкой с файлами.
Для публикации HTTP-сервиса и OData базу публикуют на веб-сервере (IIS или Apache) через Конфигуратор: Администрирование → Публикация на веб-сервере. Для OData дополнительно нужно указать, какие объекты открыты для доступа.
Правила конвертации данных: КД 2 и КД 3
Когда базы разные и типовой синхронизации нет, пишут правила конвертации. Их делают в отдельной конфигурации «Конвертация данных ».
| КД 2 | КД 3 | |
|---|---|---|
| Результат | XML-файл правил | Модуль обмена (код), формат EnterpriseData |
| Где применяется | Обработка «Универсальный обмен данными XML», старые обмены | Современные типовые конфигурации на БСП |
| Кто применяет | Пользователь загружает файл правил в обработку | Разработчик встраивает модуль в конфигурацию |
| Поддержка изменений | Проще поправить правило и перевыгрузить | Нужно обновлять модуль в конфигурации |
Порядок работы с КД 2:
- В конфигурации «Конвертация данных 2.x» загрузите структуру метаданных базы-источника и базы-приёмника.
- Создайте правила конвертации объектов (ПКО): какой справочник во что превращается.
- Настройте правила выгрузки данных (ПВД): какие объекты и с какими отборами выгружать.
- Сохраните правила в XML.
- В базе-источнике откройте «Универсальный обмен данными XML», укажите файл правил, выполните выгрузку.
- В базе-приёмнике той же обработкой загрузите полученный файл данных.
КД 3 устроена иначе: правила описывают преобразование объектов базы в формат EnterpriseData и обратно. Обе базы общаются через этот формат, а не напрямую друг с другом. Это даёт устойчивость к обновлениям: меняется конфигурация — правится только её сторона.
Первую загрузку по новым правилам делайте в копию базы-приёмника. Ошибка в правилах легко создаёт сотни дублей.
Кодировка и спецсимволы: почему файл открывается «крякозябрами»
Большая часть жалоб на выгрузку — не логика, а кодировка. Типичные симптомы и решения:
Ещё две ловушки:
- 📆 Даты. Для внешних систем выгружайте даты в ISO-формате: функцией
XMLСтрока(Дата), она вернёт строку вида2026-02-01T00:00:00. Формат «01.02.2026» может прочитаться как 2 января. - 🔢 Коды с ведущими нулями. Excel превращает код
00045в число45. Если коды важны, выгружайте их в.xlsxиз табличного документа, а не через CSV.
Выгрузка по расписанию: как настроить автоматический запуск
Вариант 1. Расписание синхронизации
У типовой синхронизации данных расписание настраивается в её карточке: Администрирование → Синхронизация данных → Синхронизация данных с другими программами, откройте нужную настройку и включите автоматическую синхронизацию по расписанию. Задайте интервал, например каждые 30 минут в рабочие часы.
Вариант 2. Регламентное задание
Если выгрузка написана в конфигурации, программист оформляет её как регламентное задание. Посмотреть и включить задания можно через Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
В файловой базе регламентные задания выполняются, только пока база открыта хотя бы у одного пользователя. Если ночью никого нет — выгрузка не запустится. В клиент-серверной базе задания выполняет сервер 1С.
Вариант 3. Планировщик Windows и параметр /Execute
Внешнюю обработку можно запускать из командной строки. Для этого в модуле формы обработки при открытии вызывают процедуру выгрузки, а затем закрывают программу.
@echo off
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Выгрузка" /P"пароль" /Execute"D:\Scripts\export.epf" /DisableStartupMessages
Вместо 8.3.xx.xxxx подставьте номер установленной платформы. Файл добавляют в планировщик заданий Windows с нужным временем запуска.
Что учесть:
- 👤 Заведите отдельного пользователя 1С с правами только на чтение нужных данных.
- 🛡️ Для этого пользователя отключите защиту от опасных действий в его карточке, иначе при открытии внешней обработки появится предупреждение и запуск остановится.
- 🔑 Пароль в bat-файле лежит открытым текстом. Ограничьте доступ к файлу и папке.
- 🔌 Каждый запуск занимает лицензию на время работы. Ставьте расписание на часы, когда свободные лицензии точно есть.