Экспорт документов из 1С: форматы, списки, обмен и автоматизация
Содержание
Самый быстрый способ: откройте документ, нажмите кнопку печати, в окне печатной формы нажмите дискету (Сохранить) и выберите формат — Лист Excel 2007 для таблицы, PDF документ для неизменяемого файла. Экспортировать можно не только печатную форму, но и список документов целиком, а при переносе в другую базу — через синхронизацию данных.
Ниже — все рабочие способы выгрузки: из открытой формы, списком, встроенным языком, обменом между базами и по расписанию. Разберём, в каких форматах 1С отдаёт данные и как не подвесить базу на большой выгрузке.
Куда ведёт кнопка сохранения в открытой форме
Отдельный документ 1С (счёт, накладную, акт) напрямую в файл не выгружают — экспортируют его печатную форму или табличный документ, который она формирует.
Порядок действий:
- Откройте документ и нажмите Печать в командной панели. Выберите нужную печатную форму (например,
Счёт на оплатуилиТОРГ-12). - В открывшемся окне просмотра нажмите кнопку с изображением дискеты — Сохранить (либо
Ещё → Сохранить). - В диалоге выбора файла раскройте список Тип файла и укажите формат.
- Задайте имя и папку, нажмите Сохранить.
Если кнопки печати нет на видном месте, ищите её в меню Ещё в правом верхнем углу формы — туда 1С в интерфейсе «Такси» убирает редкие команды.
Так выгружается ровно то, что видно на экране в печатной форме. Формулы и связи с базой в файл не переносятся — вы получаете статичный снимок данных.
Рядом с кнопкой сохранения в окне печати есть ещё две полезные команды:
- ✉️ Отправить (значок конверта) — 1С приложит печатную форму к письму файлом. Формат вложения выбирается тут же, отдельно сохранять на диск не нужно.
- 📎 Печать комплектом. Если документ формирует несколько печатных форм (например, счёт + накладная + счёт-фактура), отметьте нужные галочками — они сохранятся одним многостраничным файлом.
Быстрый способ забрать не весь документ, а кусок таблицы: выделите нужные ячейки в окне печатной формы мышью и нажмите Ctrl+C. Данные скопируются в буфер, их можно вставить прямо в открытый Excel через Ctrl+V — без промежуточного файла.
В какие форматы выгружает 1С: Excel, PDF, Word и mxl
При сохранении печатной формы или табличного документа в поле Тип файла доступен один и тот же набор форматов. Какой выбрать — зависит от того, что с файлом будут делать дальше.
| Формат | Расширение | Когда выбирать |
|---|---|---|
| Лист Excel 2007 | .xlsx | Нужно считать итоги, отфильтровать, построить сводную |
| Лист Excel 95 | .xls | Получатель работает в старом Excel |
| Документ Word | .docx | Пойдёт в договор или письмо, нужна правка текста |
| PDF документ | .pdf | Файл не должен меняться — для клиента, в архив, на подпись |
| Табличный документ | .mxl | Откроет другой пользователь 1С без потери вёрстки |
| Текстовый файл | .txt | Нужны только значения, без оформления |
| HTML документ | .html | Вставка на страницу или в письмо |
Проверьте выгрузку в Excel перед отправкой: объединённые ячейки и широкие шапки из 1С иногда «разъезжаются». Если формат важен для получателя — надёжнее PDF.
Для .xlsx 1С сохраняет числа как числа, а даты как даты — суммировать и сортировать можно сразу. В .pdf расположение фиксируется один в один с печатной формой.
Выгрузка списка документов целиком
Когда нужен не один документ, а весь журнал — реализации за месяц, список контрагентов, остатки — выгружают список формы, а не печатную форму.
- Откройте журнал или список (например,
Продажи → Реализация (акты, накладные)). - Настройте отбор и период так, чтобы на экране остались нужные строки.
- Нажмите
Ещё → Вывести список. - В окне выберите, какие колонки выгрузить, и тип: Табличный документ (для Excel) или Текстовый документ.
- Нажмите OK — 1С сформирует табличный документ, который дальше сохраняется в файл обычной дискетой.
Вывести список выгружает строки как они показаны в списке — с учётом отбора и видимых колонок. Если в списке включён отбор по организации, в файл попадёт только эта организация. Снимите лишние отборы заранее.
Чтобы добавить в выгрузку колонки, которых нет в списке по умолчанию (например, договор или склад), сначала выведите их через Ещё → Изменить форму или настройку колонок, а потом уже выгружайте.
Экспорт средствами встроенного языка
Если выгрузка нужна регулярно и по своим правилам, печатную форму заменяет код. Табличный документ пишется в файл одним методом:
ТабДок = Отчёт.СформироватьТабличныйДокумент();
ТабДок.Записать("C:\Выгрузка\otchet.xlsx", ТипФайлаТабличногоДокумента.XLSX);
Для PDF меняется только тип файла — ТипФайлаТабличногоДокумента.PDF. Для mxl тип можно не указывать: по расширению .mxl формат определится сам.
Данные без оформления (список значений, таблицу) выгружают сериализацией в XML через объект записи:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Выгрузка\data.xml");
ЗаписатьXML(Запись, СтруктураДанных);
Запись.Закрыть();
Путь вроде C:\Выгрузка\ — это диск сервера 1С в клиент-серверном варианте, а не компьютер пользователя. Чтобы файл попал к пользователю, формируйте его во временном каталоге и отдавайте через ПолучитьФайл или помещайте во временное хранилище.
На управляемых формах запись файла и его передача клиенту разделены: серверная процедура кладёт файл во временное хранилище, клиентская командой сохранения предлагает выбрать папку. Это штатное поведение, а не ограничение — так работает экспорт в веб-клиенте и тонком клиенте.
Когда выгрузка нужна регулярно, но лезть в код не хочется, промежуточный вариант — отчёт на системе компоновки данных (СКД). Вы один раз настраиваете отбор, группировки и колонки, сохраняете вариант отчёта, а дальше выгружаете его в Excel той же кнопкой сохранения. СКД заметно устойчивее к большим объёмам, чем вывод списка, и не требует программирования.
Перенос документов в другую базу: обмен данными
Когда документ нужно не сохранить в файл, а передать в другую базу 1С (из УТ в Бухгалтерию, из филиала в центральную базу), файл Excel не подходит — потеряются ссылки на справочники и движения. Используют синхронизацию данных.
- Зайдите в
Администрирование → Синхронизация данныхв обеих базах. - Настройте обмен по типовому формату — для современных конфигураций это EnterpriseData (универсальный формат обмена).
- Укажите, какие объекты и за какой период передавать; задайте правила отбора.
- Запустите синхронизацию вручную или настройте расписание.
При обмене через EnterpriseData 1С выгружает документы в XML-файл по описанному формату, а принимающая база разбирает его и создаёт свои документы со всеми реквизитами.
Разберёмся, что именно уезжает в другую базу. Вместе с самим документом переносятся заполняющие его справочники — контрагенты, номенклатура, договоры, — иначе принимающей базе не на что было бы сослаться. А вот движения по регистрам (проводки, остатки) обычно не передают: принимающая база проводит документ своими правилами учёта. Поэтому после загрузки документы, как правило, нужно перепровести, и остатки в двух базах сойдутся только после этого.
Обмен направленный: настройка «из базы А в базу Б» не тянет данные обратно автоматически. Для двустороннего обмена настраивают синхронизацию в обеих базах и согласуют, какая из них главная по каждому виду данных, чтобы изменения не перетирали друг друга.
Если типовая синхронизация между вашими конфигурациями не настраивается, обмен делают через Конвертацию данных 3.0 — отдельную конфигурацию, где настраиваются правила выгрузки и загрузки под нестандартную связку баз.
Разовую выгрузку для переноса в такую же базу можно сделать и через Администрирование → Выгрузить данные для перехода, но это касается всей базы, а не отдельных документов.
Большие выгрузки: как не подвесить базу
Выгрузка нескольких тысяч строк в Excel из списка через Вывести список часто упирается в память и надолго занимает сеанс. Приёмы, которые снимают проблему:
- 📦 Дробите период. Вместо года выгружайте помесячно и склеивайте файлы — так ни один табличный документ не разрастается до миллионов ячеек.
- 📊 Готовьте данные отчётом на СКД, а не выводом списка. Система компоновки данных отдаёт в Excel десятки тысяч строк заметно легче, чем форма списка.
- 🧮 Убирайте лишние колонки. Каждое поле — это память. Оставьте в выгрузке только то, что реально нужно получателю.
- 🕓 Запускайте тяжёлую выгрузку фоновым заданием, чтобы не блокировать свой сеанс (см. следующий раздел).
Типичная ошибка на больших объёмах — Недостаточно памяти или зависший сеанс. Причина — попытка сформировать один гигантский табличный документ в памяти. Лечится дроблением и выгрузкой через СКД, а не повышением лимитов наугад.
Excel 2007 и новее держит максимум 1 048 576 строк на листе. Если выгрузка больше — 1С разложит данные по нескольким листам или оборвёт экспорт. Для таких объёмов выгружайте в .csv или .txt либо передавайте данные обменом, а не таблицей.
Для миллионов строк табличный документ вообще не держат в памяти: данные пишут в текстовый файл построчно через объект ЗаписьТекста, разделяя значения точкой с запятой. Такой .csv Excel и любая аналитическая система открывают потоково, без загрузки всего файла целиком, — память 1С при этом почти не расходуется.
Автоматический экспорт по расписанию
Регулярную выгрузку (например, реестр продаж каждое утро в файл) настраивают через регламентные и фоновые задания.
Логика такая:
- В расширении или внешней обработке пишется процедура, которая формирует табличный документ и записывает его в заданную папку кодом из раздела о встроенном языке.
- Эта процедура назначается регламентному заданию. В клиент-серверном варианте расписание задаётся в консоли кластера или в самой конфигурации; в файловом — задание выполняется, только пока открыт сеанс.
- Расписание (время, периодичность) настраивается в свойствах регламентного задания.
В файловой базе регламентные задания работают лишь при запущенном сеансе 1С. Для надёжной выгрузки по ночам нужен либо клиент-серверный вариант, либо постоянно открытый сеанс на выделенном компьютере.
Для синхронизации между базами расписание проще: в Администрирование → Синхронизация данных у настройки обмена есть собственное расписание — отдельная обработка не нужна.
Частые вопросы
Можно ли выгрузить документ из 1С сразу в Excel одной кнопкой?
Ещё → Вывести список.Почему при сохранении в Excel пропадает оформление?
Как выгрузить документы для переноса в другую базу 1С?
Администрирование → Синхронизация данных по формату EnterpriseData. Так сохранятся ссылки на справочники и движения по регистрам, чего обычный файл не переносит.