Как перенести документ из 1С в Excel: 5 проверенных способов с сохранением структуры
Содержание
Перенести документ или отчёт из 1С в Excel можно за полминуты: откройте печатную форму или отчёт, нажмите «Сохранить» (значок дискеты на панели формы или Ctrl+S) и выберите тип файла «Лист Microsoft Excel 2007-… (*.xlsx)». Так выгружается всё, что 1С показывает в виде таблицы: печатные формы, оборотно-сальдовые ведомости, карточки счетов, журналы.
Если нужны не красивые формы, а сырые данные из списка или табличной части, быстрее сработает копирование через буфер. Для регулярных выгрузок и больших объёмов есть внешние обработки, COM-соединение и регламентные задания. Ниже все пять способов, от простого к сложному, и список проблем, на которых обычно спотыкаются.
Что проверить перед выгрузкой
Три минуты подготовки экономят час потом.
- 📌 Сформируйте документ полностью. В отчёте нажмите «Сформировать» и дождитесь итогов. Выгружается то, что на экране.
- 📌 Разверните группировки. Свёрнутые строки в отчёте уйдут в файл свёрнутыми. Чтобы получить детали, настройте отчёт или разверните уровни кнопкой группировки.
- 📌 Оцените объём. Формат
.xlsxвмещает 1 048 576 строк на лист, старый.xlsтолько 65 536. Список на 200 тысяч строк в.xlsне влезет. - 📌 Решите, что вам нужно: вид или данные. Печатная форма сохранит оформление, шапку и подписи. Для сводных таблиц и ВПР лучше выгружать простой список без объединённых ячеек.
Если файл пойдёт дальше (контрагенту, в банк, в аудит), сначала выгрузите его себе и откройте в Excel. Лишние столбцы и служебные строки проще убрать до отправки.
Способ 1. Сохранение печатной формы и отчёта через меню
Самый частый случай: вам нужен документ в том виде, в каком его видит бухгалтер.
Выгрузка печатной формы документа
- Откройте документ (например, «Реализация товаров и услуг») и нажмите «Печать».
- Выберите нужную форму, например УПД или счёт-фактуру. Откроется окно предварительного просмотра.
- Нажмите значок «Сохранить» на панели формы или используйте
Ctrl+S. - В списке «Тип файла» выберите
xlsx. Старыйxlsнужен только для очень старых версий Excel. - Укажите папку и имя, нажмите «Сохранить».
Выгрузка отчёта
Порядок тот же: сформировали отчёт, нажали «Сохранить». Если в окне сохранения нет типа Excel, проверьте, что вы сохраняете именно таблицу отчёта, а не настройки.
Какие форматы предлагает 1С
| Формат | Когда брать | Риск |
|---|---|---|
xlsx | Для всего, что потом правят в Excel | Очень широкие формы могут «поехать» по ширине столбцов |
xls | Совместимость с древним ПО | Лимит 65 536 строк |
mxl | Хранить в родном формате 1С | Без 1С не откроется |
pdf | Отправить «как есть», без правок | Данные в таблицу не вытащить |
csv / txt | Передать данные в другую программу | Теряется оформление, возможны проблемы с кодировкой |
Перед отправкой файла наружу проверьте, что в шапке нет лишних данных: служебных комментариев, внутренних реквизитов, лишних организаций, если база многофирменная.
Способ 2. Копирование через буфер обмена
Метод для списков, журналов и табличных частей документов. Быстрый, но без оформления.
- В списке (например, «Номенклатура» или журнал документов
) выделите нужные строки. Все сразу выделяются через
Ctrl+A. - Нажмите
Ctrl+Cили выберите «Копировать» в контекстном меню. - В Excel встаньте в нужную ячейку и нажмите
Ctrl+V.
В 1С копируются только видимые колонки. Хотите больше полей, включите их в настройке списка (команда «Ещё» → «Изменить форму» или «Настроить список», название зависит от формы и версии).
Выгрузка всего списка командой
Для больших списков удобнее команда вывода списка. Её можно найти в меню «Ещё» над таблицей: пункт называется «Вывести список …». 1С предложит выбрать колонки и покажет табличный документ, который сохраняется так же, как отчёт. Преимущество в том, что выводятся все строки списка с учётом отбора, а не только те, что поместились на экране.
Из табличной части документа через буфер уходят строки целиком, но формулы 1С не переносятся: в Excel окажутся значения. Это нормально, формулы пересчитывает сама программа.
Что делать с числами-текстом
После вставки суммы иногда становятся текстом и не складываются. Признак: зелёный уголок в ячейке и выравнивание влево. Выделите столбец, в Excel нажмите значок предупреждения и выберите «Преобразовать в число». Если не помогает, замените пробел-разделитель тысяч (это неразрывный пробел, символ 160) через «Найти и заменить» на пустое значение.
Способ 3. Универсальные внешние отчёты и обработки
Когда стандартных форм мало, подключают внешний отчёт или обработку выгрузки. Это файлы .epf и .erf, которые открываются без изменения конфигурации.
Есть два пути подключения:
- 🔹 Разово. «Файл» → «Открыть», выбрать
.epf. Подходит для проверки. - 🔹 Постоянно. Подключить в разделе администрирования, где находятся дополнительные отчёты и обработки. Там включается использование внешних обработок, после чего файл регистрируется в справочнике и назначается разделам или документам.
Типовые задачи, для которых их берут:
- выгрузка табличной части документа сразу по нескольким документам за период;
- выгрузка справочника с реквизитами, которых нет в списке;
- выгрузка результата запроса (универсальные обработки «Консоль запросов» показывают результат и сохраняют в Excel).
Внешний файл выполняет код с правами вашего пользователя. Берите обработки только из надёжных источников и проверяйте на копии базы. Не подключайте обработку, которую вам прислали в мессенджере без объяснений. Если у пользователя ограничены права, подключить её без администратора не получится, и это правильно.
Способ 4. Выгрузка через COM-соединение
Для программистов и опытных администраторов. 1С управляет Excel как программой: открывает книгу, пишет в ячейки, форматирует. Нужен установленный Excel на том компьютере, где выполняется код.
Попытка
Excel = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Excel не найден: " + ОписаниеОшибки());
Возврат;
КонецПопытки;
Excel.Visible = Ложь;
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);
Лист.Cells(1, 1).Value = "Номер";
Лист.Cells(1, 2).Value = "Сумма";
Лист.Cells(2, 1).Value = "00-000125";
Лист.Cells(2, 2).Value = 15000.50;
Книга.SaveAs("C:\Temp\vygruzka.xlsx");
Книга.Close();
Excel.Quit();
Когда COM не нужен
Самый быстрый способ без Excel: собрать ТабличныйДокумент и записать его метод Записать, указав тип файла XLSX. Он работает на сервере и в веб-клиенте, не требует установленного Excel и не зависит от версии Office.
ТабДок.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
COM оставляйте для случаев, когда нужно править готовый шаблон Excel с макросами или формулами. Для остального хватит Записать.
По скорости COM медленнее на порядки. Запись по ячейке: 10 тысяч строк по пять столбцов ощутимо тормозят. Передавайте данные массивом в диапазон одним вызовом, а не по одной ячейке.
Ограничения COM
- ❌ Не работает в веб-клиенте и на сервере, где не установлен Excel.
- ❌ Excel, оставшийся в памяти после ошибки, держит файл. Всегда закрывайте приложение в блоке
Исключение. - ❌ Требует разрешений: на 64-разрядном клиенте 1С может не найти 32-разрядный Excel (и наоборот).
Способ 5. Автоматическая выгрузка по расписанию
Если нужна ежедневная выгрузка остатков, продаж или дебиторки, настройте её один раз.
Схема работает так:
- Готовите процедуру, которая формирует отчёт или табличный документ и записывает его в сетевую папку.
- Создаёте регламентное задание (доступно в режиме администрирования) и привязываете процедуру.
- Назначаете расписание: например, ежедневно в 07:00.
- Папку открываете для нужных людей, они забирают файл или получают письмо.
Регламентные задания выполняются на сервере, поэтому Excel там обычно нет. Используйте Записать с типом XLSX, как показано выше, а путь указывайте сетевой (\\server\share\...), а не диск вашего компьютера.
В файловой базе без сервера задания выполняются, пока открыт хотя бы один сеанс с правами на запуск. Для надёжности вынесите выгрузку в клиент-серверный вариант.
Если выгрузка идёт на почту, проверьте, что вы вправе отправлять эти данные. Остатки, зарплата и персональные данные не должны уходить в открытом виде.
Какой способ выбрать
Выбор зависит от задачи, а не от привычки.
| Задача | Способ | Почему |
|---|---|---|
| Отправить счёт или акт «как есть» | Сохранение печатной формы | Сохраняется оформление и шапка |
| Забрать список номенклатуры или контрагентов | Буфер или «Вывести список» | Быстро, одна таблица без оформления |
| Выгрузить реквизиты, которых нет на форме | Внешняя обработка | Свой набор полей и отборов |
| Собрать данные в готовый шаблон с макросами | COM | Единственный способ править живую книгу Excel |
| Нужен файл каждое утро | Регламентное задание | Работает без участия человека |
Мини-кейс: оборотка на 8 000 строк
Бухгалтеру нужна оборотно-сальдовая ведомость по 41 счёту за год, чтобы сверить остатки со складом. Формировать отчёт в окне и копировать целиком неудобно: страница прокручивается долго. Правильный порядок такой: сформировать отчёт, сохранить в xlsx, открыть в Excel и включить автофильтр по заголовку. Дальше сверка идёт по столбцам, а не глазами по экрану. Время: около двух минут вместо двадцати.
Когда выгружать в Excel не нужно
- 🚫 Нужна передача данных между двумя базами 1С. Для этого есть обмен данными: он сохраняет связи документов, а Excel их теряет.
- 🚫 Нужно отправить отчётность в налоговую. Для этого есть регламентированные отчёты и электронная передача, а таблица в Excel не заменяет декларацию.
- 🚫 Данные содержат персональные сведения сотрудников, и вы собираетесь отправлять их на личную почту.
Типичные проблемы после выгрузки
Здесь только то, чего нет в шагах выше.
mxl, переименованный в xlsx, Excel не прочитает. Повторите выгрузку с нужным типом.