Выгрузка таблиц, отчётов и справочников из 1С в Excel

· 9 мин

Содержание

Любой список, отчёт или справочник в 1С 8.3 выгружается в Excel двумя короткими путями: из формы списка через кнопку Еще → Вывести список, а из готового отчёта или печатной формы — через Главное меню → Файл → Сохранить как с выбором типа файла Лист Microsoft Excel 2007 (*.xlsx). Этого хватает в девяти случаях из десяти.

Остальное — нюансы: как выбрать нужные колонки, что поставить в разделителях для .csv, почему при открытии выгрузки появляются «кракозябры» и как достать данные пачкой или вообще без рук, через код. Ниже — все рабочие способы для интерфейса «Такси» (платформа 8.3), от самого быстрого к самому гибкому.

Самый быстрый способ: сохранить таблицу или отчёт

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

  1. Нажмите Главное меню → Файл → Сохранить как (значок с дискетой в правом верхнем углу тоже открывает это окно).
  2. В поле Тип файла выберите Лист Microsoft Excel 2007 (*.xlsx). Для совместимости со старыми версиями Office есть Лист Microsoft Excel (*.xls).
  3. Укажите папку и имя, нажмите Сохранить.

Файл откроется в Excel с сохранённой разметкой: объединённые ячейки, рамки, группировки строк (плюсики слева) переносятся как есть.

Так же сохраняется любая печатная форма — счёт, накладная, акт. Сформируйте печать документа, и в открывшемся табличном документе будет доступно то же Файл → Сохранить как. Это удобно, когда контрагент просит счёт «в экселе», а не в PDF.

Если нужна только часть таблицы, выделите мышью нужные ячейки прямо в 1С, нажмите Ctrl+C и вставьте в открытый лист Excel через Ctrl+V. Это удобно, когда из большого отчёта нужны три строки. При вставке через Ctrl+V переносятся значения и часть оформления, но не формулы — в 1С их и нет, все суммы уже посчитаны.

Сохраняйте в .xlsx, а не в .xls: старый формат режет таблицу на 65 536 строк и портит длинные числовые коды.

Выгрузка списка: справочники и документы пачкой

Содержимое любого журнала документов или справочника (контрагенты, номенклатура, сотрудники) выгружается целиком, не открывая карточки по одной.

  1. Откройте нужный список, например Справочники → Номенклатура или Продажи → Реализация (акты, накладные).
  2. При необходимости отфильтруйте строки — выгрузится то, что видно на экране с учётом отбора.
  3. Нажмите кнопку Еще в командной панели списка и выберите Вывести список.
  4. В открывшемся окне оставьте тип Табличный документ, галочками отметьте нужные колонки и нажмите ОК.

1С построит табличный документ из выбранных строк. Дальше сохраняете его в Excel способом из первого раздела — через Файл → Сохранить как.

Порядок строк в выгрузке повторяет сортировку списка на экране. Хотите, чтобы в Excel контрагенты шли по алфавиту или документы по дате, — отсортируйте список кликом по заголовку нужной колонки перед тем, как нажать Вывести список. Переставлять строки в самом Excel потом не придётся.

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

Отбор работает как фильтр выгрузки: отметьте в списке контрагентов только нужную группу или задайте отбор по периоду в журнале документов — и в Excel уйдут именно эти записи.

Если нужной колонки в списке нет, её часто можно добавить до выгрузки. Нажмите Еще → Изменить форму, в дереве элементов найдите таблицу списка и включите скрытые реквизиты галочками. После этого они появятся и в форме, и в окне Вывести список. Так в выгрузку номенклатуры добавляют, например, артикул или ставку НДС, которых в стандартном виде списка не видно.

Этот способ выгружает справочники и документы именно пачкой: одним действием уходит весь видимый список, а не выбранная строка. Для разовой задачи — быстро отдать бухгалтеру перечень контрагентов или номенклатуры — он закрывает тему целиком.

Выбор формата файла и настройка разделителей

Окно Сохранить как предлагает не только Excel. Полный список форматов и когда какой брать:

ФорматРасширениеКогда использовать
Лист Excel 2007.xlsxОсновной вариант, сохраняет оформление
Лист Excel.xlsТолько для очень старого Office
Табличный документ.mxlЧтобы снова открыть в 1С
Текст.txtПростой текст без оформления
CSV с разделителями.csvЗагрузка в другие программы, базы, выгрузки по API
Документ ODF.odsДля LibreOffice / OpenOffice
PDF.pdfЧтобы получатель не менял цифры

Для .xlsx настраивать нечего — оформление переносится автоматически. А вот .csv и .txt требуют внимания к разделителям.

CSV — это текст, где значения колонок разделены символом. По умолчанию 1С ставит разделителем точку с запятой (;), потому что запятая в русской локали занята под десятичные дроби. Если принимающая программа ждёт запятую — поменяйте разделитель в её настройках импорта, а не в 1С.

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

Excel открывает .csv по локали системы. Если при двойном клике весь ряд лезет в одну ячейку — зайдите в Excel Данные → Из текста/CSV, укажите разделитель ; и кодировку вручную. Так данные лягут по колонкам правильно.

Когда выгрузку забирает не человек, а другая программа, формат согласуют заранее: какой разделитель колонок, какой десятичный знак, какая кодировка (чаще всего просят UTF-8). Проще всего зафиксировать это в коде выгрузки, а не настраивать Excel на каждой машине.

Гибкая выгрузка через универсальный отчёт

Когда в списке нет нужных колонок или данные надо собрать по своим условиям, помогает Отчеты → Универсальный отчет. Он вытаскивает в таблицу любой справочник, документ, регистр или его движения.

Порядок настройки:

  1. Откройте Отчеты → Универсальный отчет.
  2. В шапке выберите источник: тип данных (справочник, документ, регистр накопления), конкретный объект и его таблицу (Основные данные, Товары, движения регистра).
  3. Нажмите Настройки, перейдите на вкладку выбора полей и добавьте нужные реквизиты в таблицу.
  4. На вкладке отборов задайте условия — период, организацию, группу номенклатуры.
  5. Нажмите Сформировать, проверьте результат и сохраните его в Excel через Файл → Сохранить как.

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

Короткий пример. Нужна таблица «номенклатура — склад — остаток» на конец месяца. В шапке универсального отчёта выбираете тип Регистр накопления, регистр Товары на складах, таблицу Остатки. В настройках задаёте период и добавляете поля Номенклатура, Склад, Количество. Формируете, сохраняете в .xlsx — и получаете готовую сводку, которую обычной выгрузкой списка собрать нельзя, потому что остатки хранятся в регистре, а не в справочнике.

Названия регистров и доступные таблицы отличаются по конфигурациям, но сам путь Отчеты → Универсальный отчет и логика «источник → поля → отбор → сформировать» одинаковы в Бухгалтерии, ЗУП и Управлении торговлей.

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

Что делать с «кракозябрами» и съехавшими числами

Три типичные проблемы при открытии выгрузки — и их причины.

Вместо русских букв — символы вроде Товар. Это несовпадение кодировки. Возникает только с текстовыми форматами (.csv, .txt): 1С пишет файл в одной кодировке, Excel читает в другой. Решение — сохранять сразу в .xlsx, где кодировка не важна. Если .csv нужен обязательно, открывайте его в Excel через Данные → Из текста/CSV и выбирайте кодировку UTF-8 или Windows (кириллица 1251) вручную, пока текст в превью не станет читаемым.

Длинный код превратился в 1,23E+14. Excel считает длинные числа (ИНН, штрихкоды, номера счетов) числом и показывает в экспоненциальном виде, а ведущие нули просто отбрасывает. Это особенность Excel, а не 1С. Лечится форматом ячеек: перед вставкой задайте колонке текстовый формат, либо при импорте .csv отметьте такие столбцы как «Текст».

Даты и суммы «съехали» по колонкам. Признак того, что .csv открыли двойным кликом, а разделитель системы не совпал с разделителем в файле. Используйте импорт через Данные → Из текста/CSV с явным указанием разделителя.

Не редактируйте выгруженный .csv в Блокноте и не пересохраняйте его — так легко потерять кодировку. Правьте уже в Excel и сохраняйте в .xlsx.

Автоматизация: выгрузка из кода и через COM

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

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

Этого достаточно, чтобы складывать готовые отчёты в папку без участия пользователя — например, из регламентного задания. Доступные типы файла задаются перечислением ТипФайлаТабличногоДокумента: XLSX, XLS, ODS, PDF, CSV и другие.

Второй подход — управлять самим Excel через COM-объект Excel.Application. Он нужен, когда файл надо не просто сохранить, а дописать в существующую книгу, расставить формулы или форматирование:

Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);
Лист.Cells(1, 1).Value = "Контрагент";
Лист.Cells(1, 2).Value = "Сумма";
Книга.SaveAs("C:\Выгрузки\Книга.xlsx");
Excel.Quit();

Для работы Excel.Application на сервере должен быть установлен Microsoft Office. В клиент-серверном варианте регламентное задание выполняется на сервере — Office нужен именно там, а не на компьютере пользователя.

Чтобы выгрузка шла по расписанию, метод Записать вызывают из регламентного задания: в клиент-серверной базе оно отрабатывает на сервере в заданное время и складывает файл в сетевую папку. Пользователю не нужно ничего нажимать — к утру отчёт уже лежит на диске.

Для обратной задачи — когда внешняя программа сама забирает данные из 1С — используют COM-соединение через V83.COMConnector. Но для простой периодической выгрузки метода ТабДок.Записать почти всегда хватает, и он надёжнее, потому что не зависит от установленного Office.

Выбор между подходами простой: нужно отдать готовую таблицу или отчёт в файл — ТабДок.Записать; нужно построить книгу Excel со своей структурой, формулами и несколькими листами — COM-объект Excel.Application; нужно, чтобы данные тянула сторонняя система — COM-соединение к базе.

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

Можно ли выгрузить в Excel сразу несколько справочников одним файлом?
Штатно — нет, Вывести список работает с одним открытым списком. Соберите каждый по очереди на отдельный лист книги Excel вручную либо напишите обработку, которая выводит несколько таблиц в один табличный документ и сохраняет методом Записать.
Почему кнопка `Вывести список` неактивна или её нет?
Либо список пустой, либо у вашей роли нет права на вывод. Право «Вывод» (печать, сохранение, копирование) настраивает администратор в профиле группы доступа — если его сняли из соображений безопасности, выгрузка будет заблокирована для всех форм.
Сохранится ли группировка строк и итоги из отчёта?
Да. При сохранении в .xlsx группировки переносятся как сворачиваемые строки Excel (плюсики слева), а итоговые строки остаются на своих местах. В .csv оформление теряется — там только значения.
Как выгрузить не весь список, а только отмеченные строки?
Задайте отбор в самой форме списка (по периоду, организации, группе) перед нажатием Вывести список — выгрузится ровно то, что осталось на экране после фильтра.
Файл сохранился, но при открытии Excel пишет про повреждённый формат — что делать?
Чаще всего это .xls с числом строк больше 65 536 либо файл, который антивирус дорезал. Пересохраните из 1С в .xlsx и проверьте, что путь сохранения не в защищённой системной папке.