Как перенести таблицы и отчёты из 1С в Excel
Содержание
Любой список и любой отчёт в 1С 8.3 переносятся в Excel без дополнительных программ. Самый быстрый путь для списка — команда Еще → Вывести список…, для готового отчёта — сохранение через Главное меню → Файл → Сохранить копию… в формат Лист Excel. Ниже — пять рабочих способов: от двух кликов мышью до выгрузки по расписанию через внешнюю обработку
.
Выбор зависит от того, что именно выгружаете: разовую таблицу проще скопировать, регулярный отчёт — сохранить файлом, а периодический обмен с другой системой стоит автоматизировать. Разберём каждый вариант с точными путями меню.
Вывод списка документов и справочника в файл
Это основной способ выгрузить содержимое любого журнала, справочника или динамического списка.
- Откройте нужный список (например,
Продажи → Реализация (акты, накладные)). - При необходимости отфильтруйте и отсортируйте строки — выгрузится то, что видно на экране с учётом отбора.
- Нажмите
Ещев командной панели списка и выберитеВывести список…. - В открывшемся окне отметьте колонки, которые нужны, и оставьте тип вывода
Табличный документ. - Нажмите
ОК— 1С сформирует табличный документ. - Сохраните его:
Главное меню → Файл → Сохранить копию…, в полеТип файлавыберитеЛист Excel 2007-…(*.xlsx).
В окне Вывести список можно снять лишние колонки — так в Excel не попадут служебные поля вроде пометки удаления или кода.
Выгружаются только отобранные строки. Если нужен весь массив без ограничения отбора — сначала снимите фильтры в списке. У динамических списков действует настройка количества строк на странице, но Вывести список выгружает их все, а не только текущую страницу.
В том же окне есть второй тип вывода — Текстовый документ. Его берут, когда данные пойдут не в Excel, а в текстовый файл с фиксированной шириной колонок (для старых систем приёма). Для Excel всегда оставляйте Табличный документ: он сохранит колонки как отдельные ячейки, а не склеит их в одну строку. Порядок колонок в файле повторит порядок галочек в списке полей, так что переставить их можно прямо здесь.
Сохранение готового отчёта в формат Excel
Отчёты (ОСВ, анализ счёта, карточка счёта, универсальный отчёт и любые другие) — это табличные документы, их сохранение устроено одинаково.
- Сформируйте отчёт кнопкой
Сформировать. - Откройте
Главное меню → Файл → Сохранить копию…. - Укажите имя файла и выберите тип
Лист Excel 2007-…(*.xlsx). - Нажмите
Сохранить.
В большинстве форм отчётов на командной панели есть отдельная кнопка сохранения с иконкой дискеты — она открывает тот же диалог. Если кнопки не видно, разверните командную панель через Еще.
Тем же способом сохраняется печатная форма документа. Откройте любой документ (накладную, счёт, акт), нажмите Печать и выберите нужную форму — она откроется как табличный документ. Дальше всё как с отчётом: Главное меню → Файл → Сохранить копию… и формат xlsx. Так из 1С выгружают в Excel уже готовые бланки, а не только списки и своды.
Если нужна только часть большого отчёта, выделите диапазон ячеек мышью перед сохранением — некоторые формы позволяют сохранить именно выделенную область. Когда такой возможности нет, сохраните отчёт целиком и удалите лишнее уже в Excel.
Табличный документ переносит в Excel не только значения, но и оформление: группировки строк (плюсики слева), объединённые ячейки, рамки, цвет. Формулы при этом не переносятся — приходят рассчитанные числа. Если в отчёте были свёрнутые группировки, в Excel они раскроются как структура: управляйте ими кнопками «1 2 3» над номерами строк.
Копирование через буфер обмена
Когда нужно перенести несколько строк прямо сейчас, не плодя файлов, работает обычный буфер обмена.
- В табличном документе (отчёт, результат
Вывести список): выделите мышью диапазон ячеек, нажмитеCtrl+C, перейдите в Excel и вставьтеCtrl+V. Переносятся значения и базовое оформление. - В списке (журнале, справочнике): встаньте на строки, выделите нужные с
ShiftилиCtrl, при необходимостиCtrl+Aдля всех на странице, затемCtrl+C. В Excel вставьтеCtrl+V.
Способ хорош для десятка-другого строк. Для больших списков он менее надёжен, чем Вывести список: часть колонок может не скопироваться, а выделение всех строк в большом динамическом списке подгружает их порциями. Для полноценной выгрузки пользуйтесь первым способом.
При вставке в Excel длинные числовые коды (ИНН, артикулы, штрихкоды) Excel может превратить в экспоненту 1,2E+11 или обрезать ведущие нули. Заранее задайте таким столбцам текстовый формат либо вставляйте через Специальная вставка → Текст.
Какой формат выбрать: XLS, XLSX или CSV
При сохранении 1С предлагает несколько типов файла. Разница существенная.
| Формат | Когда брать | Ограничения |
|---|---|---|
Лист Excel 2007-…(*.xlsx) | По умолчанию почти всегда | Нет жёсткого лимита строк, сохраняет оформление |
Лист Excel 97-2003 (*.xls) | Только если принимающая сторона работает со старым Excel | Максимум 65 536 строк и 256 колонок |
CSV (разделители — запятые) | Для загрузки в другие программы и БД | Без оформления, частые проблемы с кодировкой |
Табличный документ (*.mxl) | Чтобы открыть снова в 1С | Excel такой файл не читает |
Для живой работы с данными берите xlsx: он снимает ограничение на число строк и переносит оформление. xls оставьте для случаев, когда файл уходит в систему, не понимающую новый формат. CSV нужен, когда данные пойдут на импорт в стороннее приложение, а не человеку на просмотр.
Ещё одно отличие: xlsx и xls сохраняют визуальное оформление отчёта (шрифты, рамки, цвет, объединения), а CSV — только значения через разделитель, без всякого оформления. Поэтому для свода с группировками и подсветкой подходит только Excel-формат, а для машинной загрузки, наоборот, лишнее оформление мешает — там чище CSV.
Если в xls не поместились все строки из-за лимита 65 536 — это первый признак, что пора переходить на xlsx.
Проблемы с кодировкой и спецсимволами в CSV
CSV — простой текст, и именно в нём чаще всего ломается кириллица: вместо букв в Excel появляются «кракозябры».
Причина в несовпадении кодировок. 1С сохраняет CSV в кодировке операционной системы, а Excel при двойном клике нередко открывает файл как UTF-8 или наоборот. Надёжные решения:
- Открывать CSV через импорт, а не двойным кликом. В Excel:
Данные → Получить данные → Из текстового/CSV-файла, в окне импорта вручную выберите кодировку (1251илиUTF-8) и символ-разделитель, пока предпросмотр не покажет нормальный текст. - Проверить разделитель. Если все данные встали в один столбец, разделителем в вашей системе служит не запятая, а точка с запятой — укажите его в окне импорта.
- Уйти от CSV к xlsx, если файл нужен человеку для просмотра: в xlsx кодировка не ломается в принципе.
Отдельно про спецсимволы: переносы строк внутри ячейки, кавычки и сами разделители внутри текста CSV экранирует кавычками. При ручной правке CSV в блокноте легко нарушить эти кавычки и сдвинуть все колонки — поэтому правьте такие файлы в редакторе, понимающем CSV, а не вслепую.
Выгрузка из кода: быстрый способ и OLE
Когда выгрузку надо встроить в обработку или делать по расписанию, есть два подхода.
Через встроенный метод табличного документа — не требует установленного Excel, работает и на сервере:
ТабДок = Новый ТабличныйДокумент;
// ... здесь отчёт или данные выводятся в ТабДок ...
ТабДок.Записать("C:\Выгрузка\otchet.xlsx", ТипФайлаТабличногоДокумента.XLSX2007);
Это предпочтительный вариант: 1С сама формирует файл, Excel на компьютере не нужен.
Через OLE-автоматизацию — когда нужно тонкое форматирование средствами самого Excel (формулы, условное форматирование, диаграммы):
Эксель = Новый COMОбъект("Excel.Application");
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
Лист.Cells(1, 1).Value = "Номенклатура";
Лист.Cells(1, 2).Value = "Остаток";
Лист.Cells(2, 1).Value = "Товар А";
Лист.Cells(2, 2).Value = 150;
Эксель.Visible = Истина;
OLE работает только там, где физически установлен Excel. На тонком и веб-клиенте COM-объект недоступен, а на сервере выгрузка через COM требует установленного на сервере Excel и прав — это редко оправданно. Для серверных и фоновых задач используйте Записать(…, ТипФайлаТабличногоДокумента.XLSX2007).
Для построчной выгрузки больших объёмов OLE медленный: каждое обращение к Cells — отдельный вызов COM. Либо собирайте данные в массив и выгружайте диапазоном, либо вовсе откажитесь от OLE в пользу табличного документа.
Автоматизация выгрузки через внешнюю обработку
Если один и тот же отчёт нужно выгружать регулярно — в файл для банка, маркетплейса или другой программы, — разумно оформить это внешней обработкой.
Ctrl+C / Ctrl+V) или Вывести список.xlsx через Файл → Сохранить копию…. Настройки отчёта сохраните, чтобы не задавать заново.ТабличныйДокумент.Записать(…) и регламентным заданием. Файл формируется без участия человека.Схема такой обработки:
- В конфигураторе или через
Файл → Новый → Внешняя обработкасоздаётся обработка с нужными запросами к данным. - Данные собираются в табличный документ.
- Метод
Записатьсохраняет файл в заданную папку. - Запуск вешается на регламентное задание (
Администрирование → Обслуживание → Регламентные и фоновые задания) с нужной периодичностью.
Для типовых конфигураций часто не нужна своя обработка: многие отчёты позволяют сохранить настройки и варианты, а рассылку готового файла по расписанию умеет механизм рассылки отчётов (Администрирование → Печатные формы, отчёты и обработки → Рассылки отчётов). Проверьте его, прежде чем писать код.
Частые ошибки при выгрузке и как их обойти
Данные выгрузились, но в Excel с ними неудобно работать — почти всегда причина в одном из четырёх моментов. Все они относятся уже к файлу после выгрузки, а не к самой команде экспорта.
- Объединённые ячейки ломают сортировку и фильтр. Отчёты 1С любят объединять ячейки в шапке и группировках. Excel отказывается сортировать и фильтровать диапазон с объединениями. Выделите данные и снимите объединение (
Главная → Объединить и поместить в центреповторным нажатием), либо выгружайте список черезВывести список, а не отчёт, — там объединений нет. - Даты встали как текст. Если даты выровнялись по левому краю и не сортируются как даты, Excel принял их за текст. Выделите столбец и примените
Данные → Текст по столбцам → Готовос форматом «дата» — значения перечитаются. - Числа с ведущими нулями и длинные коды. Повтор частой проблемы буфера обмена: ИНН, артикулы и штрихкоды теряют нули или уходят в экспоненту. Для таких столбцов до вставки задайте текстовый формат.
- Пустые строки-разделители из отчёта. Группировки отчёта часто разделены пустыми строками. При включении автофильтра Excel посчитает их границей таблицы. Удалите пустые строки или выгружайте «плоский» список без группировок.
Отдельная ошибка на стороне самой 1С — забытый отбор. Если в списке остался невидимый фильтр (например, по организации или периоду), в файл уйдёт не весь массив. Перед выгрузкой проверьте, что активных отборов нет.
Частые вопросы
Почему при выгрузке большого списка часть строк не попала в файл?
xls с лимитом 65 536 строк. Снимите фильтры и сохраняйте в xlsx.Можно ли выгрузить сразу несколько документов в один файл?
Вывести список выгружается весь список целиком одним табличным документом. Содержимое же самих документов (строки табличных частей) так не собрать — для этого нужен отчёт по документам или обработка.Переносятся ли в Excel формулы из отчёта 1С?
Как выгрузить данные, если работаю в веб-клиенте?
Вывести список, Сохранить копию) и буфер обмена работают в вебе. Недоступен только OLE — COM-объект Excel в браузере не создаётся.Чем открыть файл .mxl вне 1С?
xlsx или xls.