Выгрузка из 1С в Excel: буфер, «Сохранить как» и автоматизация

· 9 мин

Содержание

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

Чем больше строк и чем важнее формат ячеек, тем меньше смысла копировать вручную. Разберём каждый способ, а потом то, что чаще всего ломается: слипшиеся числа, пропавшие нули в начале кодов, «кракозябры» в CSV.

Всё ниже относится к платформе 8.3 с интерфейсом «Такси». Названия пунктов в вашей конфигурации могут чуть отличаться, но принцип одинаков в Бухгалтерии, ЗУП, УТ и других.

Быстрое копирование через буфер обмена

Самый короткий путь. Подходит для отчётов, печатных форм и обычных списков.

Из отчёта или печатной формы

Отчёт и печатная форма — это табличный документ. Он копируется как обычная таблица.

  1. Сформируйте отчёт.
  2. Выделите нужную область мышью. Весь документ сразу выделяет Ctrl+A.
  3. Нажмите Ctrl+C.
  4. В Excel встаньте в ячейку A1 и нажмите Ctrl+V.

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

Из списка (справочника, журнала документов)

В списке выделите строки: щелчок на первой, Shift и щелчок на последней, либо Ctrl+A для всех строк, которые уже подгружены. Затем Ctrl+C и вставка в Excel. Копируются те колонки, которые сейчас показаны на экране.

Две оговорки:

  • ⚠️ Список в 1С подгружается порциями. Ctrl+A берёт то, что загружено, а не все записи справочника. Для длинных списков используйте вывод списка (следующий раздел).
  • 💡 Нужна одна колонка — выделите её ячейки. Для списка с многими колонками иногда проще скопировать всё и удалить лишнее уже в Excel.

Если вставка в Excel даёт одну колонку с текстом через табуляции, проверьте, что вставляете в обычную ячейку, а не в строку формул. В строку формул Excel вставляет весь текст как единую строку.

Вывод списка и «Сохранить как»: когда нужен файл

Буфер не годится, когда данные нужно передать другому человеку или загрузить в другую программу. Здесь выручает сохранение в файл.

Сохранение отчёта или печатной формы

Откройте сформированный отчёт или печатную форму. В табличном документе есть команда сохранения (значок дискеты в панели формы, либо пункт Файл → Сохранить как... в главном меню, если оно включено в вашем интерфейсе). Откроется стандартное окно выбора файла. В списке «Тип файла» выберите формат Excel.

Какой формат выбрать:

ФорматКогда братьРиски
.xlsxПочти всегда: открывается в любом современном ExcelНет, если не нужны макросы
.xlsНужна совместимость со старым Excel и программами-приёмникамиЛимит 65 536 строк, больший отчёт обрежется
.mxlНужно вернуть файл в 1С (родной формат табличного документа)Excel его не откроет
.pdfПоказать, не правитьДанные не скопировать в таблицу
.csv / .txtЗагрузка в другую системуКодировка и разделители (см. ниже)

Набор форматов в списке зависит от конфигурации и версии платформы. Если нужного формата нет, сохраните в .xlsx и преобразуйте в Excel.

Вывод списка в табличный документ

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

Откроется окно настройки:

  • Выводить в: выберите «Табличный документ».
  • Колонки: галочками отметьте, какие поля нужны. Можно изменить порядок стрелками.
  • Количество строк: программа предлагает вывести всё. Если в списке установлен отбор, выведутся только отобранные записи.

После нажатия ОК откроется табличный документ. Его можно сохранить файлом, как описано выше, или выделить и скопировать.

Вывод списка с сотнями тысяч строк займёт заметное время и память клиента. Сначала отфильтруйте список по периоду или группе, потом выводите.

Настройка табличного документа перед выгрузкой

От того, как построен отчёт, зависит, насколько удобной будет таблица в Excel. Правильная подготовка экономит час чистки.

Что поправить в отчёте

  1. Уберите лишние колонки и итоги в настройках отчёта (кнопка Настройки или Показать настройки). Чем проще таблица, тем легче строить по ней сводные.
  2. Отключите группировки, если нужна плоская таблица. Для анализа в Excel плоский список обычно удобнее иерархии. Если в отчёте есть переключатель вида (например, «Без группировки» или «Детальные записи»), используйте его.
  3. Не выводите шапку и заголовок отчёта там, где это возможно. Шапка с параметрами занимает несколько строк над таблицей и мешает фильтрам Excel.
  4. Проверьте период и отборы до формирования. Отчёт, сформированный на другой период, придётся делать заново.

Что учесть при печати в файл

Печатная форма (счёт, накладная, ведомость) рассчитана на бумагу. Её колонки подогнаны под ширину страницы. После сохранения в Excel ширину и переносы текста придётся поправить.

Если нужна именно таблица данных, а не бумажная форма, возьмите отчёт или вывод списка. Печатные формы для этого не предназначены.

Числа и даты

Табличный документ 1С хранит число как число, если ячейка так заполнена. Но в некоторых отчётах и печатных формах числа выведены текстом (например, с пробелами для красоты). Тогда Excel увидит строку, и сумма в такой колонке покажет ноль. Признак: данные выровнены по левому краю и в углу ячейки зелёный треугольник.

Сравнение методов экспорта данных

Сведём всё в одну таблицу, чтобы быстро выбрать.

СпособОбъёмСохраняет форматПодходит для
Ctrl+C из отчётадо нескольких тысяч строкчастичнобыстрая разовая работа
Ctrl+C из спискатолько загруженные строкинеткороткие списки
Вывод списка + сохранениелюбой, но медленно на большихчастичносправочники, журналы
Сохранение отчёта в .xlsxзависит от отчётадапередача файла коллеге, в банк, налоговую
Обработка выгрузкилюбойвы задаётерегулярные задачи, большие объёмы

Простое правило выбора: один раз и мало — буфер; один раз и нужен файл — «Сохранить как»; каждый день — автоматизация.

Решение проблем с кодировкой и форматами

Большинство жалоб после выгрузки укладывается в четыре случая. Начнём с наиболее частых.

Вместо русских букв «кракозябры»

Классика при открытии CSV или TXT двойным щелчком. Excel ждёт одну кодировку, а файл записан в другой. Файл в UTF-8 без служебной метки Excel может прочитать как Windows-1251, и наоборот.

Что делать:

  1. Не открывайте файл двойным щелчком. В Excel выберите Данные → Получить данные → Из текста/CSV (в старых версиях — Данные → Из текста).
  2. В окне предварительного просмотра смените «Источник файла» на нужную кодировку: 1251: кириллица (Windows) или 65001: Юникод (UTF-8). Пока текст не станет читаемым, подбирайте.
  3. Укажите разделитель. Для CSV из российских программ обычно точка с запятой.

Если можно выбрать, сохраняйте сразу в .xlsx: там кодировки нет совсем.

Пропали нули в начале

Код 000123, артикул 00457, ИНН физлица или номер телефона после вставки превращаются в 123, 457. Excel считает их числами и отбрасывает нули.

Исправление: до вставки отформатируйте колонку как текстовую (Формат ячеек → Текстовый). При импорте через Из текста/CSV в мастере для нужной колонки задайте тип «Текст». Для уже испорченных данных проще вставить заново, чем восстанавливать нули формулами.

Числа стали текстом, а дробная часть уехала

Два симптома одной природы:

  • Число с пробелом между разрядами (1 250 000,50) Excel может принять за текст. Причина — в 1С разделитель разрядов бывает неразрывным пробелом (код 160), а не обычным.
  • В Excel с английскими региональными настройками дробный разделитель — точка. Запятая из 1С превращает число в текст или в дату.

Лечится заменой: выделите колонку, Ctrl+H, найдите неразрывный пробел (скопируйте его из ячейки в поле поиска), заменить на пустоту. Для запятой — поменяйте региональный разделитель в Excel или замените запятую на точку.

Число превратилось в дату

Значение вида 3,5 или 1-2 Excel «из лучших побуждений» превращает в 3 мая и 1 февраля. Это неисправимо после вставки: исходное значение потеряно. Заранее задайте колонке текстовый формат, как для нулей.

Если вы сохраняете выгрузку для загрузки в другую систему, перед отправкой откройте файл и проверьте первые и последние строки, суммы по колонкам и количество строк. Сравните их с исходным отчётом в 1С. Разница в один знак в ИНН или артикуле потом обходится дорого.

Автоматизация выгрузки через внешние обработки

Когда выгрузка нужна регулярно или данных слишком много для ручных операций, пишут обработку. Обработка — файл .epf, который открывается без изменения конфигурации: Файл → Открыть (если пункт скрыт, включите его в настройках интерфейса).

Самый надёжный вариант: запись табличного документа в файл

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

Запрос = Новый Запрос;
Запрос.Текст =
	"ВЫБРАТЬ
	|	Номенклатура.Код КАК Код,
	|	Номенклатура.Наименование КАК Наименование
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|УПОРЯДОЧИТЬ ПО
	|	Номенклатура.Наименование";

Выборка = Запрос.Выполнить().Выбрать();

Таблица = Новый ТабличныйДокумент;
Таблица.Область(1, 1).Текст = "Код";
Таблица.Область(1, 2).Текст = "Наименование";

НомерСтроки = 2;
Пока Выборка.Следующий() Цикл
	Таблица.Область(НомерСтроки, 1).Текст = Выборка.Код;
	Таблица.Область(НомерСтроки, 2).Текст = Выборка.Наименование;
	НомерСтроки = НомерСтроки + 1;
КонецЦикла;

Таблица.Записать("C:\Выгрузка\номенклатура.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Код записан в текстовом виде, поэтому код номенклатуры с нулями сохранится как строка. Для больших объёмов цикл с обращением к ячейкам работает медленно. Тогда формируют область из макета и заполняют её параметрами, либо пишут CSV через текстовый документ.

Запись в CSV с нужной кодировкой

Если приёмная система требует CSV, используйте ТекстовыйДокумент: добавляйте строки через ДобавитьСтроку, а при записи задавайте кодировку вторым параметром метода Записать, например ТекстДок.Записать(Путь, КодировкаТекста.ANSI) для Windows-1251 или КодировкаТекста.UTF8. Разделитель между значениями склеивайте сами, и заключайте текст в кавычки, если в нём может быть точка с запятой.

Прямая передача в открытый Excel через COM

Обработка может запустить Excel как COM-объект и заполнить ячейки. На компьютере должен быть установлен Excel, а код нужно выполнять на клиенте. Для веб-клиента и сервера этот путь обычно закрыт. Поэтому, если нет особой причины, запись файла проще и устойчивее.

Регулярный запуск

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

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

Перед выгрузкой в Excel
Выполнено: 0 / 5

Частые вопросы

Почему в Excel попало меньше строк, чем в списке 1С?
Список в 1С подгружается порциями, и Ctrl+A берёт только загруженную часть. Используйте Вывести список..., предварительно задав отбор.
Можно ли сохранить отчёт 1С в Excel вместе с расшифровками?
Нет. Файл хранит значения, а ссылки на документы 1С остаются только в самом отчёте. Нужные расшифровки выведите в отдельные колонки отчёта.
Почему формулы Excel не считают выгруженные суммы?
Скорее всего, числа выгрузились текстом: в ячейке неразрывный пробел или запятая вместо точки при английских настройках Excel. Уберите пробел заменой и проверьте региональные настройки.
Какой формат лучше для передачи данных коллеге?
.xlsx: нет проблем с кодировкой, форматирование сохраняется, лимита на 65 536 строк нет.
Как скопировать только значения без формата в Excel?
Вставьте через Специальная вставка → Значения (или Ctrl+Alt+V, затем «Значения»). Заливка и границы из 1С не перенесутся.
Работает ли копирование в веб-клиенте?
Да, буфер обмена доступен, но браузер может запросить разрешение. Сохранённый файл браузер положит в папку загрузок.