Выгрузка всех документов из 1С:Предприятие — типичная задача при миграции на новую систему, аудите, резервном копировании или передаче данных контрагентам. Однако стандартные отчёты часто ограничивают количество строк или не экспортируют связанные табличные части. В этой статье разберём все возможные методы — от простых (через интерфейс) до сложных (прямые SQL-запросы к базе), с учётом особенностей популярных конфигураций: 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:Зарплата и Управление Персоналом 3.1.
Особое внимание уделим скрытым нюансам: почему выгрузка в Excel обрезает данные, как обойти ограничения на количество строк в отчётах, и что делать, если документы"зависнут" при массовом сохранении. Все инструкции актуальны для платформы 1С:Предприятие 8.3 (включая последние релизы 2026 года).
⚠️ Предупреждение: Массовая выгрузка документов может заблокировать базу для других пользователей. Рекомендуется выполнять операции в нерабочее время или на тестовой копии.
1. Стандартная выгрузка через отчёты и обработки
Самый простой способ — использовать встроенные отчёты 1С. Например, в 1С:Бухгалтерии 3.0 это отчёт Все документы (раздел Отчёты → Стандартные → Все документы). Однако у метода есть критические ограничения:
- 📊 Ограничение на количество строк (обычно 10 000–50 000 в зависимости от конфигурации).
- 🔄 Нет возможности выгрузить табличные части документов (например, строки товаров в Реализации).
- 📄 Форматы выгрузки ограничены: Excel (с обрезкой данных), HTML, текст.
Чтобы обойти ограничение по строкам, используйте постраничную выгрузку:
- Откройте отчёт
Все документы. - В настройках отчёта установите фильтр по дате (например, за месяц).
- Экспортируйте данные в Excel, затем повторите для следующего периода.
Для конфигураций на базе УТ 11 или ERP 2 доступна обработка Выгрузка данных в Excel (раздел Администрирование → Печатные формы, отчёты и обработки). Она позволяет выгружать табличные части, но требует ручной настройки полей.
Если в выгруженном Excel пропадают данные, проверьте настройки региональных параметров в Windows: формат даты должен совпадать с форматом 1С (обычно дд.мм.гггг).
2. Выгрузка через универсальные обработки (внешние и встроенные)
Для массовой выгрузки без ограничений используйте внешние обработки. Наиболее популярные:
- 🔧 Универсальная выгрузка документов в Excel (от 1С-Рарус или Инфостарт). Позволяет выгружать любые документы с табличными частями, поддерживает шаблоны.
- 📤 ВыгрузкаЗагрузкаДанныхXML (встроенная в большинстве конфигураций). Экспортирует данные в XML, который позже можно конвертировать в Excel.
- 🗃️ Обработка"Пакетная выгрузка документов" (доступна на Инфостарте). Поддерживает выгрузку по маске, с фильтрами и сохранением вложений.
Пример использования встроенной обработки ВыгрузкаЗагрузкаДанныхXML:
- Перейдите в
Файл → Открыть → выберите обработку(обычно находится в каталогеExtFormsдистрибутива 1С). - Укажите путь для сохранения XML-файла.
- В настройках выгрузки отметьте галочкой
Выгружать документыи укажите период. - Запустите выгрузку. Для больших баз процесс может занять несколько часов.
⚠️ Внимание: XML-файлы от 1С часто содержат служебную информацию (метки времени, ссылки на объекты). Для преобразования в читаемый формат используйте XSLT-шаблоны или специализированные конвертеры (например, Altova XMLSpy).
Как ускорить выгрузку больших объёмов данных?
Для баз с более чем 100 000 документов рекомендуется:
1. Выгружать данные по годам (например, 2020, 2021 отдельно).
2. Отключить индексирование папки с выгрузкой в Windows.
3. Использовать SSD-накопитель для временных файлов.
3. Прямой экспорт через SQL-запросы (для опытных пользователей)
Если вам нужны все данные без ограничений, включая служебные поля, можно обратиться напрямую к базе 1С через SQL. Этот метод требует доступа к серверу PostgreSQL или MS SQL Server (в зависимости от конфигурации).
Основные таблицы для выгрузки документов:
| Конфигурация | Таблица документов | Таблица табличных частей |
|---|---|---|
| 1С:Бухгалтерия 3.0 | Document{НомерВерсии}.AccumRg{ИмяДокумента} | Document{НомерВерсии}.AccumRg{ИмяДокумента}VT{НомерТабличнойЧасти} |
| 1С:Управление торговлей 11 | Document{НомерВерсии}.Document{ИмяДокумента} | Document{НомерВерсии}.Document{ИмяДокумента}TabPart{ИмяЧасти} |
| 1С:Зарплата и Управление Персоналом 3.1 | Document{НомерВерсии}.Document{ИмяДокумента} | Document{НомерВерсии}.Document{ИмяДокумента}TabPart{ИмяЧасти} |
Пример SQL-запроса для выгрузки всех документов РеализацияТоваровУслуг из УТ 11 (MS SQL):
SELECT
d._IDRRef AS Ссылка,
d._Date AS Дата,
d._Number AS Номер,
d._Fld{НомерПоля} AS [Поле1],
-- Другие поля
FROM
Document{НомерВерсии}.DocumentРеализацияТоваровУслуг AS d
WHERE
d._Date BETWEEN'2023-01-01' AND'2023-12-31'
Для выгрузки табличных частей (например, строк товаров) используйте JOIN:
SELECT
d._IDRRef AS СсылкаДокумента,
t._LineNo AS НомерСтроки,
t._Fld{НомерПоляТовар} AS Товар,
t._Fld{НомерПоляКоличество} AS Количество
FROM
Document{НомерВерсии}.DocumentРеализацияТоваровУслуг AS d
JOIN
Document{НомерВерсии}.DocumentРеализацияТоваровУслугTabPartТовары AS t
ON d._IDRRef = t._Document_IDRRef
WHERE
d._Date BETWEEN'2023-01-01' AND'2023-12-31'
⚠️ Внимание: Структура таблиц в 1С может меняться после обновлений конфигурации. Перед выполнением запросов всегда проверяйте актуальные имена таблиц и полей через SQL Management Studio или pgAdmin.
4. Выгрузка через COM-соединение и скрипты (1C:Enterprise)
Для автоматизации выгрузки можно использовать COM-соединение с 1С:Предприятие через скрипты на Python, PowerShell или VBScript. Этот метод подходит для интеграции с другими системами (например, BI-аналитикой или CRM).
Пример скрипта на Python с библиотекой py1C:
import py1C
Подключение к базе
v8 = py1C.Connect("File=C:\\Bases\\Trade;Usr=Администратор;Pwd=12345")
Получение списка документов
docs = v8.Query(
"ВЫБРАТЬ
Ссылка,
Дата,
Номер
ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Дата МЕЖДУ &НачалоПериода И &КонецПериода",
{"НачалоПериода":"2023-01-01","КонецПериода":"2023-12-31"}
)
Сохранение в CSV
with open("realizaciya.csv","w", encoding="utf-8") as f:
f.write("Ссылка;Дата;Номер\n")
for doc in docs:
f.write(f"{doc.Ссылка};{doc.Дата};{doc.Номер}\n")
Для выгрузки табличных частей добавьте в запрос соединение с виртуальной таблицей:
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК СсылкаДокумента,
РеализацияТоваровУслугТовары.НомерСтроки,
РеализацияТоваровУслугТовары.Товар,
РеализацияТоваровУслугТовары.Количество
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ПО РеализацияТоваровУслуг.Ссылка = РеализацияТоваровУслугТовары.Ссылка
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
⚠️ Внимание: При работе через COM-соединение 1С может блокировать базу для других пользователей. Используйте параметр LockTimeout=0 в строке подключения, чтобы избежать конфликтов.
Установить библиотеку py1C (pip install py1C)|Проверить права доступа пользователя 1С|Создать резервную копию базы|Определить период выгрузки|Подготовить папку для результатов-->
5. Выгрузка через консольные утилиты (1cv8 и 1cv8s)
Для администрирования 1С предусмотрены консольные утилиты 1cv8.exe (для файлового варианта) и 1cv8s.exe (для серверного). Они позволяют выполнять выгрузку в фоновом режиме без запуска интерфейса.
Пример команды для выгрузки всех документов ПоступлениеТоваров в XML:
1cv8.exe DESIGNER /F"C:\Bases\Trade" /N Администратор /P 12345 /Execute"ВыгрузитьДанныеXML.epf" /Out"C:\Export\postuplenie.xml"
Где:
/F— путь к информационной базе./Nи/P— имя и пароль пользователя./Execute— обработка для выгрузки (например,ВыгрузкаЗагрузкаДанныхXML.epf)./Out— путь к выходному файлу.
Для серверного варианта используйте 1cv8s с аналогичными параметрами, добавив /S для указания сервера:
1cv8s.exe DESIGNER /S"sr-01\trade" /N Администратор /P 12345 /Execute"ВыгрузитьДанныеXML.epf" /Out"\\server\export\postuplenie.xml"
⚠️ Внимание: Консольные утилиты не поддерживают многопоточность. При выгрузке больших объёмов данных разбейте процесс на несколько задач (например, по месяцам).
Консольные утилиты — единственный способ выгрузить данные с сервера 1С без запуска толстого клиента. Подходит для автоматизации через Планировщик задач Windows или cron в Linux.
6. Альтернативные способы: обмен данными и ETL-инструменты
Если выгрузка нужна для миграции в другую систему (например, SAP, Oracle или МойСклад), рассмотрите специализированные инструменты:
- 🔄 Конвертация данных (КД 2/3) — типовой механизм 1С для обмена между конфигурациями. Позволяет настроить правила выгрузки и загрузки.
- 📦 ETL-инструменты (например, Talend, Informatica, Microsoft SSIS). Поддерживают сложные трансформации данных.
- 🌐 API 1С:Предприятие (REST или OAuth). Актуально для облачных решений (например, 1С:Фреш).
Пример настройки обмена через Конвертацию данных 3.0:
- В исходной базе (1С:УТ 11) откройте
Администрирование → Обмен данными → Настройка обмена. - Создайте новый план обмена и укажите целевую базу.
- В правилах обмена отметьте документы для выгрузки (например,
РеализацияТоваровУслуг,ПоступлениеТоваров). - Запустите обмен через
Выполнить обмен.
Для ETL-инструментов потребуется:
- Настроить ODBC-соединение с базой 1С.
- Создать задачу на выгрузку данных из таблиц
Document{...}. - Преобразовать данные в целевой формат (например, JSON для API или CSV для Excel).
⚠️ Внимание: При обмене через Конвертацию данных проверьте соответствие версий конфигураций. Например, УТ 10.3 не совместима с УТ 11.5 без дополнительных доработок.
7. Обработка ошибок при выгрузке
При массовой выгрузке документов возможнычные ошибки:
| Ошибка | Причина | Решение |
|---|---|---|
Ошибка блокировки данных | Документ редактируется другим пользователем. | Используйте параметр /LockTimeout=0 или выполните выгрузку в нерабочее время. |
Недостаточно памяти | Слишком большой объём данных для обработки. | Разбейте выгрузку на части (по месяцам/годам) или увеличьте память для 1С в 1cv8.ini. |
Нет прав на чтение | У пользователя недостаточно прав. | Выполните выгрузку от имени Администратор или настройте роль Полные права. |
Файл не найден (XML/Excel) | Неверный путь сохранения или нет прав на запись. | Проверьте путь в настройках обработки и права на папку. |
Если выгрузка прерывается без ошибки, проверьте:
- 🕒 Тайм-ауты в настройках сервера 1С (параметр
SessionTimeoutвragent.conf). - 🗄️ Свободное место на диске (особенно при выгрузке в XML).
- 🔌 Стабильность сети (для клиент-серверного варианта).
Если выгрузка"зависла" на 99%, попробуйте уменьшить пакет данных в настройках обработки (например, выгружать по 5 000 документов за раз).
FAQ: Частые вопросы по выгрузке документов из 1С
Можно ли выгрузить документы с печатными формами?
Да, но стандартными средствами — только через обработку Печать документов (по одному). Для массовой выгрузки используйте внешние обработки (например, "Пакетная печать документов" с Инфостарта), которые сохраняют PDF для каждого документа.
Как выгрузить документы с историей изменений?
История изменений хранится в таблице _InfoRg{Номер}. Для выгрузки используйте SQL-запрос с JOIN к основной таблице документов. Пример:
SELECT
d._IDRRef AS Документ,
h._DateTime AS ДатаИзменения,
h._User AS Пользователь,
h._Data AS Данные (в формате BLOB)
FROM
Document{Номер}.DocumentРеализацияТоваровУслуг AS d
JOIN
_InfoRg{Номер} AS h ON d._IDRRef = h._ObjectID
WHERE
d._Date BETWEEN'2023-01-01' AND'2023-12-31'
Данные в поле _Data закодированы — для расшифровки потребуется 1С или специализированные утилиты.
Почему в Excel не выгружаются табличные части?
Стандартные отчёты 1С не поддерживают экспорт табличных частей в Excel. Решения:
- Используйте обработку
ВыгрузкаДанныхВExcelс настройкой структуры. - Экспортируйте в XML, затем конвертируйте в Excel через XSLT.
- Настройте связанные таблицы в Excel (Power Query) для автоматического подтягивания данных из табличных частей.
Как выгрузить документы из 1С:Фреш (облако)?
В 1С:Фреш прямая выгрузка через SQL невозможна. Используйте:
- 📤 Встроенный экспорт (раздел
Администрирование → Выгрузка данных). - 🔌 API 1С:Фреш (документация:
https://api.fresh.1c.ru). - 📦 Обработки от партнёров (например, "Выгрузка из 1С:Фреш в Excel" на Инфостарте).
⚠️ Обратите внимание: в бесплатном тарифе 1С:Фреш API имеет ограничение на количество запросов (обычно 1 000 в день).
Можно ли выгрузить удалённые документы?
Да, но они помечены как удалённые в таблице _DeletedObjects. Для восстановления:
- Включите отображение удалённых объектов в настройках отчёта (если поддерживается).
- Используйте SQL-запрос с JOIN к
_DeletedObjects:
SELECT d.*
FROM Document{Номер}.DocumentРеализацияТоваровУслуг AS d
JOIN _DeletedObjects AS del ON d._IDRRef = del._ObjectID
WHERE del._DeleteMark = 1
Для восстановления документа в интерфейсе 1С используйте обработку ВосстановлениеПомеченныхОбъектов.epf.