Накладные из 1С в таблицу Excel: от одного документа до реестра за год
Содержание
Быстрее всего выгрузить накладные из 1С в Excel так: откройте список документов (в 1С:Бухгалтерии 3.0 — Продажи → Реализация (акты, накладные, УПД)), отберите нужный период и выполните Ещё → Вывести список…. Получится табличный документ, который сохраняется в файл .xlsx одной кнопкой. Если нужна сама накладная (ТОРГ-12 или УПД) — откройте документ, нажмите Печать и сохраните печатную форму в формате Excel.
Эти два приёма закрывают большинство задач. Для выгрузки строк с товарами, тысяч документов или регулярного обмена есть отчёты, внешние обработки, COM-соединение и OData. Ниже — когда что выбирать и как не получить в Excel «кашу» из объединённых ячеек и чисел-текста.
Где лежат накладные в 1С и что именно выгружать
Сначала определитесь, что вам нужно в Excel. От этого зависит способ.
- 📄 Сама накладная как документ для контрагента — печатная форма ТОРГ-12, УПД, ТТН.
- 📋 Реестр накладных — дата, номер, контрагент, сумма, НДС. Одна строка на документ.
- 📦 Построчная выгрузка товаров — номенклатура, количество, цена, сумма по каждой накладной.
- 🔁 Регулярная выгрузка в другую систему или в отчёт для руководства.
Где найти документы в типовых конфигурациях:
| Конфигурация | Отгрузки (исходящие накладные) | Поступления (входящие) |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Продажи → Реализация (акты, накладные, УПД) | Покупки → Поступление (акты, накладные, УПД) |
| Управление торговлей 11, ERP 2 | Продажи → Документы продажи | Закупки → Документы закупки |
Если раздела не видно (урезанный интерфейс или права пользователя), документы можно открыть через «Все функции». Включается команда так: главное меню (значок ☰ в левом верхнем углу) → Сервис → Параметры, флажок «Отображать команду “Все функции”». После этого в главном меню появится Все функции → Документы, где лежит полный перечень документов базы.
Способ 1. Печатная форма и «Вывести список» — выгрузка без настроек
Одна или несколько накладных как документ
- Откройте документ реализации или поступления.
- Нажмите
Печатьи выберите нужную форму: «Товарная накладная (ТОРГ-12)», «Универсальный передаточный документ» и т.п. - В открывшейся печатной форме нажмите значок дискеты «Сохранить».
- Выберите формат «Лист Microsoft Excel 2007-… (*.xlsx)» и папку.
💡 Можно выгрузить пачку накладных одним файлом. В списке документов выделите нужные строки (Ctrl + щелчок или Shift + щелчок) и нажмите Печать. Все формы выведутся в один табличный документ, каждая — на своей странице. Сохраните его так же, как одну.
Тот же диалог сохранения умеет записывать каждую форму в отдельный файл и сразу отправлять их по почте вложением — флажки для этого есть в окне сохранения.
Реестр накладных за период
- Откройте список документов.
- Установите период: кнопка
Ещё → Установить периодили поле периода над списком. - При необходимости отберите по контрагенту или организации через строку поиска или
Ещё → Настроить список. - Выполните
Ещё → Вывести список…. - В окне вывода оставьте флажки только у нужных колонок. Нажмите
ОК. - Появившийся табличный документ сохраните в
.xlsxчерез значок дискеты.
«Вывести список» выгружает ровно то, что видно в списке с текущим отбором. Если отбора по периоду нет, в файл уйдут все накладные за все годы. На базе с сотнями тысяч документов это займёт минуты.
Чего этот способ не даёт: строк товаров. В списке документа только «шапка» — дата, номер, контрагент, сумма. Для номенклатуры переходите к способу 2.
Способ 2. Выгрузка накладных через отчёты: универсальный отчёт и анализ субконто
Универсальный отчёт — товары по накладным построчно
В БП 3.0 он находится в разделе Отчёты → Универсальный отчет. Это конструктор, который строит таблицу по любому объекту базы.
- В шапке отчёта выберите вид объекта «Документ».
- В поле объекта выберите «Реализация (акты, накладные, УПД)» или «Поступление (акты, накладные, УПД)».
- В поле таблицы выберите табличную часть «Товары» (по умолчанию стоят основные данные — реквизиты шапки).
- Задайте период и нажмите
Сформировать. - Через
Настройкидобавьте группировки или поля: дата, номер, контрагент, номенклатура, количество, цена, сумма, НДС. - Сохраните результат в
.xlsxзначком дискеты.
Удобно, что настройку можно сохранить как вариант отчёта и в следующий месяц только поменять период.
Анализ субконто — суммы по контрагентам и документам
Раздел Отчёты → Анализ субконто. Подходит, когда нужны суммы по накладным в разрезе бухгалтерского учёта.
- Выберите виды субконто «Контрагенты» и «Документы расчетов с контрагентом».
- Получите обороты по каждому документу реализации или поступления, сгруппированные по контрагентам.
- Результат сохраните в Excel тем же способом.
Анализ субконто показывает данные проводок. Непроведённые накладные в него не попадут — это плюс для сверки и минус, если нужны черновики.
Способ 3. Книга продаж, книга покупок и другие регламентные выгрузки
Если накладные нужны для сверки НДС с контрагентом или проверяющими, удобнее выгружать не документы, а регистры по счетам-фактурам.
- Книга продаж и книга покупок в БП 3.0 — в разделе
Отчёты, группа «НДС». Каждая строка — счёт-фактура или УПД со статусом 1, с суммой и налогом. - Оборотно-сальдовая ведомость по счёту 62 или 60 с детализацией по документам — для акта сверки в Excel.
- Акт сверки взаиморасчётов — документ, у которого печатная форма тоже сохраняется в
.xlsx.
Все они формируются как табличный документ и сохраняются через значок дискеты. Отличие от способа 1 — в выгрузке будут суммы именно в разрезе налогового учёта, а не по данным документа.
Способ 4. Внешняя обработка для массовой выгрузки накладных в Excel
Когда выгрузка нужна каждую неделю в одном и том же виде, проще один раз сделать внешнюю обработку
. Её подключают в БП 3.0 через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
Обработка выполняет запрос к базе, складывает результат в табличный документ и пишет файл. Ниже — серверная процедура для БП 3.0, которая выгружает строки товаров по проведённым реализациям за период.
&НаСервереБезКонтекста
Процедура ВыгрузитьНакладныеНаСервере(Начало, Окончание, ИмяФайла)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Ссылка.Дата КАК Дата,
| Товары.Ссылка.Номер КАК Номер,
| ПРЕДСТАВЛЕНИЕ(Товары.Ссылка.Контрагент) КАК Контрагент,
| ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура) КАК Номенклатура,
| Товары.Количество КАК Количество,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СуммаНДС КАК СуммаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
|ГДЕ
| Товары.Ссылка.Проведен
| И Товары.Ссылка.Дата МЕЖДУ &Начало И &Окончание
|УПОРЯДОЧИТЬ ПО
| Дата, Номер";
Запрос.УстановитьПараметр("Начало", НачалоДня(Начало));
Запрос.УстановитьПараметр("Окончание", КонецДня(Окончание));
Результат = Запрос.Выполнить();
ТабДок = Новый ТабличныйДокумент;
// Строка заголовков
Колонки = Результат.Колонки;
Для Кол = 1 По Колонки.Количество() Цикл
ТабДок.Область(1, Кол, 1, Кол).Текст = Колонки[Кол - 1].Имя;
КонецЦикла;
// Данные
Выборка = Результат.Выбрать();
Стр = 1;
Пока Выборка.Следующий() Цикл
Стр = Стр + 1;
Для Кол = 1 По Колонки.Количество() Цикл
ТабДок.Область(Стр, Кол, Стр, Кол).Текст = Выборка[Колонки[Кол - 1].Имя];
КонецЦикла;
КонецЦикла;
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
КонецПроцедуры
Что важно знать про этот пример:
- Файл пишется на стороне сервера 1С. В клиент-серверной базе путь вида
D:\Выгрузка\nakladnye.xlsxокажется на сервере, а не на компьютере бухгалтера. Укажите сетевую папку, к которой есть доступ у пользователя, под которым работает служба сервера 1С. - Для поступлений замените
РеализацияТоваровУслугнаПоступлениеТоваровУслуг. - В УТ 11 и ERP документ называется так же, но набор реквизитов табличной части отличается. Проверьте имена полей в конфигураторе перед запуском.
💡 Готовые обработки «выгрузка в Excel» есть и у сторонних разработчиков. Перед подключением чужой .epf откройте её в конфигураторе и посмотрите код: обработка работает с правами пользователя и может менять данные.
Способ 5. COM-соединение: накладные из 1С прямо в книгу Excel
Этот вариант для тех, кто пишет макросы. Excel сам подключается к базе 1С и заливает данные на лист. Нажал кнопку — получил свежий реестр.
Sub ЗагрузитьНакладные()
Dim cn As Object, conn As Object, q As Object, sel As Object
Dim r As Long
Set cn = CreateObject("V83.COMConnector")
' Файловая база:
Set conn = cn.Connect("File=""D:\Bases\BP"";Usr=""Выгрузка"";Pwd=""пароль"";")
' Серверная база: "Srvr=""srv1c"";Ref=""bp_prod"";Usr=""Выгрузка"";Pwd=""пароль"";"
Set q = conn.NewObject("Query")
q.Text = "ВЫБРАТЬ Р.Дата КАК DocDate, Р.Номер КАК DocNum, " & _
"ПРЕДСТАВЛЕНИЕ(Р.Контрагент) КАК Partner, Р.СуммаДокумента КАК Total " & _
"ИЗ Документ.РеализацияТоваровУслуг КАК Р " & _
"ГДЕ Р.Проведен И Р.Дата МЕЖДУ &Start И &Finish УПОРЯДОЧИТЬ ПО Р.Дата"
q.SetParameter "Start", DateSerial(2025, 1, 1)
q.SetParameter "Finish", DateSerial(2025, 12, 31) + TimeSerial(23, 59, 59)
Set sel = q.Execute().Choose()
r = 2
Do While sel.Next()
Cells(r, 1).Value = sel.DocDate
Cells(r, 2).Value = sel.DocNum
Cells(r, 3).Value = sel.Partner
Cells(r, 4).Value = sel.Total
r = r + 1
Loop
End Sub
Латинские псевдонимы полей (DocDate, Partner) избавляют от проблем с кириллицей в именах свойств на стороне VBA.
Без чего COM не заработает:
- Зарегистрирована компонента
comcntr.dllиз каталога платформы. Регистрация — от имени администратора:Номер версии подставьте свой — он совпадает с именем папки платформы.regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\comcntr.dll" - Разрядность совпадает. 64-битный Excel работает только с 64-битной платформой 1С, 32-битный — с 32-битной. Это частая причина ошибки при
CreateObject. - Версия компоненты совпадает с версией сервера для клиент-серверной базы.
- Отдельный пользователь с правом «Внешнее соединение» и ролью только на чтение. Пароль в макросе не храните в открытом виде в общих файлах.
Способ 6. OData и прямое подключение к СУБД для больших объёмов
Когда накладных десятки тысяч и выгрузка нужна регулярно, удобнее не «выгружать», а подключить Excel к базе как к источнику данных.
OData + Power Query
Платформа 8.3 умеет публиковать стандартный интерфейс OData. Порядок такой:
- Базу публикуют на веб-сервере (IIS или Apache) с флажком публикации стандартного интерфейса OData.
- В самой базе включают в состав интерфейса нужные объекты. В БП 3.0 это делается в разделе
Администрирование → Синхронизация данных, ссылка на настройку стандартного интерфейса OData. - В Excel:
Данные → Получить данные → Из других источников → Из канала OData. - Адрес вида
http://srv/bp/odata/standard.odata/, логин и пароль пользователя 1С. - Выберите сущность
Document_РеализацияТоваровУслуг(шапки) илиDocument_РеализацияТоваровУслуг_Товары(строки товаров).
Дальше Power Query обновляет данные кнопкой Обновить все. Фильтр по дате лучше задавать в запросе, а не тянуть всю таблицу.
Прямое подключение через ODBC к SQL
Для клиент-серверной базы технически можно подключить Excel по ODBC к MS SQL или PostgreSQL. Но имена таблиц там служебные (_Document123, _Fld4567), а после обновления конфигурации структура может измениться. Фирма 1С такой доступ не поддерживает, и ошибка в запросе к рабочей базе ударит по всем пользователям.
Прямые запросы к СУБД — только на чтение и только к копии базы или реплике, не к рабочему серверу.
Какой способ выбрать
Ошибки при выгрузке из 1С в Excel и как их исправить
Как привести выгруженные накладные в порядок в Excel
Выгрузка из печатной формы похожа на бумагу: объединённые ячейки, шапка, подписи. Сортировать и считать по ней неудобно. Для анализа берите реестр или универсальный отчёт, а файл доведите так:
- Уберите объединение ячеек. Выделите всё (
Ctrl+A) →Главная → Объединить и поместить в центре → Отменить объединение ячеек. - Удалите строки итогов и группировок, которые добавил отчёт, — иначе сводная таблица посчитает суммы дважды.
- Превратите диапазон в таблицу:
Ctrl+T. Появятся фильтры, а формулы будут ссылаться на имена столбцов. - Проверьте даты. Если дата пришла текстом вида «15.03.2025 0:00:00», выделите столбец и выполните
Данные → Текст по столбцам → Готово— Excel распознает дату. - Постройте сводную:
Вставка → Сводная таблица. Например, строки — контрагент, столбцы — месяц, значения — сумма.
💡 Если реестр нужен ежемесячно, сделайте отдельную книгу-шаблон со сводной, а свежую выгрузку вставляйте на лист с данными. Сводная обновится по Данные → Обновить все.
Пример проверки после выгрузки: в 1С по реализациям за март 412 документов на 8 734 500 руб. В Excel строка состояния при выделении столбца сумм должна показать то же «Количество: 412» и «Сумма: 8 734 500». Разошлось — ищите задвоенные строки итогов или потерянный отбор.