Печатная форма, список и табличная часть из 1С в Excel: все способы переноса
Содержание
Чтобы скопировать документ
1С в Excel, откройте его печатную форму (кнопка Печать), нажмите в окне формы кнопку сохранения с дискетой и выберите формат Лист Microsoft Excel 2007-... (*.xlsx). Получится обычный файл Excel с рамками, шрифтами и объединёнными ячейками, как в 1С. Сам Excel на компьютере для этого не нужен: файл xlsx платформа 1С пишет сама.
Если нужны не бланк, а строки табличной части или список документов, используйте команду Ещё → Вывести список..., а для пары ячеек хватит Ctrl+C и Ctrl+V.
Какой способ переноса выбрать
В 1С «документ» бывает трёх видов, и для каждого свой путь в Excel:
- 📄 печатная форма (счёт, ТОРГ-12, УПД, акт) — это табличный документ, его сохраняют в xlsx целиком;
- 📋 табличная часть документа (товары, услуги, сотрудники) — это таблица на форме, её выводят списком;
- 🗂️ журнал документов (список счетов за месяц, реализаций, платёжек) — тоже выводится списком.
Сама форма документа с полями «Контрагент», «Договор», «Склад» в Excel не сохраняется. Если нужна шапка вместе с товарами, проще взять печатную форму.
Копирование через буфер обмена: быстро, но с оговорками
Буфер обмена удобен, когда нужен кусок печатной формы: блок с итогами, несколько строк товаров, реквизиты.
Из печатной формы
- Откройте документ и нажмите
Печать, выберите нужную форму. - Выделите мышью диапазон ячеек. Весь лист выделяется сочетанием
Ctrl+A. - Нажмите
Ctrl+C. - В Excel встаньте в ячейку
A1и нажмитеCtrl+V.
Excel вставит данные вместе с оформлением: рамками, шрифтами, объединениями. Ширина колонок при этом обычно сбивается, потому что сетка 1С мельче, чем у Excel.
Нужны только значения, без рамок и объединений? В Excel вместо Ctrl+V используйте Ctrl+Alt+V (специальная вставка) и выберите «Текст» или «Значения». Таблицу после этого удобно сортировать и фильтровать.
Из поля или таблицы на форме
В обычной форме документа Ctrl+C копирует значение текущего поля или текущей ячейки таблицы. Так переносят номер документа, сумму, ИНН, количество в одной строке.
Для десятков строк этот способ не подходит: копировать ячейку за ячейкой долго, а ошибиться легко. Для таблиц переходите к выводу списка из следующего раздела.
Сохранение документа 1С в файл Excel
Это основной способ. Он сохраняет документ целиком, без потери оформления.
Печатная форма → xlsx
- Откройте документ, нажмите
Печатьи выберите форму. - В окне печатной формы нажмите кнопку с дискетой (
Сохранить). - Отметьте формат
Лист Microsoft Excel 2007-... (*.xlsx). - Выберите, куда сохранить: на компьютер или присоединить файл к документу.
- Нажмите
Сохранитьи укажите папку.
В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) в этом окне можно отметить сразу несколько форматов, например xlsx и PDF. Если выбрано несколько печатных форм, их можно упаковать в один архив.
Второй путь работает в любом табличном документе, даже в самописных отчётах: откройте главное меню (кнопка с тремя полосками в заголовке окна программы) и выберите Файл → Сохранить как.... В поле «Тип файла» укажите xlsx.
| Формат | Когда выбирать | Ограничения |
|---|---|---|
.xlsx | почти всегда | нет |
.xls (Excel 97–2003) | получатель работает в очень старом Excel | файл больше, лимит 65 536 строк |
.mxl | файл откроют снова в 1С | Excel такой файл не открывает |
.pdf | нужно «замороженное» представление без правок | редактировать неудобно |
Табличная часть и списки документов
- Откройте документ и встаньте курсором в таблицу «Товары» (или «Услуги», «Сотрудники»).
- Нажмите
Ещёнад таблицей и выберитеВывести список.... - В окне отметьте колонки, которые нужны. Флажок «Только выделенные» выводит только выделенные строки.
- Нажмите
ОК: откроется табличный документ. - Сохраните его в xlsx через кнопку с дискетой или
Файл → Сохранить как....
Журнал документов выводится так же. Сначала установите отбор по периоду, организации или контрагенту, иначе в файл уйдут все документы за годы работы базы.
Команда выводит то, что сейчас видно в колонках. Скрытая колонка не попадёт в файл. Добавьте её в список заранее через Ещё → Изменить форму... или отметьте в окне вывода.
Как подготовить файл к печати в Excel
После сохранения бланк в Excel обычно выглядит правильно, но печатается не всегда. Причина в том, что поля, масштаб и ориентация настраиваются в 1С и в Excel по-разному.
Что настроить до сохранения
В окне печатной формы откройте Ещё → Параметры страницы (или найдите команду «Параметры страницы» в главном меню, в разделе «Файл»). Здесь задают:
- 📐 ориентацию: книжная или альбомная;
- 📏 поля страницы в миллиметрах;
- 🔍 масштаб или флажок «По ширине страницы».
Эти параметры переносятся в файл xlsx. Если в 1С бланк печатался на одном листе, в Excel он, как правило, тоже уместится.
Что поправить в самом Excel
- Вкладка «Разметка страницы» → «Ориентация» — если широкая ТОРГ-12 уехала на книжный лист.
- «Разметка страницы» → «Поля» → «Настраиваемые поля»: отметьте «Горизонтально» в блоке центрирования.
- В том же окне на вкладке «Страница» выберите «Разместить не более чем на: 1 стр. в ширину», а поле высоты очистите. Длинный документ разобьётся на страницы только по вертикали.
- «Вид» → «Страничный режим» показывает синие линии разрывов. Их можно перетащить мышью.
- Для многостраничного списка задайте сквозные строки: «Разметка страницы» → «Печатать заголовки» → поле «Сквозные строки». Шапка таблицы повторится на каждом листе.
Выгрузка документа в Excel кодом и через OLE
Когда одну и ту же выгрузку делают по десять раз в день, ручные клики заменяют кнопкой. Есть два пути: сохранить табличный документ методом Записать или управлять Excel через COM (OLE).
Метод Записать: без установленного Excel
У табличного документа есть метод Записать, второй параметр задаёт тип файла. Код ниже формирует файл на сервере и отдаёт его пользователю. Вызов ФайловаяСистемаКлиент.СохранитьФайл — из Библиотеки стандартных подсистем, она есть в типовых конфигурациях.
&НаСервере
Функция АдресФайлаExcel()
ТабДок = Новый ТабличныйДокумент;
// Здесь заполнение: макет печатной формы или вывод отчёта
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла), УникальныйИдентификатор);
УдалитьФайлы(ИмяФайла);
Возврат Адрес;
КонецФункции
&НаКлиенте
Процедура ВыгрузитьВExcel(Команда)
ФайловаяСистемаКлиент.СохранитьФайл(Неопределено, АдресФайлаExcel(), "Документ.xlsx");
КонецПроцедуры
Этот вариант работает в тонком клиенте, в веб-клиенте и на сервере под Linux, потому что не трогает Excel.
OLE: когда нужно оформление средствами Excel
Через COM-объект Excel.Application можно открыть готовый файл, подогнать ширину колонок, задать ориентацию и сохранить. Нужны Windows и установленный Excel там, где выполняется код.
Excel = Новый COMОбъект("Excel.Application");
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open("C:\Выгрузка\Документ.xlsx");
Лист = Книга.Worksheets(1);
Лист.Columns("A:Z").AutoFit();
Лист.PageSetup.Orientation = 2; // 2 = альбомная
Лист.PageSetup.Zoom = Ложь;
Лист.PageSetup.FitToPagesWide = 1;
Лист.PageSetup.FitToPagesTall = Ложь;
Книга.Save();
Книга.Close();
Excel.Quit();
Всегда вызывайте Excel.Quit(), в том числе при ошибке (оберните код в Попытка ... Исключение). Иначе в диспетчере задач копятся процессы EXCEL.EXE, и через пару дней сервер начинает тормозить.
Не запускайте OLE-выгрузку на сервере 1С без согласования с администратором. Майкрософт не рекомендует автоматизацию Office в серверных службах: окно с вопросом, которое никто не видит, вешает сеанс.
Если правок в конфигурации делать нельзя, кнопку добавляют расширением конфигурации или делают внешнюю обработку . Тогда обновления типовой конфигурации её не затрут.
Кракозябры, числа-текст и спецсимволы
Файл xlsx из 1С проблем с кодировкой не даёт. Сложности начинаются при копировании через буфер и при сохранении в текстовые форматы.
Суммы не складываются: число стало текстом
1С отделяет тысячи неразрывным пробелом. Excel видит «12 500,00» как текст: формула СУММ возвращает 0, а в углу ячейки появляется зелёный треугольник.
Как исправить:
- Выделите колонку и нажмите
Ctrl+H. - В поле «Найти» введите неразрывный пробел: удерживайте
Altи наберите0160на цифровой клавиатуре. - Поле «Заменить на» оставьте пустым, нажмите «Заменить все».
Если после этого числа всё ещё текст, проверьте разделитель дробной части. При английских региональных настройках Windows Excel ждёт точку, а 1С ставит запятую. Замените запятую на точку той же командой или поменяйте разделитель в параметрах Excel.
Длинные номера и коды
- 🔢 Расчётный счёт (20 цифр) Excel превращает в
4,07028E+19и обнуляет последние цифры. Он хранит только 15 значащих разрядов. - 0️⃣ Коды с ведущими нулями («00045») теряют нули.
- 📅 Номера вида «1-2» превращаются в дату.
Перед вставкой задайте колонке формат «Текстовый» (Ctrl+1 → «Число» → «Текстовый») и вставляйте через специальную вставку как текст. Сохранение в xlsx этих проблем обычно не создаёт: ячейка уходит в файл как строка.
Кракозябры в CSV и TXT
Текстовый файл, открытый двойным щелчком, Excel читает в кодировке Windows. Файл в UTF-8 без метки превращается в набор символов вроде «РЎС‡РµС‚».
Откройте его иначе: «Данные» → «Из текстового/CSV-файла» и в поле «Источник файла» выберите 65001: Юникод (UTF-8) или 1251: кириллица (Windows). Разделителем укажите табуляцию или точку с запятой.
Символы <, >, &, кавычки и переносы строк внутри ячеек xlsx переносит без потерь. При вставке через буфер перенос строки в наименовании иногда разбивает одну строку на две: тогда сохраняйте файлом.
Веб-клиент и тонкий клиент: чем отличается перенос
Внешне окна одинаковые, но возможности разные.
| Действие | Тонкий клиент | Веб-клиент |
|---|---|---|
| Сохранение печатной формы в xlsx | диалог Windows «Сохранить как» | файл скачивается через браузер |
Ctrl+C / Ctrl+V | работает, переносится оформление | работает, результат зависит от браузера |
| Вывод списка | есть | есть |
| COM/OLE на стороне клиента | есть в Windows | нет |
Особенности веб-клиента:
- 🌐 Файл уходит в папку загрузок браузера. Если ничего не скачалось, проверьте, не заблокировал ли браузер всплывающие окна и загрузки для адреса базы.
- 🧩 Для части операций с файлами браузер попросит установить расширение для работы с 1С:Предприятием. Сохранение в xlsx через скачивание работает и без него.
- 📋 Браузер может запросить разрешение на доступ к буферу обмена. Если копирование не срабатывает, сохраните файл: результат будет тот же.
В тонком клиенте на Linux и macOS сохранение в xlsx работает так же, как в Windows, а COM-автоматизации нет. Для выгрузки кодом используйте метод Записать.
Частые ошибки при переносе в Excel
- ❌ Сохраняют в
.mxlпо привычке и не могут открыть файл в Excel. Это родной формат 1С, Excel его не читает. - ❌ Выгружают журнал без отбора. Файл на 300 000 строк формируется минутами и не открывается в старом Excel.
- ❌ Правят цифры в выгруженном бланке и отправляют клиенту. Документ в базе остался прежним, и при сверке суммы не сойдутся. Исправляйте в 1С и выгружайте заново.
- ❌ Копируют документ в 1С (команда «Скопировать») вместо выгрузки в Excel. Это создаёт новый документ в базе. Если его провести, движения задвоятся. Случайную копию пометьте на удаление.