Выгрузка документов из 1С:Предприятие — одна из самых востребованных операций как для бухгалтеров, так и для специалистов по логистике или автоматизации. Без этого невозможно обойтись при миграции данных, подготовке отчётности для проверяющих органов или интеграции с другими системами. Однако универсального решения здесь нет: методы выгрузки зависят от версии платформы, конфигурации (1С:Бухгалтерия, 1С:УТ, 1С:ЗУП), типа документов и даже прав доступа пользователя.

В этой статье мы разберём все актуальные способы — от ручной выгрузки через интерфейс до автоматизированных скриптов на встроенном языке. Особое внимание уделим форматам файлов (Excel, XML, PDF, JSON), нюансам выгрузки конкретных типов документов (счета, накладные, акты) и типичным ошибкам, которые тормозят процесс. Если вы ищете способ перенести данные в другую программу, подготовить архив для налоговой или просто сохранить копию — здесь найдёте пошаговые инструкции с примерами.

1. Ручная выгрузка документов через интерфейс 1С

Самый простой способ, который не требует знаний программирования — использование встроенных инструментов 1С:Предприятие. Он подходит для разовых операций, когда нужно выгрузить небольшое количество документов (например, пачку счетов-фактур за месяц). Основные форматы для ручной выгрузки: Excel (для дальнейшей обработки), PDF (для печати и архивации) и XML (для обмена с другими системами).

Чтобы выгрузить документ в Excel:

  • 📄 Откройте нужный документ (например, Реализация товаров и услуг или Счёт-фактура выданный) в режиме просмотра.
  • 📥 Нажмите кнопку Ещё → Выгрузить → В табличный документ (Excel).
  • 💾 Укажите путь для сохранения файла и подтвердите экспорт. В некоторых конфигурациях (например, 1С:БП 3.0) может потребоваться выбрать шаблон выгрузки.

Для выгрузки в PDF алгоритм аналогичен, но вместо В табличный документ выбирайте В файл (PDF). Этот формат удобен для отправки контрагентам или хранения в архиве, так как сохраняет внешний вид документа, включая логотип и подписи.

💡

Если в выгруженном Excel-файле даты отображаются как числа (например, 44197 вместо 01.01.2021), откройте столбец с датами, выделите его, затем в Excel выберите Формат ячеек → Дата и укажите нужный формат.

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

Когда нужно выгрузить не один документ, а целую группу (например, все счета за квартал или накладные по конкретному контрагенту), ручной метод становится неэффективным. В этом случае используют стандартные обработки, которые идут в комплекте с большинством конфигураций :

  • 🔄 Универсальный обмен данными — подходит для выгрузки в форматы XML и JSON, часто используется для интеграции с другими системами (например, Диадок или Контур.Диадок).
  • 📊 Выгрузка в Excel — оптимизирована для создания таблиц с данными, поддерживает настройку столбцов и фильтров.
  • 📑 Печать документов — позволяет пакетно сохранить документы в PDF или отправить на принтер.

Пример пакетной выгрузки через Универсальный обмен данными:

  1. Перейдите в раздел Администрирование → Обмен данными → Универсальный обмен данными.
  2. Создайте новый обмен, укажите тип данных (например, Документы.РеализацияТоваровУслуг).
  3. Настройте фильтр (период, контрагент, организация) и выберите формат выгрузки (XML или JSON).
  4. Запустите выгрузку и сохраните файл в указанную папку.

Обратите внимание: в некоторых конфигурациях (например, 1С:УТ 11) обработка Универсальный обмен данными может называться Обмен с сайтом или Выгрузка данных. Точное название зависит от версии и модификации программы.

📊 Какой формат выгрузки вы используете чаще всего?
Excel
PDF
XML
JSON
Другой

3. Автоматизированная выгрузка через встроенный язык 1С (для программистов)

Если вам нужно регулярно выгружать документы по расписанию или в нестандартном формате, ручные методы не подойдут. В этом случае пишут скрипты на встроенном языке . Этот способ требует знаний программирования, но даёт максимальную гибкость: можно выгружать данные в любой формат, применять сложные фильтры и даже отправлять файлы по email или FTP автоматически.

Пример кода для выгрузки документов РеализацияТоваровУслуг в Excel:

Процедура ВыгрузитьВExcel()

// Создаём объект Excel

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.Workbooks.Add();

Лист = Книга.Worksheets(1);

// Задаём заголовки

Лист.Cells(1, 1).Value = "Номер";

Лист.Cells(1, 2).Value = "Дата";

Лист.Cells(1, 3).Value = "Контрагент";

// Выгружаем данные

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| РеализацияТоваровУслуг.Номер КАК Номер,

| РеализацияТоваровУслуг.Дата КАК Дата,

| РеализацияТоваровУслуг.Контрагент КАК Контрагент

|ИЗ

| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Строка = 2;

Пока Выборка.Следующий() Цикл

Лист.Cells(Строка, 1).Value = Выборка.Номер;

Лист.Cells(Строка, 2).Value = Выборка.Дата;

Лист.Cells(Строка, 3).Value = Выборка.Контрагент.Наименование;

Строка = Строка + 1;

КонецЦикла;

// Сохраняем файл

ПутьКФайлу = "C:\Выгрузка\Реализация.xlsx";

Книга.SaveAs(ПутьКФайлу);

Excel.Quit();

КонецПроцедуры

Для выгрузки в XML или JSON используют объекты ЗаписьXML и ЗаписьJSON. Пример выгрузки в XML:

Процедура ВыгрузитьВXML()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| РеализацияТоваровУслуг.Ссылка КАК Ссылка

|ИЗ

| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\Выгрузка\Реализация.xml");

ЗаписьXML.ЗаписатьОбъявлениеXML();

ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");

Пока Выборка.Следующий() Цикл

Док = Выборка.Ссылка.ПолучитьОбъект();

ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");

ЗаписьXML.ЗаписатьАтрибут("Номер", Док.Номер);

ЗаписьXML.ЗаписатьАтрибут("Дата", Док.Дата);

ЗаписьXML.ЗаписатьКонецЭлемента(); // Документ

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Документы

ЗаписьXML.Закрыть();

КонецПроцедуры

Как автоматизировать отправку выгруженных файлов по email?

Для этого используйте объект Почта или ИнтернетПочта в 1С. Пример кода для отправки файла на email:

Почта = Новый Почта;

Сообщение = Почта.СоздатьСообщение();

Сообщение.Текст = "Выгрузка документов за " + ТекущаяДата();

Сообщение.Тема = "Выгрузка из 1С: Реализация за " + ТекущаяДата();

Сообщение.Получатели.Добавить("client@example.com");

Сообщение.Вложения.Добавить("C:\Выгрузка\Реализация.xlsx");

Почта.Отправить(Сообщение);

4. Выгрузка документов в формате XML для обмена с контрагентами и госорганами

Формат XML — стандарт для обмена данными между системами. Его используют для отправки документов в ФНС (например, счета-фактуры в формате 5.01), обмена с Диадок, СБИС или Контур.Диадок, а также для интеграции с сайтами или CRM. В есть встроенные механизмы для генерации XML по утверждённым схемам (XSD).

Чтобы выгрузить счёт-фактуру в XML для ФНС:

  1. Откройте документ Счёт-фактура выданный.
  2. Нажмите Ещё → Выгрузить → В файл обмена (XML).
  3. Выберите версию формата (например, Формат 5.01 для ФНС).
  4. Сохраните файл с расширением .xml.

Для пакетной выгрузки нескольких документов используйте обработку Выгрузка данных в XML (доступна в конфигурациях 1С:БП 3.0, 1С:УТ 11 и др.). Важно: перед выгрузкой проверьте, что в настройках указан правильный формат обмена (например, для Диадок и ФНС они отличаются!).

☑️ Подготовка XML для ФНС

Выполнено: 0 / 4
Формат XML Назначение Пример использования
Формат 5.01 Счета-фактуры для ФНС Отчётность по НДС, проверка контрагентов
УПД (Универсальный передаточный документ) Обмен с контрагентами Отправка накладных и актов через Диадок
CommerceML Обмен с интернет-магазинами Выгрузка каталога товаров на сайт
ОФД (Оператор фискальных данных) Фискальные документы Отправка чеков в ФНС через ОФД
💡

Для обмена с госорганами (ФНС, ПФР) используйте только актуальные версии форматов XML. Устаревшие схемы (например, 5.01 вместо 5.02) могут привести к отказу в приёме документов.

5. Выгрузка в PDF для архивации и печати

Формат PDF удобен для долговременного хранения документов, так как сохраняет их внешний вид, включая шрифты, логотипы и подписи. В есть несколько способов выгрузки в PDF:

  • 📄 Печать в PDF — через виртуальный принтер (например, PDF24 или Dopdf). Подходит для любых документов, но требует установки дополнительного ПО.
  • 🖨️ Встроенная выгрузка — в новых версиях 1С:Предприятие 8.3 есть функция СохранитьВФайлPDF(), которая работает без сторонних программ.
  • 📑 Пакетная печать — обработка Печать документов позволяет сохранить несколько документов в PDF за один раз.

Пример кода для выгрузки документа в PDF без сторонних программ (работает в 1С 8.3.10+):

Процедура ВыгрузитьВPDF(СсылкаНаДокумент)

Макет = Документ.ПолучитьМакет("ПечатнаяФорма");

ТабДок = Новый ТабличныйДокумент;

ТабДок.Очистить();

Макет.Вывести(ТабДок, Документ);

// Сохраняем в PDF

ПутьКФайлу = "C:\Выгрузка\Документ_" + Документ.Номер + ".pdf";

ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);

КонецПроцедуры

Если в вашей версии нет встроенной поддержки PDF, используйте виртуальный принтер. Для этого:

  1. Установите программу-принтер (например, Dopdf или PDF24).
  2. Откройте документ в и нажмите Печать.
  3. В диалоговом окне выберите виртуальный принтер (например, doPDF v11).
  4. Укажите путь для сохранения файла и подтвердите печать.
💡

Если при выгрузке в PDF пропадают кириллические символы, проверьте настройки шрифтов в макете печатной формы. Используйте шрифты с поддержкой Unicode (например, Arial или Times New Roman).

6. Выгрузка в JSON для интеграции с веб-сервисами

Формат JSON всё чаще используется для интеграции с веб-сервисами, мобильными приложениями или API банков. Он легче XML и удобнее для обработки в JavaScript или Python. В 1С 8.3.14+ появилась встроенная поддержка JSON через объекты ЗаписьJSON и ЧтениеJSON.

Пример выгрузки документа в JSON:

Процедура ВыгрузитьВJSON()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ ПЕРВЫЕ 10

| РеализацияТоваровУслуг.Ссылка КАК Ссылка

|ИЗ

| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.ОткрытьФайл("C:\Выгрузка\Реализация.json");

ЗаписьJSON.ЗаписатьНачалоОбъекта();

Пока Выборка.Следующий() Цикл

Док = Выборка.Ссылка.ПолучитьОбъект();

ЗаписьJSON.ЗаписатьКлюч("Номер");

ЗаписьJSON.ЗаписатьЗначение(Док.Номер);

ЗаписьJSON.ЗаписатьКлюч("Дата");

ЗаписьJSON.ЗаписатьЗначение(Док.Дата);

ЗаписьJSON.ЗаписатьКлюч("Контрагент");

ЗаписьJSON.ЗаписатьЗначение(Док.Контрагент.Наименование);

КонецЦикла;

ЗаписьJSON.ЗаписатьКонецОбъекта();

ЗаписьJSON.Закрыть();

КонецПроцедуры

Для обмена с веб-сервисами часто используют REST API. Пример отправки JSON на сервер:

Процедура ОтправитьJSONНаСервер()

JSONСтрока = Новый Структура();

JSONСтрока.Вставить("Номер", "РТ-00001");

JSONСтрока.Вставить("Дата", ТекущаяДата());

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписьJSON.ЗаписатьJSON(JSONСтрока);

ТекстJSON = ЗаписьJSON.Закрыть();

HTTPСоединение = Новый HTTPСоединение("api.example.com", 80);

HTTPЗапрос = Новый HTTPЗапрос("/upload");

HTTPЗапрос.УстановитьТекст(ТекстJSON);

HTTPЗапрос.УстановитьЗаголовок("Content-Type", "application/json");

Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Если Ответ.КодСостояния = 200 Тогда

Сообщить("Данные успешно отправлены!");

Иначе

Сообщить("Ошибка: " + Ответ.ПолучитьТекст());

КонецЕсли;

КонецПроцедуры

💡

JSON удобнее XML для работы с современными API, но не подходит для обмена с госорганами (ФНС требует строго XML по схеме 5.01/5.02).

7. Типичные ошибки при выгрузке и как их избежать

Даже при использовании стандартных инструментов пользователи сталкиваются с ошибками. Вот самые распространённые проблемы и способы их решения:

⚠️ Внимание: Если при выгрузке в Excel появляется сообщение "Превышен лимит строк", разбейте выгрузку на части (например, по месяцам) или используйте формат CSV, который не имеет ограничений на количество строк.
  • 🚫 Ошибка "Недостаточно прав" — проверьте, что у вашего пользователя в есть права на чтение документов и выгрузку данных. Настройка прав выполняется в Администрирование → Пользователи.
  • 🚫 Пустой файл после выгрузки — убедитесь, что в фильтрах выгрузки указан корректный период и организация. Иногда проблема решается перезапуском .
  • 🚫 Неверный формат даты в Excel — откройте файл в Excel, выделите столбец с датами и примените формат Дата.
  • 🚫 Ошибка при выгрузке в XML: "Несоответствие схеме" — проверьте версию формата (например, для ФНС актуальна схема 5.02, а не 5.01). Обновите конфигурацию , если используете устаревшую версию.

Если выгружаемые данные содержат специальные символы (например, кавычки или амперсанды), в XML они должны быть экранированы. Вручную это делать неудобно, поэтому используйте встроенные методы:

Функция ЭкранироватьXML(Строка)

Возврат СтроковыеФункцииКлиентСервер.ЭкранироватьСтроку(Строка, СтроковыеФункцииКлиентСервер.РежимЭкранированияСтроки.XML);

КонецФункции

⚠️ Внимание: При выгрузке в JSON кириллические символы автоматически кодируются в UTF-8, но некоторые старые системы могут не поддерживать эту кодировку. В таком случае используйте Base64 для бинарных данных.

8. Автоматизация выгрузки: расписания и внешние обработки

Если выгрузка документов нужна регулярно (например, ежедневно или по окончании месяца), её можно автоматизировать. В для этого есть два основных инструмента:

  • 🕒 Регламентные задания — позволяют запускать выгрузку по расписанию (например, каждый день в 23:00). Настройка выполняется в Администрирование → Регламентные задания.
  • 🖥️ Внешние обработки — скрипты, которые можно запускать извне (например, по команде из Windows Task Scheduler или cron в Linux).

Пример настройки регламентного задания для выгрузки документов в Excel:

  1. Перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание, укажите тип Выполнение кода.
  3. В поле Код вставьте процедуру выгрузки (см. раздел 3).
  4. Установите расписание (например, Ежедневно в 23:00).
  5. Сохраните и активируйте задание.

Для запуска выгрузки извне (например, по расписанию в Windows) используйте командную строку:

"C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" DESIGNER /F"C:\Bases\Trade" /NИмяПользователя /PПароль /Execute"C:\Scripts\Выгрузка.epf"

Где:

  • DESIGNER — режим запуска.
  • /F — путь к базе.
  • /N и /P — имя и пароль пользователя.
  • /Execute — путь к внешней обработке (.epf).
💡

Для автоматизации выгрузки на сервере 1С:Предприятие используйте ragent — агент регламентных заданий. Он позволяет запускать задачи без открытия сеанса пользователя.

FAQ: Частые вопросы по выгрузке документов из 1С

Можно ли выгрузить документы из 1С в Word?

Прямой выгрузки в Word в нет, но есть обходные пути:

  1. Выгрузите данные в Excel, затем скопируйте их в Word.
  2. Используйте макет печатной формы: сохраните документ в PDF, затем конвертируйте PDF в Word с помощью Adobe Acrobat или онлайн-сервисов.
  3. Напишите скрипт на встроенном языке, который будет генерировать .docx через COM-объект Word.Application.
Как выгрузить документы из 1С в Google Таблицы?

Для выгрузки в Google Sheets:

  1. Выгрузите данные в Excel или CSV.
  2. Откройте Google Диск, нажмите Создать → Google Таблицы.
  3. В таблице выберите Файл → Импорт → Загрузить и загрузите сохранённый файл.

Для автоматизации используйте Google Apps Script с 1С:Предприятие через REST API.

Почему при выгрузке в XML появляется ошибка "Несоответствие схеме"?

Эта ошибка означает, что структура вашего XML не соответствует требуемой схеме (XSD). Чтобы исправить:

  • Проверьте версию формата (например, для ФНС актуальна схема 5.02, а не 5.01).
  • Обновите конфигурацию до последней версии.
  • Сравните ваш XML с эталонным файлом (можно скачать на сайте налог.ру).
  • Используйте обработку ПроверкаXML (есть в стандартных поставках 1С:БП).
Как выгрузить документы из 1С:ЗУП (зарплатные ведомости, табеля)?

В 1С:Зарплата и Управление Персоналом для выгрузки используйте:

  • Для Excel: Зарплата → Отчёты → Универсальный отчёт (настройте поля и экспортируйте).
  • Для PDF: откройте ведомость, нажмите Печать → Сохранить как PDF.
  • Для обмена с банками: Зарплата → Выплата зарплаты → Выгрузка в банк (форматы для Сбербанк Бизнес Онлайн, Тинькофф и др.).
Можно ли выгрузить документы из 1С в базу данных (MySQL, PostgreSQL)?

Да, для этого:

  1. Напишите скрипт на встроенном языке, который будет подключаться к базе через ODBC или ADO.
  2. Используйте внешние обработки, например, 1C:Enterprise Data Exchange.
  3. Настройте ETL-процесс (например, через Microsoft Power Query или Talend).

Пример подключения к MySQL:

Соединение = Новый COMОбъект("ADODB.Connection");

Соединение.Open("DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=test;UID=user;PWD=password");

ЗапросSQL = "INSERT INTO documents (number, date) VALUES ('123', '2023-01-01')";

Соединение.Execute(ЗапросSQL);