Выгрузка данных из 1С в файл: от таблицы Excel до XML по расписанию
Содержание
Самый быстрый способ сделать файл выгрузки из
1С — открыть нужный список или отчёт и сохранить его через главное меню Файл → Сохранить как, выбрав формат xlsx. Для списков документов и справочников сначала выполните Ещё → Вывести список, и программа сформирует таблицу, которую можно сохранить. Если же данные нужно перенести в другую базу 1С, выгружают XML через обработку «Универсальный обмен данными в формате XML» с правилами обмена.
Остальные варианты нужны, когда стандартной кнопки мало: внешняя обработка под конкретный формат, программная выгрузка в CSV или JSON и автоматический запуск по расписанию. Всё ниже относится к платформе 1С:Предприятие 8.3 с интерфейсом «Такси» и подходит бухгалтерам и программистам: первые разделы — без кода, дальше — с примерами.
Что можно выгрузить из 1С и в какой файл
Сначала определитесь, кто будет читать файл. От этого зависит формат, а значит, и способ.
| Задача | Формат файла | Способ | Нужен программист |
|---|---|---|---|
| Отдать таблицу коллеге, аудитору, в Excel | xlsx, xls, ods | Сохранить список или отчёт | Нет |
| Отправить документ на печать или по почте | pdf, docx | Сохранить печатную форму | Нет |
| Перенести данные в другую базу 1С | xml | Универсальный обмен, обработка выгрузки XML | Иногда |
| Сделать полную копию базы | dt | Конфигуратор | Нет |
| Передать данные на сайт, в CRM, маркетплейс | csv, json, xml | Внешняя обработка или код | Да |
| Платёжки в банк | текстовый файл обмена | Встроенная выгрузка в клиент-банк | Нет |
💡 Файл .dt — это не «выгрузка данных» в привычном смысле. Его читает только 1С: он нужен для резервной копии и восстановления базы, открыть его в Excel или передать во внешнюю систему нельзя.
Выгрузка списков, отчётов и печатных форм в Excel и PDF
Этот способ покрывает большую часть повседневных задач. Права администратора не нужны.
Список документов или справочника
- Откройте список, например
Продажи → Реализация (акты, накладные, УПД)в Бухгалтерии 3.0. - Настройте отбор и колонки:
Ещё → Настроить список. Уберите лишнее, добавьте нужные реквизиты. - Выполните
Ещё → Вывести список. В окне отметьте колонки и выберите вывод в табличный документ. - В открывшейся таблице нажмите
Файл → Сохранить какв главном меню (кнопка с тремя полосками в заголовке окна). - Выберите тип файла: «Лист Excel 2007-…» (
xlsx), укажите папку и имя.
Отчёт
Сформируйте отчёт, например оборотно-сальдовую ведомость, и сохраните его так же — через Файл → Сохранить как. Платформа предлагает форматы mxl, xlsx, xls, ods, pdf, docx, html, txt.
- 📊
xlsx— для дальнейших расчётов и сводных таблиц; - 📄
pdf— когда важно, чтобы получатель ничего не поправил; - 🗂
mxl— родной формат 1С, открывается только в 1С или в бесплатной программе просмотра 1С:Предприятие — Работа с файлами.
Печатная форма
У печатной формы (счёт, акт, УПД) есть своя кнопка сохранения в командной панели формы печати — значок дискеты. Там же можно выбрать несколько форматов сразу и сохранить пакет документов одним действием или отправить их по почте.
Отчёт с группировками при сохранении в Excel сохраняет уровни группировки, но объединённые ячейки шапки могут мешать сортировке. Если файл пойдёт в обработку, а не на просмотр, отключите в настройках отчёта лишние группировки и итоги.
Файл выгрузки в XML для переноса в другую базу
Когда данные нужно загрузить в другую 1С, Excel не подходит: он теряет ссылки между объектами. Нужен XML.
Вариант 1. Универсальный обмен данными в формате XML
Это обработка, которая выгружает данные по правилам обмена — файлу, описывающему, какой объект источника превращается в какой объект приёмника. Правила для типовых пар конфигураций публикуются вместе с обновлениями, свои правила делают в конфигурации «Конвертация данных ».
Порядок работы:
- Откройте обработку. В Бухгалтерии 3.0 она входит в состав конфигурации и доступна через
Функции для технического специалиста → Обработки(команда включается в настройках программы). Если в вашей конфигурации её нет, откройте файл обработки черезФайл → Открыть. - На закладке выгрузки укажите файл правил обмена (
.xml). - Задайте период и имя файла данных, куда пойдёт результат.
- В дереве правил отметьте, какие объекты выгружать: например, только справочник контрагентов и документы реализации за квартал.
- Запустите выгрузку и дождитесь протокола.
В базе-приёмнике та же обработка открывается на закладке загрузки, где указывают полученный файл данных.
Вариант 2. Выгрузка между одинаковыми конфигурациями
Если источник и приёмник — одна и та же конфигурация одного релиза, правила не нужны. Используют обработку «Выгрузка и загрузка данных XML»: она сериализует объекты как есть. Отметили справочники и документы, указали файл — получили XML.
Перед загрузкой XML в рабочую базу сделайте её резервную копию. Загрузка перезаписывает объекты с теми же идентификаторами, и откатить её штатно нельзя.
| Вариант | Когда подходит | Риски |
|---|---|---|
| Универсальный обмен с правилами | Разные конфигурации: БП → УТ, УТ → БП | Нужны правила под ваши релизы |
| Выгрузка и загрузка данных XML | Одинаковая конфигурация и релиз | Перезапись объектов, не переносит между разными структурами |
| Встроенная синхронизация | Постоянный обмен между базами | Нужна настройка узлов, это не разовый файл |
Выгрузка через внешнюю обработку
Внешняя обработка (.epf) — отдельный файл с формой и кодом, который подключают к базе без изменения конфигурации. Это самый частый способ сделать нестандартный файл выгрузки: под формат маркетплейса, учётной системы холдинга или конкретного банка.
Как подключить в Бухгалтерии 3.0, ЗУП 3.1, УТ 11:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.- Нажмите «Добавить из файла» и выберите
.epf. - Укажите, в каких разделах команда будет видна, и назначьте пользователей.
- Запись сохраните — обработка появится в выбранном разделе.
Для разовой выгрузки обработку можно просто открыть через Файл → Открыть, но для этого у пользователя должно быть право на интерактивное открытие внешних обработок.
💡 При открытии файла платформа может показать предупреждение безопасности. Это защита от опасных действий: подтверждайте, только если знаете, откуда обработка. Чужая .epf из интернета выполняет любой код с правами вашего пользователя.
Программная выгрузка в CSV, JSON и Excel
Этот раздел для тех, кто пишет код. Ниже — три рабочих приёма, из которых собирается почти любая выгрузка.
CSV для Excel и внешних систем
Процедура выгружает контрагентов в файл с разделителем «;». Выполняется на сервере.
Процедура ВыгрузитьКонтрагентовВCSV(ПутьКФайлу) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН,
| Контрагенты.КПП КАК КПП
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ЭтоГруппа
| И НЕ Контрагенты.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Наименование";
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Наименование;ИНН;КПП");
Пока Выборка.Следующий() Цикл
Наименование = СтрЗаменить(Выборка.Наименование, ";", ",");
Текст.ЗаписатьСтроку(СтрШаблон("%1;%2;%3", Наименование, Выборка.ИНН, Выборка.КПП));
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры
Кодировка UTF8 записывает в начало файла метку BOM, поэтому Excel открывает кириллицу без «кракозябр». Точку с запятой внутри наименования заменяем, иначе строка разъедется по колонкам.
JSON для сайта или API
Данные = Новый Массив;
Пока Выборка.Следующий() Цикл
Элемент = Новый Структура;
Элемент.Вставить("name", Выборка.Наименование);
Элемент.Вставить("inn", Выборка.ИНН);
Данные.Добавить(Элемент);
КонецЦикла;
Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8");
ЗаписатьJSON(Запись, Данные);
Запись.Закрыть();
ЗаписатьJSON понимает структуры, соответствия, массивы, строки, числа, даты и булево. Ссылки на справочники он не сериализует: перед записью превратите их в строку или в уникальный идентификатор через Ссылка.УникальныйИдентификатор().
Excel из кода
Собрали табличный документ — сохраняете одной строкой:
ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);
Для XML без правил обмена используйте ЗаписьXML: он пишет файл потоком, элемент за элементом, и не держит весь документ в памяти.
В клиент-серверной базе код на сервере пишет файл на диск сервера 1С, а не на компьютер пользователя. Чтобы файл оказался у пользователя, запишите его во временное хранилище и передайте на клиент: в управляемой форме для этого служат ПоместитьВоВременноеХранилище и НачатьПолучениеФайлаССервера (или ПолучитьФайл в старом коде).
Автоматическая выгрузка по расписанию
Если файл нужен каждый день — остатки для сайта, продажи для головного офиса — выгрузку ставят на расписание. Есть два пути.
Регламентное задание
- В Конфигураторе (или в расширении) добавьте объект «Регламентное задание».
- Укажите метод — экспортную процедуру серверного общего модуля, которая делает выгрузку.
- Задайте расписание и отметьте «Использование».
- Пользователь может менять расписание без Конфигуратора: в типовых конфигурациях это
Администрирование → Обслуживание, ссылка «Регламентные и фоновые задания».
Путь к файлу в задании — это путь на сервере 1С, и у пользователя, от имени которого работает служба сервера, должны быть права на запись в эту папку. Сетевую папку указывайте в формате \\server\share\, а не через букву диска: подключённые диски служба не видит.
В файловой базе регламентные задания выполняет один из открытых клиентских сеансов. Если в нужное время базу никто не запустил, выгрузка не произойдёт.
Планировщик Windows и запуск 1С с параметрами
Для файловых баз надёжнее планировщик заданий Windows. Он запускает 1С с внешней обработкой, которая при открытии делает выгрузку и закрывает программу:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Выгрузка" /P"пароль" /Execute"D:\Obr\Vygruzka.epf" /DisableStartupMessages
Номер версии в пути замените на установленный у вас. Для такого запуска заведите отдельного пользователя с минимальными правами: пароль в bat-файле лежит открытым текстом.
Как выгружать большие объёмы без зависаний
Выгрузка 300 тысяч документов «в лоб» упирается в память и время. Что помогает:
- 🧩 Порции. Выбирайте
ВЫБРАТЬ ПЕРВЫЕ 10000с отборомСсылка > &ПоследняяСсылкаи сортировкой по ссылке, пишите порцию в файл и переходите к следующей. - 🗓 Деление по периодам. Для XML-обмена выгружайте по месяцу или кварталу: один огромный файл тяжело и выгрузить, и загрузить.
- ⚡ Один запрос вместо обращений через точку.
Выборка.Контрагент.ИННвнутри цикла — это отдельное обращение к базе на каждую строку. Получите ИНН в самом запросе. - 📝 Потоковая запись.
ЗаписьXMLиЗаписьТекстапишут сразу в файл. Сборка всего в одну строку или DOM-дерево съедает память. - 🖥 Фоновое задание. Длинную выгрузку запускайте в фоне, чтобы форма не «висела» и пользователь видел прогресс.
- 🗜 Сжатие. Готовый файл упакуйте через
ЗаписьZipФайла: текстовые XML и CSV сжимаются в разы.
Ошибки при выгрузке и как их исправить
Нажмите на симптом, чтобы увидеть причину и решение.
Частые вопросы
Можно ли выгрузить из 1С сразу всю базу в Excel?
.dt, но он читается только в 1С.Чем выгрузка в XML отличается от выгрузки в dt?
.dt — полный снимок базы вместе с конфигурацией, из него базу восстанавливают целиком.