Экспорт из 1С 8.3: отчёты, печатные формы, вложения и автоматическая выгрузка
Содержание
Чтобы выгрузить файл из 1С, откройте нужный отчёт или печатную форму и сохраните её через главное меню ☰ → Файл → Сохранить как. Там выбирается формат: Excel (.xlsx), PDF, Word (.docx), .mxl и другие. Присоединённые к документу файлы (сканы, договоры) сохраняются из списка «скрепки» командой сохранения на диск.
Если выгружать нужно регулярно, большими объёмами или на чужой сервер, ручное сохранение уже не годится. Тогда нужны стандартные обработки выгрузки, код на встроенном языке и автоматический запуск по расписанию. Все способы ниже относятся к платформе 1С:Предприятие 8.3 и интерфейсу «Такси».
Какой способ экспорта из 1С выбрать
Сначала определите, что именно вы выгружаете. От этого зависит инструмент.
| Что выгружаем | Способ | Кто справится |
|---|---|---|
| Отчёт, оборотку, список | «Сохранить как» в Excel/PDF | Любой пользователь |
| Печатные формы (счета, акты, ТОРГ-12) | Кнопка сохранения в окне печати | Любой пользователь |
| Сканы и вложения документов | Список присоединённых файлов | Любой пользователь |
| Данные базы целиком или частично | Обработки XML, выгрузка .dt | Администратор |
| Файлы для банка | Обмен с клиент-банком (1c_to_kl.txt) | Бухгалтер |
| Регулярная выгрузка на FTP/сайт | Внешняя обработка + расписание | Программист 1С |
💡 Если файл нужен для другого человека, а не для другой программы, почти всегда хватает PDF. Его не исказит ни Excel, ни разная кодировка.
Как выгрузить отчёт или список из 1С в Excel
Это самый частый сценарий. Порядок одинаковый для БП 3.0, ЗУП 3.1, УТ 11 и других типовых конфигураций.
- Сформируйте отчёт с нужными настройками.
- Щёлкните мышью по полю табличного документа, чтобы оно стало активным.
- Откройте главное меню
☰ → Файл → Сохранить как(или нажмите на значок дискеты в форме отчёта, если он есть). - В поле «Тип файла» выберите
Лист Excel 2007-... (*.xlsx). - Укажите папку и имя, нажмите «Сохранить».
Сохраняется только активный табличный документ. Если в форме несколько вкладок или полей, выгрузится то, где стоит курсор.
Выгрузка списка документов или справочника
Табличную часть и динамический список можно выгрузить без отчёта:
- 📋 откройте список (например, «Реализация (акты, накладные)»);
- 📋 нажмите
Ещё → Вывести список…; - 📋 отметьте нужные колонки и нажмите «ОК»;
- 📋 откроется табличный документ — сохраните его через
☰ → Файл → Сохранить как.
Какой формат выбрать
| Формат | Когда брать | Ограничения |
|---|---|---|
.xlsx | Дальнейшая работа в Excel | Формулы не переносятся, только значения |
.xls | Старый Excel 2003 | Не больше 65 536 строк на лист |
.pdf | Отправка контрагенту, архив | Не редактируется |
.docx | Правка текста письма, договора | Сложные таблицы могут «поплыть» |
.mxl | Открыть потом снова в 1С | Нужна 1С или бесплатная программа просмотра |
.txt, .csv | Загрузка в другую систему | Нет оформления |
Отчёт на 100 000 строк в .xls обрежется. Для больших оборотно-сальдовых ведомостей выбирайте только .xlsx.
Печатные формы и вложения: как выгрузить файлы документов
Печатные формы пакетом
Окно печати в типовых конфигурациях умеет сохранять сразу несколько форм.
- Выделите в списке нужные документы (Ctrl или Shift + клик).
- Нажмите «Печать» и выберите форму, например «Счёт на оплату».
- В открывшемся окне нажмите кнопку сохранения (значок дискеты).
- Отметьте форматы: PDF, Excel, Word — можно несколько сразу.
- Выберите, куда сохранить: на компьютер в папку или присоединить к документу.
- При желании включите упаковку в ZIP-архив.
Так за один проход получаются, скажем, 40 актов в PDF, каждый отдельным файлом.
Присоединённые файлы (сканы, договоры)
В карточке документа или справочника вложения открываются кнопкой со скрепкой. В списке файлов:
- 📎 выделите нужный файл;
- 📎 через меню «Ещё» выберите команду сохранения на диск;
- 📎 укажите папку.
Файл можно открыть и двойным щелчком: 1С положит копию в рабочий каталог пользователя. Но правки в этой копии не попадут в базу, пока вы не завершите редактирование через саму 1С.
Где физически лежат файлы
Это важно для массовой выгрузки. Файлы хранятся двумя способами:
- 🗄️ в самой информационной базе — тогда их можно достать только через 1С;
- 🗂️ в томах на диске — это обычная папка на сервере, указанная в настройках.
Режим хранения задаётся в Администрирование → Общие настройки, в группе настроек работы с файлами. Там же список «Тома хранения файлов» с путями.
Даже если файлы лежат в томах, копировать папку тома вручную бесполезно: имена файлов там служебные, без исходных названий и расширений. Правильные имена знает только 1С.
Стандартные обработки и выгрузка данных базы
Когда нужно вынести не документ, а данные, используют инструменты администратора.
| Инструмент | Что получится | Для чего |
|---|---|---|
Конфигуратор: Администрирование → Выгрузить информационную базу | Файл .dt | Полная копия базы, перенос |
Конфигуратор: Конфигурация → Сохранить конфигурацию в файл | Файл .cf | Копия конфигурации без данных |
| Обработка «Выгрузка и загрузка данных XML» | Файл .xml | Перенос выбранных объектов в базу той же конфигурации |
| «Универсальный обмен данными в формате XML» | Файл .xml | Перенос между разными конфигурациями по правилам |
Выгрузка в .dt требует монопольного доступа к базе — заранее попросите всех пользователей выйти.
Обработки XML — внешние (.epf). Их открывают через ☰ → Файл → Открыть или подключают в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.
Выгрузка платёжек для банка
В БП 3.0 платёжные поручения выгружаются в формат клиент-банка: Банк и касса → Платёжные поручения, выделить документы и выбрать команду отправки в банк. Получится текстовый файл обмена, по умолчанию 1c_to_kl.txt. Путь к нему задаётся в настройках обмена с банком для конкретного счёта.
Программная выгрузка: внешние источники данных, ADO и запись файлов кодом
Сохранение табличного документа кодом
Самый частый приём программиста — сформировать табличный документ и записать его методом Записать:
ТабДок = Новый ТабличныйДокумент;
// ... заполнение макета ...
ТабДок.Записать("D:\Выгрузка\Остатки.xlsx", ТипФайлаТабличногоДокумента.XLSX);
Путь в коде, выполняемом на сервере, — это путь на компьютере сервера 1С, а не на ПК пользователя. В клиент-серверной базе файл окажется на сервере, и права нужны у пользователя, от имени которого работает служба (по умолчанию USR1CV8).
Выгрузка присоединённого файла кодом
В конфигурациях на БСП двоичные данные вложения отдаёт программный интерфейс подсистемы работы с файлами:
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);
ДвоичныеДанные.Записать("D:\Выгрузка\" + ПрисоединенныйФайл.Наименование
+ "." + ПрисоединенныйФайл.Расширение);
Так обходят служебные имена в томах: имя и расширение берутся из реквизитов файла.
Внешние источники данных и ADO
Объект метаданных «Внешние источники данных» подключает таблицы другой СУБД через ODBC. Его чаще используют для чтения чужих таблиц. Для записи в сторонние базы на практике обычно берут ADO через Новый COMОбъект("ADODB.Connection") — это работает только под Windows.
Если выгрузка идёт в другую систему регулярно, а не разово, удобнее отдавать данные через HTTP-сервис или файл обмена, чем писать напрямую в чужую базу.
Передача файлов по FTP и HTTP
Отправка на FTP
В платформе есть объект FTPСоединение. Минимальный пример:
Соединение = Новый FTPСоединение("ftp.example.ru", 21, "user", "password",
, Истина); // Истина — пассивный режим
Соединение.Записать("D:\Выгрузка\Остатки.xlsx", "/upload/Остатки.xlsx");
Пассивный режим включайте почти всегда: без него соединение через NAT и межсетевые экраны обрывается на передаче данных.
Отправка по HTTP
Для веб-сервисов и сайтов используют HTTPСоединение и HTTPЗапрос:
Соединение = Новый HTTPСоединение("api.example.ru", 443, , , ,
30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/upload");
Запрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные("D:\Выгрузка\Остатки.xlsx"));
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния <> 200 Тогда
ВызватьИсключение "Сервер вернул код " + Формат(Ответ.КодСостояния, "ЧГ=0");
КонецЕсли;
Обратная схема — HTTP-сервис в самой 1С. Тогда внешняя система сама забирает файл по адресу публикации базы на веб-сервере. Это требует публикации базы и правки конфигурации или расширения.
Логины и пароли FTP не храните в тексте обработки. Вынесите их в константу или безопасное хранилище — иначе их увидит любой, кто откроет .epf.
Автоматическая выгрузка по расписанию
Ручная выгрузка каждый вечер — первое, что хочется автоматизировать. Рабочих вариантов три.
1. Дополнительная обработка с расписанием (без правки конфигурации)
В конфигурациях на БСП внешнюю обработку можно зарегистрировать как дополнительную и задать ей расписание.
- Обработка должна содержать функцию
СведенияОВнешнейОбработке()и команду с типом использования «Вызов серверного метода». - Добавьте её в
Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. - В карточке на вкладке команд настройте расписание для этой команды.
Конфигурация остаётся на поддержке — это главный плюс.
2. Регламентное задание в расширении
Программист добавляет регламентное задание в расширение конфигурации
. Расписание меняется в Администрирование → Обслуживание → Регламентные и фоновые задания.
В файловой базе регламентные задания выполняются, только пока работает хотя бы один сеанс или база опубликована на веб-сервере. Если ночью все выходят, выгрузка не запустится.
3. Планировщик Windows и параметр /Execute
Для файловой базы надёжнее запуск из планировщика заданий Windows:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Buh" /N "Выгрузка" /P "пароль" /Execute "D:\Scripts\Vygruzka.epf" /DisableStartupMessages
Обработка выполняет выгрузку при открытии формы и в конце закрывает сеанс командой ЗавершитьРаботуСистемы(Ложь). Для этого заведите отдельного пользователя 1С с минимальными правами.
Ошибки при выгрузке файлов из 1С и как их исправить
Частые ошибки и как их избежать
- ❌ Числа в Excel стали текстом. В отчёте стоит формат с пробелами-разделителями. После выгрузки примените в Excel «Текст по столбцам» или выгружайте в
.mxlи переоткрывайте. - ❌ Перезапись старого файла. Обработка пишет каждый день в один и тот же
Остатки.xlsx. Добавляйте дату в имя:Формат(ТекущаяДата(), "ДФ=yyyyMMdd"). - ❌ Выгрузка под администратором. Регулярное задание с полными правами — риск. Создайте отдельного пользователя только с нужными правами чтения.