Накладная из 1С в таблицу Excel: пять способов, от Ctrl+C до кода на запросах

· 10 мин

Содержание

Чтобы выгрузить накладную из 1С в Excel, откройте документ, нажмите Печать, выберите нужную форму (ТОРГ-12, УПД или «Расходная накладная ») и в окне печатной формы нажмите кнопку сохранения с дискетой. В списке форматов отметьте «Лист Microsoft Excel 2007» (xlsx). Это займёт полминуты и работает в 1С:Бухгалтерии 3.0, Управлении торговлей 11 и ERP.

Но печатная форма — это бланк с объединёнными ячейками. Если вам нужна не картинка накладной, а живая таблица товаров, которую можно сортировать, фильтровать и сводить, подойдёт другой способ. Ниже пять вариантов: от копирования в два нажатия до выгрузки кодом для программиста.

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

Сначала определитесь, что вы хотите получить на выходе. От этого зависит способ.

СпособЧто получите в ExcelКогда подходитСложность
Копирование строкСтроки товаров без шапкиНужно быстро вставить 5–30 позиций в чужую таблицуМинимальная
«Вывести список»Чистая таблица всех колонок табличной частиАнализ, сверка, фильтрыНизкая
Печатная форма → xlsxБланк ТОРГ-12 / УПД с реквизитами и подписямиОтправить контрагенту, распечатать, подшитьНизкая
Универсальный отчёт или обработкаСтроки многих накладных за периодСвод по периоду, по контрагентуСредняя
Код на запросахФайл заданной структуры, в т.ч. по расписаниюРегулярный обмен, интеграцияНужен программист

💡 Для сверки с поставщиком почти всегда удобнее «Вывести список »: числа приходят числами, а не текстом с пробелами.

Где лежат накладные в типовых конфигурациях:

КонфигурацияПродажаПоступление
Бухгалтерия 3.0Продажи → Реализация (акты, накладные, УПД)Покупки → Поступление (акты, накладные, УПД)
Управление торговлей 11Продажи → Документы продажиЗакупки → Документы закупки

Порядок выгрузки во всех случаях одинаковый. Различается только место, где искать документ.

Способ 1. Копирование строк накладной через буфер обмена

Самый быстрый вариант, когда нужно перенести список товаров в уже готовую таблицу.

  1. Откройте накладную и перейдите на вкладку Товары.
  2. Щёлкните по первой строке, затем зажмите Shift и щёлкните по последней. Выделить все строки сразу можно сочетанием Ctrl+A, предварительно щёлкнув внутри таблицы.
  3. Нажмите Ctrl+C.
  4. Перейдите в Excel, встаньте в ячейку и нажмите Ctrl+V.

Строки вставятся, каждая колонка формы попадёт в свою колонку листа.

⚠️ Ограничения способа:

  • 📌 Шапка документа (номер, дата, контрагент) не копируется — только табличная часть.
  • 📌 Заголовки колонок не переносятся, их придётся вписать вручную.
  • 📌 Скрытые колонки не попадают в буфер. Если нужна, скажем, колонка «Счёт учёта», сначала включите её через Ещё → Изменить форму.
  • 📌 Если вставилось одно значение вместо таблицы, значит, была выделена ячейка, а не строки. Выделите строки целиком или используйте способ 2.

Способ 2. «Вывести список» — стандартная выгрузка таблицы в Excel

В каждой таблице управляемой формы 1С есть команда, которая превращает её в табличный документ. Из него таблица сохраняется в xlsx штатно, без обработок.

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

Готовый файл открывается в Excel как обычная таблица: с заголовками, без объединённых ячеек.

Тот же приём работает и для списка документов. Откройте журнал реализаций, установите отбор по периоду и контрагенту, выполните Ещё → Вывести список... — и получите реестр накладных с номерами, датами и суммами. Строк товаров в нём не будет, только шапки документов.

💡 Если в окне табличного документа выделить диапазон ячеек мышью, его можно скопировать через Ctrl+C и вставить в Excel вместе с заголовками. Это гибрид первого и второго способов.

Способ 3. Сохранение печатной формы накладной в xlsx

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

  1. Откройте проведённую накладную.
  2. Нажмите Печать и выберите форму: «Товарная накладная (ТОРГ-12)», «Универсальный передаточный документ (УПД)» или «Расходная накладная».
  3. В окне предварительного просмотра нажмите кнопку Сохранить (значок дискеты).
  4. В диалоге сохранения отметьте формат «Лист Microsoft Excel 2007 (.xlsx)». Можно отметить сразу несколько, например xlsx и pdf.
  5. Выберите «Сохранить в папку на компьютере» и укажите папку.

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

Как выгрузить сразу несколько накладных

  1. В списке документов выделите нужные накладные (Ctrl + щелчок или Shift + щелчок).
  2. Нажмите Печать и выберите форму.
  3. Все бланки откроются в одном окне просмотра, по одному на странице.
  4. При сохранении в xlsx каждая печатная форма попадёт в отдельный файл. Имя файла программа подставит сама, по виду и номеру документа.

Печатная форма — это бланк, а не база данных. В ней объединённые ячейки, суммы прописью, многострочные шапки. Сортировка и фильтр в Excel на таком листе ломаются. Для расчётов используйте способ 2.

Если в печатной форме чего-то не хватает

Добавить колонку (артикул, штрихкод, вес) в типовую ТОРГ-12 правкой основной конфигурации нельзя без снятия с поддержки. Практики делают по-другому:

  • 🛠️ заказывают внешнюю печатную форму и подключают её через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки;
  • 🛠️ правят макет через расширение конфигурации — типовой релиз потом обновляется без конфликтов;
  • 🛠️ в БСП-конфигурациях копируют макет в пользовательский через Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм и меняют его там.

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

Способ 4. Отчёт или внешняя обработка для выгрузки многих накладных

Задача типичная: «выгрузите мне все отгрузки контрагенту за квартал по строкам». Открывать 80 документов по одному нет смысла.

Универсальный отчёт

В Бухгалтерии 3.0 и других конфигурациях на БСП есть «Универсальный отчёт». Найти его проще всего в разделе Отчеты, а если ссылки не видно — через поиск по командам в верхней панели.

  1. В отчёте выберите тип объекта «Документ» и сам документ, например «Реализация (акт, накладная, УПД)».
  2. В качестве источника данных укажите табличную часть «Товары».
  3. Задайте период и отбор по контрагенту.
  4. Через Настройки добавьте поля: номер и дата документа, номенклатура, количество, цена, сумма, НДС.
  5. Сформируйте отчёт и сохраните его в xlsx той же кнопкой с дискетой.

Получится одна плоская таблица: каждая строка — позиция товара с номером накладной. Такую можно сразу класть в сводную таблицу.

Внешняя обработка

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

  • 🔹 подключите её в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, кнопка Добавить из файла;
  • 🔹 или откройте разово через главное меню Файл → Открыть, если у вас есть права на это.

Открывайте только обработки из надёжного источника. Внешняя обработка выполняет любой код с вашими правами: может изменить или удалить данные. Программа предупреждает об этом перед открытием файла. Не скачивайте «бесплатные выгрузчики» с форумов и не запускайте их в рабочей базе без проверки.

Способ 5. Выгрузка накладной кодом на языке запросов

Вариант для программиста: выгрузка с жёсткой структурой колонок, регулярная выгрузка по расписанию, выгрузка в сетевую папку для склада.

Удобнее всего собрать данные запросом, вывести в ТабличныйДокумент и записать его методом Записать() в формате XLSX. Excel на компьютере не нужен, COM-объекты не используются.

Пример для документа «Реализация товаров и услуг» в Бухгалтерии 3.0. Процедура выполняется на сервере: в файловом варианте файл ляжет на компьютер пользователя, в клиент-серверном — на сервер 1С.

&НаСервереБезКонтекста
Процедура ВыгрузитьНакладнуюВExcel(ДокументСсылка, ИмяФайла)

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Товары.НомерСтроки КАК НомерСтроки,
	|	Товары.Номенклатура.Наименование КАК Номенклатура,
	|	Товары.Количество КАК Количество,
	|	Товары.Цена КАК Цена,
	|	Товары.Сумма КАК Сумма,
	|	Товары.СуммаНДС КАК СуммаНДС
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК Товары
	|ГДЕ
	|	Товары.Ссылка = &Ссылка
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерСтроки";
	Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);

	ТабДок = Новый ТабличныйДокумент;
	Заголовки = СтрРазделить("№;Товар;Количество;Цена;Сумма;НДС", ";");
	Для Кол = 1 По Заголовки.Количество() Цикл
		ТабДок.Область(1, Кол).Текст = Заголовки[Кол - 1];
	КонецЦикла;

	Поля = СтрРазделить("НомерСтроки;Номенклатура;Количество;Цена;Сумма;СуммаНДС", ";");
	Выборка = Запрос.Выполнить().Выбрать();
	НомерРяда = 1;
	Пока Выборка.Следующий() Цикл
		НомерРяда = НомерРяда + 1;
		Для Кол = 1 По Поля.Количество() Цикл
			Значение = Выборка[Поля[Кол - 1]];
			Ячейка = ТабДок.Область(НомерРяда, Кол);
			Если ТипЗнч(Значение) = Тип("Число") Тогда
				// число пишем значением, чтобы в Excel оно не стало текстом
				Ячейка.СодержитЗначение = Истина;
				Ячейка.ТипЗначения = Новый ОписаниеТипов("Число");
				Ячейка.Значение = Значение;
			Иначе
				Ячейка.Текст = Строка(Значение);
			КонецЕсли;
		КонецЦикла;
	КонецПока;

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

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

Что важно в этом примере:

  • 🔸 Числа записываются через СодержитЗначение и Значение. Если положить их в Текст, Excel получит строку «1 250,00» и не сможет её сложить.
  • 🔸 Для УТ 11 и ERP имена документа и колонок табличной части другие. Сверьте их в конфигураторе по дереву метаданных, прежде чем копировать запрос.
  • 🔸 Для выгрузки по расписанию оберните процедуру в регламентное задание или в команду дополнительной обработки с типом «Регламентная». Путь к файлу тогда указывайте сетевой, доступный пользователю, от которого работает сервер 1С.

Вариант через Новый COMОбъект("Excel.Application") тоже рабочий, но требует установленного Excel на той машине, где выполняется код, медленно работает на больших объёмах и не запускается на сервере под Linux. Запись через табличный документ надёжнее.

Чтобы отдать файл пользователю в тонком клиенте, сформируйте табличный документ на сервере и верните его на клиент: метод Показать() откроет таблицу, а пользователь сохранит её сам кнопкой с дискетой.

Что ломается при выгрузке накладной в Excel и как это исправить

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

Частые вопросы о выгрузке накладных в Excel

Можно ли потом загрузить накладную из Excel обратно в 1С?
Да. В табличной части «Товары» документов поступления и реализации Бухгалтерии 3.0 есть команда загрузки из файла: она сопоставляет колонки Excel с номенклатурой, количеством и ценой. Новые позиции номенклатуры при этом можно создать прямо из окна загрузки.
Подпись и печать сохранятся в xlsx?
Да, если в карточке организации загружены факсимиле и при печати выбран вариант с подписью и печатью. Картинки вставятся в лист Excel как изображения.
Как отправить накладную в Excel покупателю, не сохраняя файл на диск?
В окне печатной формы есть кнопка отправки по почте. Отметьте формат xlsx, и программа приложит файл к письму. Почтовая учётная запись должна быть настроена в базе.
Чем xlsx отличается от xls при выгрузке?
xlsx — современный формат: файлы меньше, лимит строк больше миллиона. xls ограничен 65 536 строками, для большой выгрузки за год его может не хватить.
Выгрузка в Excel заменяет электронный документ для контрагента?
Нет. Файл Excel — копия для просмотра или печати. Юридически значимый электронный документ передают через оператора ЭДО в формате ФНС и подписывают электронной подписью.