Выгрузка документов из 1С:Предприятие — рутинная задача, с которой регулярно сталкиваются бухгалтеры, логисты и IT-специалисты.hether вы отправляете данные в налоговую, синхронизируете склады с маркетплейсами или просто архивируете первичку, правильная выгрузка экономит часы работы. Но даже опытные пользователи иногда теряются: какой формат выбрать, как избежать ошибок при конвертации, и почему Excel «портит» суммы с копейками.
В этой статье разберём все актуальные способы выгрузки — от стандартных отчётов до программного обмена через COM-соединение. Особое внимание уделим типичным ловушкам: почему выгруженные в XML данные не читаются в другой программе, как сохранить иерархию справочников при переносе, и что делать, если 1С «зависает» при экспорте больших объёмов. Для программистов приведём примеры кода на встроенном языке, а для бухгалтеров — пошаговые инструкции без технических деталей.
1. Стандартные способы выгрузки: что можно сделать без программирования
Большинство задач по выгрузке документов решаются штатными средствами 1С — без привлечения разработчиков. Рассмотрим основные варианты, доступные в типовой конфигурации (на примере 1С:Бухгалтерия 3.0 и 1С:Управление торговлей 11).
Самый простой способ — выгрузка в Excel через меню Файл → Сохранить как... или кнопку «Выгрузить» в списке документов. Однако у этого метода есть ограничения:
- 📊 Форматирование: даты преобразуются в текст, суммы с копейками могут округляться до целых.
- 🔄 Связи: не сохраняются ссылки между документами (например, счёт → оплата).
- 📈 Объём: при выгрузке более 10 000 строк Excel может «зависнуть».
Для бухгалтерских отчётов удобнее использовать регламентированные отчёты (например, Декларация по НДС или Книга покупок). Они автоматически формируются в формате, пригодном для загрузки в Личный кабинет налогоплательщика или Контур.Экстерн. Путь к ним: Отчёты → Регламентированные отчёты.
Ещё один полезный инструмент — универсальный обмен данными (Администрирование → Обмен данными). Здесь можно настроить выгрузку в XML или DBF по заданному шаблону. Например, для передачи остатков на склад Wildberries или в программу Склад-Мастер.
Если вам нужны данные в Excel с сохранением формул и форматирования, используйте внешнюю обработку «Выгрузка в Excel» от фирмы 1С (доступна в каталоге дополнений). Она позволяет гибко настраивать колонки и избегать проблем с копейками.
2. Выгрузка в XML: когда нужна структура, а не просто таблица
Формат XML незаменим, когда требуется сохранить иерархию документов и справочников — например, при переносе данных между базами 1С или интеграции с внешними системами. В отличие от Excel, здесь сохраняются все связи: какой товар относится к какой группе, какой документ является основанием для другого и т.д.
Чтобы выгрузить документ в XML:
- Откройте нужный документ (например,
Реализация товаров и услуг). - Нажмите
Ещё → Выгрузить в файл(илиФайл → Сохранить как...). - Выберите формат
XML (*.xml). - Укажите путь для сохранения и подтвердите экспорт.
Для пакетной выгрузки нескольких документов используйте обработку «Выгрузка данных в XML» (Файл → Открыть → Дополнительные отчёты и обработки). Здесь можно задать фильтры по дате, типу документа или контрагенту.
Что делать, если XML-файл не открывается в другой программе?
Частая проблема — несовпадение схемы данных. Проверьте:
1. Версию формата (например, CommerceML 2.0 для обмена с сайтами).
2. Кодировку файла (должна быть UTF-8 или Windows-1251).
3. Наличие обязательных тегов (например, <Каталог> для товаров).
Если ошибка сохраняется, попробуйте открыть файл в Notepad++ и сравнить его со схемой (XSD), которую ожидает принимающая система.
Для автоматизации обмена XML между базами 1С настройте планы обмена (Администрирование → Обмен данными → Планы обмена). Это позволит синхронизировать данные по расписанию, избегая ручного экспорта/импорта.
⚠️ Внимание: При выгрузке в XML через планы обмена проверьте настройки прав доступа. Если у пользователя нет прав на чтение справочников (например, Номенклатура), в файле окажутся пустые ссылки вместо наименований товаров.
3. Выгрузка в DBF: для совместимости со старыми системами
Формат DBF актуален при обмене с устаревшим ПО (например, 1С:Предприятие 7.7, Парус или Галактика). Он поддерживает табличную структуру, но не сохраняет иерархию. Главные плюсы:
- 🔄 Совместимость с большинством учётных систем 90-х — 2000-х.
- 📊 Поддержка больших объёмов данных (до миллионов записей).
- 🔧 Возможность редактирования в Excel или FoxPro.
Для выгрузки в DBF:
- Откройте список документов (например,
Поступление товаров). - Выделите нужные строки (или нажмите
Ctrl+Aдля выделения всех). - Нажмите
Ещё → Выгрузить в DBF. - Укажите путь и имя файла (расширение
.dbfдобавится автоматически).
Если кнопки «Выгрузить в DBF» нет, используйте внешнюю обработку «ВыгрузкаЗагрузкаДанныхXML» (входит в поставку 1С). Она поддерживает DBF наряду с XML и TXT.
| Формат | Подходит для | Ограничения | Скорость выгрузки |
|---|---|---|---|
| Excel (XLSX) | Отчёты, аналитика, ручная обработка | Округление чисел, нет связей между документами | Средняя (зависит от версии Excel) |
| XML | Обмен между базами 1С, интеграция с сайтами | Сложная структура, требует валидации | Высокая |
| DBF | Обмен со старыми системами (1С 7.7, Парус) | Нет иерархии, ограничения на длину полей | Очень высокая |
| CSV/TXT | Импорт в веб-сервисы (Яндекс.Маркет, OZON) | Нет типов данных, проблемы с разделителями | Высокая |
⚠️ Внимание: В DBF поля с датами сохраняются в форматеYYYYMMDD(например,20260515для 15 мая 2026). Если принимающая система ожидает другой формат, потребуется конвертация.
4. Программная выгрузка: для разработчиков и сложных задач
Если стандартные инструменты не подходят (например, нужно выгружать данные по расписанию или трансформировать их перед экспортом), пригодится встроенный язык 1С. Ниже — базовые примеры кода для разных сценариев.
Пример 1. Выгрузка документа в Excel:
Процедура ВыгрузитьВExcel
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Дата");
Таблица.Колонки.Добавить("Номер");
Таблица.Колонки.Добавить("Сумма");
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.СуммаДокумента КАК Сумма
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Пока Выборка.Следующий Цикл
НоваяСтрока = Таблица.Добавить;
НоваяСтрока.Дата = Выборка.Дата;
НоваяСтрока.Номер = Выборка.Номер;
НоваяСтрока.Сумма = Выборка.Сумма;
КонецЦикла;
Excel = Новый ExcelПриложение;
Книга = Excel.Kниги.Добавить;
Лист = Книга.Листы(1);
Лист.Ячейки(1,1).Значение ="Отчёт по реализации";
Лист.Ячейки(2,1).CopyFromRecordset(Таблица.Выгрузить);
Excel.Видимость = Истина; // Показать Excel
КонецПроцедуры
Пример 2. Выгрузка справочника в XML:
Процедура ВыгрузитьНоменклатуруВXML
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Export\Номенклатура.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML;
ЗаписьXML.ЗаписатьНачалоЭлемента("КаталогТоваров");
ЗаписьXML.ЗаписатьАтрибут("ВерсияСхемы","2.0");
Выборка = Справочники.Номенклатура.Выбрать;
Пока Выборка.Следующий Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Товар");
ЗаписьXML.ЗаписатьАтрибут("Код", Выборка.Код);
ЗаписьXML.ЗаписатьАтрибут("Наименование", Выборка.Наименование);
ЗаписьXML.ЗаписатьКонецЭлемента; // Товар
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента; // КаталогТоваров
ЗаписьXML.Закрыть;
КонецПроцедуры
Для автоматизации таких задач создайте регламентное задание (Администрирование → Регламентные задания) и привяжите к нему процедуру выгрузки. Например, чтобы каждый день в 23:00 формировался XML-отчёт для ФНС.
Отладить код в консоли запросов (Сервис → Консоль запросов)
Проверить права пользователя на чтение данных
Создать резервную копию базы (Администрирование → Выгрузить информационную базу)
Убедиться, что на диске достаточно места для экспорта-->
5. Типичные ошибки и как их избежать
Даже при кажущейся простоте выгрузки пользователи сталкиваются с проблемами. Разберём самые частые и способы их решения.
1. Ошибка «Недостаточно памяти» при выгрузке в Excel
- 🔹 Причина: слишком много данных (более 50 000 строк) или сложные формулы.
- 🔹 Решение: разбейте выгрузку на части по датам или контрагентам. Или используйте CSV вместо XLSX.
2. В XML-файле пустые теги вместо данных
- 🔹 Причина: отсутствуют права на чтение справочников (например,
КонтрагентыилиНоменклатура). - 🔹 Решение: проверьте роли пользователя в
Администрирование → Пользователи.
3. Даты в DBF отображаются как числа (например, 44668)
- 🔹 Причина: DBF хранит даты в числовом формате (количество дней с 30.12.1899).
- 🔹 Решение: в принимающей системе настройте преобразование по формуле
=ДАТА(1899;12;30)+A1(для Excel).
4. Выгрузка «зависает» на 99%
- 🔹 Причина: блокировка базы другими пользователями или большие бинарные данные (например, вложения в документах).
- 🔹 Решение: выполните выгрузку в нерабочее время или через
COM-соединениес правами администратора.
1. Наличие свободного места на диске (экспорт 100 000 документов может занять 10+ ГБ).
2. Отсутствие блокировок в базе (Администрирование → Активные пользователи).
3. Совместимость версий 1С (например, УТ 11.4 и БП 3.0 могут использовать разные схемы XML).-->
6. Обмен данными между базами 1С
Если нужно перенести документы из одной базы 1С в другую (например, из Управления торговлей в Бухгалтерию), используйте типовой обмен данными. Он поддерживает:
- 🔄 Синхронизацию справочников (
Контрагенты,Номенклатура). - 📄 Перенос документов (
Поступление,Реализация,Счёт-фактура). - 🔗 Сопоставление объектов по уникальным идентификаторам (GUID).
Для настройки обмена:
- В обеих базах откройте
Администрирование → Обмен данными. - Создайте новый план обмена (например,
ОбменСБухгалтерией). - Укажите узлы обмена (имена баз) и настройте правила преобразования.
- В меню
ДействиявыберитеВыгрузить данныеилиЗагрузить данные.
Для обмена между разными конфигурациями (например, УТ 11 и ERP 2.5) используйте универсальный формат обмена (EnterpriseData). Он поддерживает:
- 📦 Перенос остатков товаров.
- 📊 Выгрузку оборотов по счётам.
- 🔧 Гибкую настройку соответствий полей.
⚠️ Внимание: При обмене между базами с разными версиями платформы (например, 8.3.20 и 8.3.22) могут возникать ошибки из-за изменений в структуре метаданных. Перед массовым переносом протестируйте обмен на копии баз.
Если типовой обмен не подходит, разработайте собственное решение на основе:
HTTP-Сервисов(для облачных интеграций).COM-соединения(для локальных баз).Расширений конфигурации(для доработки логики обмена).
7. Выгрузка для отчётности: нюансы для ФНС, ПФР и статистики
При формировании отчётности для госорганов важно соблюдать требования к формату. Например:
- 📋 ФНС: декларации по НДС, налогу на прибыль выгружаются в XML по схеме
5.05(для 2026 года). - 📊 ПФР: формы СЗВ-ТД и СЗВ-СТАЖ — в XML с электронной подписью.
- 📈 Росстат: некоторые отчёты требуют DBF или TXT с фиксированной шириной колонок.
Чтобы выгрузить регламентированный отчёт:
- Откройте
Отчёты → Регламентированные отчёты. - Выберите нужный отчёт (например,
Декларация по НДС). - Заполните параметры (период, организация).
- Нажмите
Выгрузитьи выберите формат (обычно предлагается автоматически).
Для проверки корректности XML-файлов перед отправкой используйте:
- Программу «Налогоплательщик ЮЛ» (для ФНС).
- Сервис «Контур.Экстерн» (проверяет логику и арифметику).
- Валидатор XML (например,
XML Notepadдля визуального контроля структуры).
Если отчёт не проходит проверку,ные ошибки:
- 🔹 Код 100: неверный формат даты (должен быть
ДД.ММ.ГГГГ). - 🔹 Код 200: не совпадают контрольные соотношения (например, строка 010 ≠ сумме строк 020+030).
- 🔹 Код 300: отсутствует обязательный реквизит (например,
ИНН контрагента).
Как исправить ошибку"Недопустимый символ в XML"
Ошибка возникает, если в данных есть символы &, < или >, которые не экранированы. Решение:
1. В обработке выгрузки добавьте замену:
Текст = СтрЗаменить(Текст,"&","&");
Текст = СтрЗаменить(Текст,"<","<");
Текст = СтрЗаменить(Текст,">",">");
2. Или используйте функцию ЭкранироватьСтрокуДляXML из стандартной библиотеки 1С.
8. Автоматизация выгрузки: расписания и внешние сервисы
Ручная выгрузка отнимает время, особенно если документы нужно отправлять ежедневно. Автоматизировать процесс можно несколькими способами:
1. Регламентные задания в 1С
Настройте автоматическую выгрузку по расписанию:
- Откройте
Администрирование → Регламентные задания. - Создайте новое задание, укажите процедуру (например,
ВыгрузитьДанныеВXML). - Задайте расписание (ежедневно в 22:00) и пользователя, от имени которого будет выполняться задача.
2. Внешние сервисы интеграции
Для сложных сценариев (например, обмен с 1С:Документооборот или Bitrix24) используйте:
- 🔗 1С:Коннект — облачный сервис для обмена данными между базами.
- 🔗 Rarus:Интеграция — поддерживает обмен с SAP, Oracle, МойСклад.
- 🔗 Zabbix — для мониторинга успешности выгрузок.
3. Скрипты на Python или PowerShell
Если нужно обработать выгруженные данные перед загрузкой в другую систему, напишите скрипт. Пример на Python для конвертации XML в JSON:
import xmltodict
import json
with open("export.xml","r", encoding="utf-8") as xml_file:
data = xmltodict.parse(xml_file.read)
with open("output.json","w", encoding="utf-8") as json_file:
json.dump(data, json_file, ensure_ascii=False, indent=4)
Для запуска таких скриптов по расписанию используйте Планировщик заданий Windows или cron в Linux.
⚠️ Внимание: При автоматизации учитывайте пиковые нагрузки. Например, если выгрузка запускается в то же время, что и регламентные операции (например, Закрытие месяца), база может «подвисать». Распределяйте задачи по времени.
FAQ: Частые вопросы по выгрузке документов из 1С
Можно ли выгрузить документы за прошлый год, если база уже архивирована?
Да, но для этого нужно:
- Восстановить архивную копию базы на тестовом сервере.
- Выгрузить данные в нужном формате.
- Если требуется перенос в текущую базу — использовать загрузку из XML с флагом «Помечать на удаление отсутствующие объекты» =
Ложь.
Альтернатива: запросить выгрузку у администратора, если архив хранится в облаке (например, в 1С:Fresh).
Почему при выгрузке в Excel суммы с копейками становятся целыми числами?
Проблема в настройках региональных стандартов:
- В 1С откройте
Сервис → Параметры → Язык и региональные стандарты. - Установите формат числа с двумя знаками после запятой.
- При выгрузке выберите
Сохранить форматирование.
Если проблема сохраняется, используйте CSV вместо XLSX — в нём копейки сохраняются корректно.
Как выгрузить документы с вложениями (сканы, фотографии)?
Вложения хранятся в базе как бинарные данные. Чтобы их выгрузить:
- Используйте обработку «Выгрузка и загрузка данных XML» с флагом «Включать вложения».
- Или напишите скрипт на встроенном языке, который сохраняет вложения в отдельную папку:
Процедура ВыгрузитьВложения(Документ)
Каталог ="C:\Export\Вложения\" + Документ.Номер +"\";
СоздатьКаталог(Каталог);
Для Каждого Вложение Из Документ.ВложенияФайлы Цикл
Вложение.Записать(Каталог + Вложение.ИмяФайла);
КонецЦикла;
КонецПроцедуры
Можно ли выгрузить данные напрямую в Google Sheets?
Прямой выгрузки нет, но есть обходные пути:
- Выгрузите данные в CSV, затем импортируйте в Google Sheets через
Файл → Импорт. - Используйте API Google Sheets + скрипт на 1С для автоматической загрузки.
- Настройте интеграцию через Zapier или Make (ex-Integromat).
Для постоянной синхронизации удобнее использовать 1С:Коннект с подключением к Google Drive.
Как ускорить выгрузку больших объёмов данных (более 100 000 документов)?
Рекомендации для ускорения:
- 🔹 Выгружайте данные порциями (по месяцам или типам документов).
- 🔹 Используйте DBF или CSV вместо XML/Excel.
- 🔹 Отключите журнализацию на время выгрузки (
Администрирование → Журналы регистрации). - 🔹 Запускайте выгрузку в фоновом режиме:
Выгрузка = Новый ВыгрузкаДанныхXML;
Выгрузка.АсинхронныйРежим = Истина;
Выгрузка.Выгрузить("C:\Export\data.xml");