Выгрузка документа из 1С 8.3: от PDF-файла до XML и обмена с другой базой
Содержание
Чтобы выгрузить из 1С документ в файл, откройте его, нажмите Печать, выберите нужную форму и в окне печати нажмите Сохранить (значок дискеты): программа предложит PDF, Excel, Word и другие форматы. Если нужен не «бумажный» вид, а данные документа для другой программы или другой базы 1С, используйте обмен данными, обработку выгрузки в XML или небольшой код с выгрузкой в XML, JSON или CSV.
Способ зависит от того, кто получит файл. Человеку — контрагенту, аудитору, руководителю — нужна печатная форма. Программе — банку, сайту, второй базе 1С — нужен структурированный файл. Ниже оба пути с точными шагами для 1С 8.3 в интерфейсе «Такси»; всё описанное работает в БП 3.0, УТ 11, ЗУП 3.1 и других конфигурациях на БСП, если не оговорено иное.
Какой способ выгрузки документа выбрать
Сначала определите задачу, потом способ. Таблица экономит лишнюю работу: часто человек полдня ищет обработку XML, хотя ему нужен был PDF счёта.
| Задача | Способ | Формат | Нужны права администратора |
|---|---|---|---|
| Отправить документ контрагенту | Печатная форма → Сохранить | PDF, DOCX | Нет |
| Отдать таблицу товаров на анализ | Ещё → Вывести список… | XLSX | Нет |
| Перенести документы в другую базу 1С | Синхронизация данных или обработка XML | XML | Да |
| Передать платёжки в банк | Обмен с банком | TXT (1CClientBankExchange) | Нет |
| Отдать данные сайту или сторонней системе | Код или внешняя обработка | XML, JSON, CSV | Да |
| Выгружать регулярно без участия человека | Регламентное задание или расписание обмена | Любой | Да |
Если файл пойдёт в другую базу 1С, не выгружайте печатную форму в Excel и не загружайте её обратно «по колонкам». Ссылки на номенклатуру и контрагентов потеряются, и придётся сопоставлять всё вручную.
Сохранение печатной формы документа в PDF, Excel или Word
Это самый частый случай. Подходит для актов, счетов, накладных, УПД, авансовых отчётов, расчётных листков — для всего, что открывается по кнопке Печать.
Пошагово
- Откройте документ или выделите его в списке. Можно выделить сразу несколько строк с зажатым
Ctrl. - Нажмите
Печатьи выберите печатную форму, например «Счёт на оплату» или «УПД». - В открывшемся окне печати проверьте содержимое и количество экземпляров.
- Нажмите
Сохранить(значок дискеты в командной панели). - Отметьте формат: «Adobe PDF», «Лист Microsoft Excel», «Документ Microsoft Word» и т. д.
- Выберите, куда сохранить: на компьютер (в папку) или «Присоединить к документу» — тогда файл ляжет в присоединённые файлы самого документа.
- Нажмите
Сохранить.
Если выделили пять документов, программа создаст пять файлов — по одному на документ и печатную форму. Отдельной настройкой можно упаковать их в один ZIP-архив: флажок архива находится в том же окне сохранения.
Какой формат выбирать
- 📄 PDF — для отправки контрагенту. Вёрстка не съедет, текст нельзя случайно поправить.
- 📊 XLSX — если получатель будет считать или фильтровать строки. Объединённые ячейки печатной формы сохраняются, поэтому сортировать такой файл неудобно; для анализа лучше способ из следующего раздела.
- 📝 DOCX — если документ нужно дописать вручную: договор, доверенность, письмо.
- 🗂 MXL — родной формат табличного документа 1С. Открывается только в 1С или в бесплатной программе «1С:Предприятие — Работа с файлами».
Кнопка Отправить в том же окне сразу прикладывает файл к письму, если в программе настроена учётная запись электронной почты.
Выгрузка списка документов и табличной части в Excel
Когда нужна не печатная форма, а «сырые» строки — список документов за квартал или товары из одной накладной, — работает встроенная команда платформы.
Список документов
- Откройте журнал, например
Продажи → Реализация (акты, накладные, УПД). - Настройте отбор: период, контрагент, организация.
- Нажмите
Ещё → Вывести список…. - Отметьте нужные колонки и включите «Только выделенные», если нужны не все строки.
- Нажмите
ОК— откроется табличный документ. - Сохраните его: главное меню (значок с тремя полосками) →
Файл → Сохранить как, тип «Лист Excel 2007-…» (*.xlsx).
Табличная часть одного документа
У каждой табличной части документа (вкладка «Товары», «Услуги», «Основные средства
») тоже есть меню Ещё. В нём та же команда Вывести список…. Она выгружает строки с колонками номенклатуры, количества, цены и суммы — без шапки печатной формы, удобно для сводных таблиц.
Если колонки нет в списке выбора, её нет и в форме. Сначала добавьте поле через Ещё → Изменить форму…, потом выводите список.
Внешние обработки для выгрузки документов
Типовых средств не хватает, когда нужен свой формат: шаблон склада, выгрузка для маркетплейса, реестр для головной компании. Тогда используют внешнюю обработку
— файл *.epf.
Как подключить обработку в БП 3.0, УТ 11, ЗУП 3.1
- Включите использование:
Администрирование → Печатные формы, отчеты и обработки, флажок «Дополнительные отчеты и обработки». - Перейдите по ссылке «Дополнительные отчеты и обработки» и нажмите
Добавить из файла…. - Подтвердите предупреждение безопасности и выберите файл
.epf. - В карточке укажите разделы, где появится команда, и пользователей, которым она доступна.
- Нажмите
Записать и закрыть.
Если обработка разовая, её можно открыть без регистрации: Файл → Открыть в главном меню. Для этого у пользователя должно быть право «Интерактивное открытие внешних обработок» — обычно оно есть только у администратора.
Универсальная обработка «Выгрузка и загрузка данных XML»
Это классический инструмент специалиста: выгружает выбранные документы вместе со всеми связанными справочниками в XML и загружает их в базу с той же конфигурацией. Обработку берут с диска ИТС, версия для 8.3 так и называется — с «83» в имени файла.
Порядок работы:
- Откройте обработку через
Файл → Открыть. - На вкладке выгрузки отметьте вид документа, задайте период и отбор.
- Укажите имя файла и нажмите
Выгрузить данные. - В базе-получателе откройте ту же обработку, перейдите на вкладку загрузки и выберите файл.
Обработка работает только между базами одинаковой конфигурации и близкого релиза. Перенос из БП 3.0 в УТ 11 ею не делают — для этого есть обмен с правилами конвертации.
Загрузка XML пишет данные прямо в базу и может перезаписать объекты с теми же идентификаторами. Перед загрузкой сделайте резервную копию базы-получателя.
Выгрузка документов через механизмы обмена данными
Если документы нужно регулярно переносить между базами (УТ → БП, ЗУП → БП, Розница → УТ), правильный путь — синхронизация. Она сама отслеживает, что изменилось, и не создаёт дублей.
Синхронизация данных между типовыми конфигурациями
- Откройте
Администрирование → Синхронизация данных. - Включите флажок «Синхронизация данных» и задайте префикс информационной базы (две буквы, у каждой базы свой).
- Нажмите
Настроить синхронизацию данныхи выберите программу-корреспондента из списка. - Укажите способ связи: прямое подключение к базе, через сетевой каталог, FTP или интернет.
- Задайте правила отбора: с какой даты выгружать документы, по каким организациям.
- Выполните первую синхронизацию и проверьте результат в базе-получателе.
Типовые обмены между свежими релизами работают через формат EnterpriseData — это XML-файл, который понимают обе стороны. Файл можно оставлять в сетевом каталоге: тогда базы даже не обязаны видеть друг друга напрямую.
Документы, которые выгружаются отдельным обменом
- 🏦 Платёжные поручения в банк.
Банк и касса → Платежные поручения, кнопка отправки в банк. Через «1С:ДиректБанк» платёжки уходят напрямую, без файла. Без него программа формирует текстовый файл формата 1CClientBankExchange (по умолчанию1c_to_kl.txt), который загружают в клиент-банк. - 🧾 Электронные документы
по формату ФНС. УПД, акт, счёт-фактуру из документа реализации можно выгрузить в XML для отправки через другого оператора ЭДО. Команда выгрузки находится в меню
ЭДОв командной панели документа. - 📑 Регламентированные отчёты. В форме отчёта есть команда
Выгрузить: она формирует файл по формату контролирующего органа.
Универсальный обмен с правилами конвертации
Для нетиповых пар баз (самописная конфигурация ↔ БП) используют обработку «Универсальный обмен данными в формате XML» и правила, подготовленные в конфигурации «Конвертация данных ». Правила описывают, какое поле источника переходит в какое поле получателя.
Правила — работа программиста. Без них универсальная обработка ничего не перенесёт.
Выгрузка документа в XML, JSON и CSV программно
Когда документ нужно отдать сайту, CRM или скрипту, проще всего написать несколько строк кода во внешней обработке. Ниже три проверенных шаблона. Код выполняется на сервере, поэтому путь к файлу — путь на компьютере сервера 1С (в файловой базе — на компьютере пользователя).
XML: весь документ с табличными частями
Сериализатор платформы записывает объект целиком: шапку, все табличные части, ссылки — в виде уникальных идентификаторов.
&НаСервереБезКонтекста
Процедура ВыгрузитьВXML(ДокументСсылка, ИмяФайла)
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайла, "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
СериализаторXDTO.ЗаписатьXML(Запись, ДокументСсылка.ПолучитьОбъект());
Запись.Закрыть();
КонецПроцедуры
Такой файл загружают в базу той же конфигурации методом СериализаторXDTO.ПрочитатьXML. Для сторонней системы он неудобен: вместо имени контрагента в нём идентификатор.
JSON: для веб-сервисов
С платформы 8.3.6 есть запись в JSON. Тот же сериализатор умеет писать объект в этом формате:
&НаСервереБезКонтекста
Процедура ВыгрузитьВJSON(ДокументСсылка, ИмяФайла)
Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл(ИмяФайла);
СериализаторXDTO.ЗаписатьJSON(Запись, ДокументСсылка.ПолучитьОбъект(), НазначениеТипаXML.Явное);
Запись.Закрыть();
КонецПроцедуры
Если получателю нужны «человеческие» поля, соберите структуру вручную (Номер, Дата, Контрагент — строкой) и запишите её функцией ЗаписатьJSON(Запись, Структура).
CSV: табличная часть для Excel или сайта
&НаСервереБезКонтекста
Процедура ВыгрузитьТоварыВCSV(ДокументСсылка, ИмяФайла)
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Номенклатура;Количество;Цена;Сумма");
Для Каждого Стр Из ДокументСсылка.Товары Цикл
Текст.ЗаписатьСтроку(СтрШаблон("%1;%2;%3;%4",
Стр.Номенклатура,
Формат(Стр.Количество, "ЧГ=0"),
Формат(Стр.Цена, "ЧГ=0"),
Формат(Стр.Сумма, "ЧГ=0")));
КонецЦикла;
Текст.Закрыть();
КонецПроцедуры
Кодировка ANSI (Windows-1251) выбрана намеренно: русский Excel откроет такой файл двойным щелчком без «кракозябр». Для сайта обычно нужен UTF-8 — замените на КодировкаТекста.UTF8. Разделитель «;» подходит для русской локали Excel, где запятая занята дробной частью.
Имя табличной части (Товары) смотрите в конфигураторе или в форме документа: у разных документов оно разное — «Услуги», «Материалы», «ОсновныеСредства».
Автоматическая выгрузка документов по расписанию
Ежедневную выгрузку вручную рано или поздно забудут. В 1С её можно поставить на расписание тремя способами.
Расписание синхронизации
В Администрирование → Синхронизация данных откройте настройку обмена и включите выполнение по расписанию. Задайте период: например, каждые 30 минут в рабочее время или раз в сутки ночью.
Регламентное задание дополнительной обработки
Внешнюю обработку можно написать так, чтобы её команда вызывала серверный метод. Тогда в карточке дополнительной обработки, в таблице команд, для такой команды задаётся расписание. Платформа будет запускать выгрузку сама — например, в 23:00 выгружать все документы реализации за день в папку для склада.
Проверить, что задание выполняется, можно в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания: там видны дата последнего запуска и ошибки.
Как работают задания в файловой базе
В клиент-серверной базе регламентные задания выполняет сервер 1С круглосуточно. В файловой базе отдельного сервера нет: задания выполняются, только пока открыт хотя бы один сеанс программы. Если ночью все вышли, ночная выгрузка не произойдёт.
Варианты решения для файловой базы:
- 🖥 оставить на отдельном компьютере открытый сеанс под служебным пользователем;
- ⏰ запускать 1С по расписанию Windows с параметром
/Executeи внешней обработкой, которая выгрузит данные и закроет программу; - 🔄 перейти на клиент-серверный вариант, если выгрузок много.
Пример строки для планировщика Windows:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Обмен" /P"пароль" /Execute"D:\Obrabotki\Vygruzka.epf"
Номер версии в пути замените на установленный у вас — он виден в папке C:\Program Files\1cv8.
Пароль в командной строке читается любым, у кого есть доступ к заданию планировщика. Заведите для выгрузки отдельного пользователя 1С с минимальными правами.
Ошибки при выгрузке документа и что с ними делать
Большинство сбоев при выгрузке связаны с правами, кодировкой и связанными объектами. Выберите симптом: