Выгрузка документа из 1С 8.3: от PDF-файла до XML и обмена с другой базой

· 11 мин

Содержание

Чтобы выгрузить из 1С документ в файл, откройте его, нажмите Печать, выберите нужную форму и в окне печати нажмите Сохранить (значок дискеты): программа предложит PDF, Excel, Word и другие форматы. Если нужен не «бумажный» вид, а данные документа для другой программы или другой базы 1С, используйте обмен данными, обработку выгрузки в XML или небольшой код с выгрузкой в XML, JSON или CSV.

Способ зависит от того, кто получит файл. Человеку — контрагенту, аудитору, руководителю — нужна печатная форма. Программе — банку, сайту, второй базе 1С — нужен структурированный файл. Ниже оба пути с точными шагами для 1С 8.3 в интерфейсе «Такси»; всё описанное работает в БП 3.0, УТ 11, ЗУП 3.1 и других конфигурациях на БСП, если не оговорено иное.

Какой способ выгрузки документа выбрать

Сначала определите задачу, потом способ. Таблица экономит лишнюю работу: часто человек полдня ищет обработку XML, хотя ему нужен был PDF счёта.

ЗадачаСпособФорматНужны права администратора
Отправить документ контрагентуПечатная форма → СохранитьPDF, DOCXНет
Отдать таблицу товаров на анализЕщё → Вывести список…XLSXНет
Перенести документы в другую базу 1ССинхронизация данных или обработка XMLXMLДа
Передать платёжки в банкОбмен с банкомTXT (1CClientBankExchange)Нет
Отдать данные сайту или сторонней системеКод или внешняя обработкаXML, JSON, CSVДа
Выгружать регулярно без участия человекаРегламентное задание или расписание обменаЛюбойДа

Если файл пойдёт в другую базу 1С, не выгружайте печатную форму в Excel и не загружайте её обратно «по колонкам». Ссылки на номенклатуру и контрагентов потеряются, и придётся сопоставлять всё вручную.

Сохранение печатной формы документа в PDF, Excel или Word

Это самый частый случай. Подходит для актов, счетов, накладных, УПД, авансовых отчётов, расчётных листков — для всего, что открывается по кнопке Печать.

Пошагово

  1. Откройте документ или выделите его в списке. Можно выделить сразу несколько строк с зажатым Ctrl.
  2. Нажмите Печать и выберите печатную форму, например «Счёт на оплату» или «УПД».
  3. В открывшемся окне печати проверьте содержимое и количество экземпляров.
  4. Нажмите Сохранить (значок дискеты в командной панели).
  5. Отметьте формат: «Adobe PDF», «Лист Microsoft Excel», «Документ Microsoft Word» и т. д.
  6. Выберите, куда сохранить: на компьютер (в папку) или «Присоединить к документу» — тогда файл ляжет в присоединённые файлы самого документа.
  7. Нажмите Сохранить.

Если выделили пять документов, программа создаст пять файлов — по одному на документ и печатную форму. Отдельной настройкой можно упаковать их в один ZIP-архив: флажок архива находится в том же окне сохранения.

Какой формат выбирать

  • 📄 PDF — для отправки контрагенту. Вёрстка не съедет, текст нельзя случайно поправить.
  • 📊 XLSX — если получатель будет считать или фильтровать строки. Объединённые ячейки печатной формы сохраняются, поэтому сортировать такой файл неудобно; для анализа лучше способ из следующего раздела.
  • 📝 DOCX — если документ нужно дописать вручную: договор, доверенность, письмо.
  • 🗂 MXL — родной формат табличного документа 1С. Открывается только в 1С или в бесплатной программе «1С:Предприятие — Работа с файлами».

Кнопка Отправить в том же окне сразу прикладывает файл к письму, если в программе настроена учётная запись электронной почты.

Выгрузка списка документов и табличной части в Excel

Когда нужна не печатная форма, а «сырые» строки — список документов за квартал или товары из одной накладной, — работает встроенная команда платформы.

Список документов

  1. Откройте журнал, например Продажи → Реализация (акты, накладные, УПД).
  2. Настройте отбор: период, контрагент, организация.
  3. Нажмите Ещё → Вывести список….
  4. Отметьте нужные колонки и включите «Только выделенные», если нужны не все строки.
  5. Нажмите ОК — откроется табличный документ.
  6. Сохраните его: главное меню (значок с тремя полосками) → Файл → Сохранить как, тип «Лист Excel 2007-…» (*.xlsx).

Табличная часть одного документа

У каждой табличной части документа (вкладка «Товары», «Услуги», «Основные средства ») тоже есть меню Ещё. В нём та же команда Вывести список…. Она выгружает строки с колонками номенклатуры, количества, цены и суммы — без шапки печатной формы, удобно для сводных таблиц.

Если колонки нет в списке выбора, её нет и в форме. Сначала добавьте поле через Ещё → Изменить форму…, потом выводите список.

Внешние обработки для выгрузки документов

Типовых средств не хватает, когда нужен свой формат: шаблон склада, выгрузка для маркетплейса, реестр для головной компании. Тогда используют внешнюю обработку — файл *.epf.

Как подключить обработку в БП 3.0, УТ 11, ЗУП 3.1

  1. Включите использование: Администрирование → Печатные формы, отчеты и обработки, флажок «Дополнительные отчеты и обработки».
  2. Перейдите по ссылке «Дополнительные отчеты и обработки» и нажмите Добавить из файла….
  3. Подтвердите предупреждение безопасности и выберите файл .epf.
  4. В карточке укажите разделы, где появится команда, и пользователей, которым она доступна.
  5. Нажмите Записать и закрыть.

Если обработка разовая, её можно открыть без регистрации: Файл → Открыть в главном меню. Для этого у пользователя должно быть право «Интерактивное открытие внешних обработок» — обычно оно есть только у администратора.

Универсальная обработка «Выгрузка и загрузка данных XML»

Это классический инструмент специалиста: выгружает выбранные документы вместе со всеми связанными справочниками в XML и загружает их в базу с той же конфигурацией. Обработку берут с диска ИТС, версия для 8.3 так и называется — с «83» в имени файла.

Порядок работы:

  1. Откройте обработку через Файл → Открыть.
  2. На вкладке выгрузки отметьте вид документа, задайте период и отбор.
  3. Укажите имя файла и нажмите Выгрузить данные.
  4. В базе-получателе откройте ту же обработку, перейдите на вкладку загрузки и выберите файл.

Обработка работает только между базами одинаковой конфигурации и близкого релиза. Перенос из БП 3.0 в УТ 11 ею не делают — для этого есть обмен с правилами конвертации.

Загрузка XML пишет данные прямо в базу и может перезаписать объекты с теми же идентификаторами. Перед загрузкой сделайте резервную копию базы-получателя.

Выгрузка документов через механизмы обмена данными

Если документы нужно регулярно переносить между базами (УТ → БП, ЗУП → БП, Розница → УТ), правильный путь — синхронизация. Она сама отслеживает, что изменилось, и не создаёт дублей.

Синхронизация данных между типовыми конфигурациями

  1. Откройте Администрирование → Синхронизация данных.
  2. Включите флажок «Синхронизация данных» и задайте префикс информационной базы (две буквы, у каждой базы свой).
  3. Нажмите Настроить синхронизацию данных и выберите программу-корреспондента из списка.
  4. Укажите способ связи: прямое подключение к базе, через сетевой каталог, FTP или интернет.
  5. Задайте правила отбора: с какой даты выгружать документы, по каким организациям.
  6. Выполните первую синхронизацию и проверьте результат в базе-получателе.

Типовые обмены между свежими релизами работают через формат 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С с минимальными правами.

Ошибки при выгрузке документа и что с ними делать

Большинство сбоев при выгрузке связаны с правами, кодировкой и связанными объектами. Выберите симптом:

Диагностика: выберите симптом

Частые вопросы

Можно ли выгрузить сразу 100 документов в PDF одним действием?
Да. Выделите документы в списке, нажмите «Печать», выберите форму и в окне печати — «Сохранить». Будет по файлу на документ; включите упаковку в архив, чтобы получить один ZIP.
Сохранится ли подпись и печать в PDF?
Да, если в карточке организации загружены факсимиле подписи и печати и в форме печати включён вывод подписей. Юридически это не электронная подпись: для ЭДО документ подписывают КЭП.
Чем XML из обмена отличается от XML для ЭДО?
XML обмена описывает объекты 1С и понятен только другой базе 1С. XML для ЭДО построен по формату ФНС и понятен любому оператору и налоговой.
Можно ли выгрузить документ из 1С в Google Таблицы?
Напрямую — нет. Сохраните список или табличную часть в XLSX и загрузите файл в Google Диск, либо настройте выгрузку CSV по расписанию и импорт на стороне таблицы.
Выгружается ли из 1С файл присоединённого скана?
Да. Откройте присоединённые файлы документа (значок скрепки), выделите файл и сохраните его на компьютер командой сохранения в карточке файла.