Выгрузка отчётов и списков из 1С в файл Excel: способы, форматы, ошибки
Содержание
Чтобы сохранить книгу Excel из 1С, сформируйте отчёт, нажмите на панели отчёта кнопку с дискетой «Сохранить» (или Ctrl+S) и в поле «Тип файла» выберите Лист Microsoft Excel 2007-... (*.xlsx). Для списка документов или справочника сначала выполните Ещё → Вывести список..., а уже получившуюся таблицу сохраните тем же способом. Способ общий для платформы 8.3 и одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на интерфейсе «Такси».
Типичная ситуация: главбух просит оборотно-сальдовую ведомость по 60 счёту «в Экселе», чтобы отфильтровать поставщиков с сальдо больше 100 000 ₽. Пять минут — и файл готов. Сложности начинаются, когда в книге пропадают ведущие нули в кодах, суммы не складываются, а выгружать нужно каждый понедельник. Для каждого из этих случаев есть своё решение.
Штатные способы сохранить данные 1С в Excel
У платформы 1С 8.3 есть один универсальный объект для вывода таблиц — табличный документ. Отчёты, печатные формы и «выведенные» списки — это он. А табличный документ платформа умеет записывать в Excel сама, без обработок и надстроек.
Отчёт или печатная форма
- Откройте отчёт, задайте период и отборы, нажмите
Сформировать. - Нажмите кнопку с дискетой на панели над таблицей или
Ctrl+S. Если кнопки не видно, она есть в менюЕщё. - В окне сохранения укажите папку и имя файла.
- В поле «Тип файла» выберите
Лист Microsoft Excel 2007-... (*.xlsx). - Нажмите
Сохранить.
Печатные формы (счёт, акт, ТОРГ-12, расчётный листок) сохраняются так же. В форме печати кнопка сохранения тоже изображена дискетой, и в ней можно сразу выбрать формат.
Список документов, справочник, регистр
Журнал документов или справочник контрагентов — это динамический список, а не табличный документ. Его сохраняют в два шага:
- В списке настройте отбор и колонки, которые нужны в файле.
- Выполните
Ещё → Вывести список.... - В окне вывода отметьте нужные колонки, оставьте «Выводить в: Табличный документ» и нажмите
ОК. - В открывшейся таблице нажмите
Ctrl+Sи выберите формат xlsx.
Табличная часть документа (например, товары в реализации на 300 строк) выгружается так же: щёлкните правой кнопкой по таблице товаров или откройте её меню Ещё и выберите Вывести список....
Быстрый путь через буфер обмена
Когда нужен кусок отчёта, а не весь файл, проще скопировать:
- Выделите в отчёте нужные ячейки мышью или всю таблицу через
Ctrl+A. - Нажмите
Ctrl+C. - В пустом листе Excel нажмите
Ctrl+V.
Числа и даты при этом обычно вставляются как значения, а оформление переносится частично. Для больших отчётов на десятки тысяч строк надёжнее сохранить файл : буфер на таких объёмах работает медленно.
Какой формат файла выбрать при сохранении
В списке «Тип файла» несколько вариантов. Под Excel подходят не все одинаково.
| Формат | Когда выбирать | Ограничения |
|---|---|---|
*.xlsx (Excel 2007 и новее) | Почти всегда | До 1 048 576 строк на лист |
*.xls (Excel 97) | Получатель работает в очень старом Excel | До 65 536 строк, больше не поместится |
*.ods | Получатель работает в LibreOffice | В Excel открывается, но оформление может съехать |
*.csv, *.txt | Загрузка в другую программу, банк-клиент, скрипт | Нет оформления, есть риск ошибки кодировки |
*.pdf | Файл только для чтения и печати | Таблицу не отфильтровать |
Если в оборотке за год получилось больше 65 536 строк, а сохраняли в xls, хвост таблицы просто не попадёт в файл. Проверьте последнюю строку книги, прежде чем отправлять её дальше.
Как подготовить отчёт, чтобы книга Excel была удобной
Что видно на экране 1С, то и уходит в файл. Поэтому настраивать лучше отчёт, а не готовую книгу.
Группировки и итоги
Свёрнутые группировки (плюсики слева) сохраняются в Excel как структура: книга откроется с теми же уровнями, которые можно разворачивать кнопками 1, 2, 3 над номерами строк. Для фильтрации и сводных таблиц это неудобно. Перед сохранением:
- 📌 в настройках отчёта уберите лишние уровни группировки или разверните все группы;
- 📌 оставьте один уровень детализации, если дальше будете строить сводную таблицу;
- 📌 отключите промежуточные итоги, если их всё равно посчитает Excel.
Шапка, отборы и пустые колонки
Многие отчёты выводят над таблицей заголовок, период и список отборов. Для печати это полезно, для анализа мешает: автофильтр Excel не поймёт, где начинается таблица. В настройках большинства стандартных отчётов есть флажки, отвечающие за вывод заголовка и отборов, — снимите их перед сохранением.
Объединённые ячейки
Шапки отчётов часто собраны из объединённых ячеек. В Excel они ломают сортировку и автофильтр. Если книгу будут обрабатывать, после открытия выделите шапку и снимите объединение кнопкой Главная → Объединить и поместить в центре.
Кракозябры, числа-текст и пропавшие нули: разбор проблем
Формат xlsx хранит текст в Юникоде, поэтому при обычном сохранении отчёта кириллица не ломается. Иероглифы и знаки «Ð¡Ñ‡Ñ‘Ñ‚» появляются почти всегда при работе с CSV и TXT: 1С записала файл в одной кодировке, а Excel открыл его в другой.
Данные → Из текста/CSV, выберите файл и в поле «Источник файла» перебирайте кодировки: 65001: Юникод (UTF-8) или 1251: Кириллица (Windows). Нужная — та, при которой предпросмотр читается.Данные → Текст по столбцам → Готово.Длинные числа, например номера банковских карт или счетов из 20 цифр, Excel хранит с точностью до 15 знаков. Если такой столбец превратился в число, последние цифры заменятся нулями без предупреждения. Держите такие поля текстом.
Сложная выгрузка в Excel: внешняя обработка и код
Штатного сохранения хватает, пока нужен один отчёт на один лист. Если требуется выгрузка произвольной выборки, несколько листов или формулы в ячейках, пишут внешнюю обработку (файл .epf). Её подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки или открывают через Файл → Открыть в главном меню, если у пользователя есть на это права.
Вариант 1: запрос → табличный документ → файл
Самый надёжный способ работает и на клиенте, и на сервере, Excel на компьютере для него не нужен:
&НаСервере
Процедура ВыгрузитьНаСервере(ИмяФайла)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ЭтоГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ТабДок = Новый ТабличныйДокумент;
ТабДок.Область(1, 1).Текст = "Наименование";
ТабДок.Область(1, 2).Текст = "ИНН";
НомерСтроки = 1;
Пока Выборка.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;
ТабДок.Область(НомерСтроки, 1).Текст = Выборка.Наименование;
ТабДок.Область(НомерСтроки, 2).Текст = Выборка.ИНН;
КонецЦикла;
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
КонецПроцедуры
ИНН здесь записывается как текст, поэтому ведущие нули не потеряются. Для числовых колонок в реальной обработке задают ячейке числовое значение, а не строку, иначе получите проблему «числа-текст» из раздела выше.
Метод Записать() с параметром ТипФайлаТабличногоДокумента.XLSX — тот же механизм, что работает при нажатии кнопки сохранения. Если процедура выполняется на сервере, путь ИмяФайла указывает на диск сервера, а не на компьютер пользователя.
Вариант 2: управление Excel через COM
Когда нужны формулы, несколько листов или условное форматирование, обработка может управлять самим Excel через COM-объект Excel.Application. У этого способа жёсткие условия:
- 🖥️ на компьютере, где выполняется код, установлен Microsoft Excel;
- 🖥️ код работает на клиенте под Windows, в веб-клиенте и на Linux он не запустится;
- 🐢 запись ячеек по одной медленная: на 50 000 строк уйдут минуты.
На сервере 1С так делать не стоит: Excel не рассчитан на работу как служба, процессы зависают и копятся в памяти. Для серверной выгрузки используйте вариант 1.
Выгрузка отчётов в Excel по расписанию
Если один и тот же отчёт нужен каждую неделю, вручную его можно не сохранять.
Рассылка отчётов
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть механизм рассылок. Его включают флажком в Администрирование → Печатные формы, отчеты и обработки. В рассылке задают:
- Какие отчёты и с какими настройками формировать.
- Формат вложения — выберите Excel 2007 (xlsx).
- Куда доставлять: в папку, в сетевой каталог или по электронной почте.
- Расписание: например, каждый понедельник в 07:00.
Рассылка выполняется регламентным заданием. В файловой базе такие задания отрабатывают только пока в базе работает хотя бы один пользователь. В клиент-серверном варианте их запускает сервер 1С сам, по расписанию.
В клиент-серверной базе сетевой каталог для рассылки указывают в формате \\server\share, и права на запись нужны учётной записи, под которой работает служба сервера 1С, а не пользователю.
Своё регламентное задание
Когда возможностей рассылки не хватает (нестандартная выборка, имя файла с датой, складывание в архив), программист добавляет регламентное задание в расширение конфигурации. Код задания строит табличный документ, как в варианте 1, и записывает его методом Записать() в папку на сервере. Типовую конфигурацию при этом не снимают с поддержки — правки живут в расширении.
Безопасность данных в выгруженных файлах Excel
Книга Excel, сохранённая из 1С, живёт уже без прав доступа программы. Расчётная ведомость из ЗУП, отправленная по почте, — это персональные данные сотрудников за пределами защищённой базы. Работа с ними подпадает под 152-ФЗ «О персональных данных».
Что стоит настроить:
- 🔒 Право «Вывод». В 1С есть отдельное право, которое разрешает печать, сохранение в файл и копирование в буфер. Администратор может отключить его для ролей, которым выгружать данные не нужно. Без него пользователь видит отчёт на экране, но сохранить его не может.
- 🔒 Пароль на книгу. Сама 1С при сохранении пароль не ставит. Зашифруйте файл в Excel:
Файл → Сведения → Защита книги → Зашифровать с использованием пароля. Пароль передавайте другим каналом, не в том же письме. - 🔒 Папки рассылок. Каталог, куда регламентное задание складывает отчёты, должен быть доступен только тем, кому они предназначены.
- 🔒 Временные файлы. Если в окне печати нажать «Открыть в Excel» вместо сохранения, копия может остаться во временной папке пользователя. На общих компьютерах это утечка.
Не отправляйте выгрузки с паспортными данными и зарплатами сотрудников в незашифрованном виде через личную почту и мессенджеры.
Частые вопросы
Можно ли сохранить из 1С сразу несколько листов в одну книгу Excel?
Как сохранить отчёт в Excel из веб-клиента 1С?
Почему кнопка сохранения в отчёте неактивна?
Сохраняются ли в Excel расшифровки отчёта?
Можно ли выгрузить в Excel всю базу 1С целиком?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»