Как выгрузить из 1С в Excel
Выгрузка идёт в два шага: сначала данные должны оказаться в табличном документе (так в 1С называется таблица, похожая на лист Excel), потом табличный документ сохраняется в файл Excel.
Получить табличный документ
Отчётсформируйте его
Сформированный отчёт — это уже табличный документ. Откройте отчёт и нажмите Сформировать.
Список справочника или документоввыведите список
Любой список — товаров, контрагентов, документов — можно вывести в табличный документ:
- Откройте список и выберите Ещё → Вывести список….
- Отметьте колонки, которые нужны, и нажмите «ОК».
Откроется табличный документ со списком. Выводятся те строки, что видны в списке с учётом отбора. Чтобы выгрузить только часть, сначала установите отбор или найдите нужное поиском.
Сохранить в Excel
- Нажмите кнопку сохранения (значок дискеты) или выберите в главном меню Файл → Сохранить как….
- В поле типа файла выберите лист Excel (
*.xlsx), задайте имя и нажмите «Сохранить».
Файл откроется в Excel, LibreOffice Calc и других табличных программах. Формат *.xls нужен только для очень старых версий Excel.
Быстро — копированием
Выделите ячейки отчёта мышью (или все — Ctrl+A), скопируйте Ctrl+C и вставьте в Excel Ctrl+V. Для небольших таблиц это быстрее всего, но оформление и числовые форматы могут перенестись не полностью.
В учебной версии платформы сохранять табличные документы в файл можно только в конфигураторе, а копировать из отчёта — не больше одной ячейки. В рабочих версиях этих ограничений нет.
Из кода
Программист может сохранить табличный документ в файл методом Записать:
&НаСервереБезКонтекста
Процедура ВыгрузитьТовары()
ТабДок = Новый ТабличныйДокумент;
ТабДок.Область("R1C1").Текст = "Код";
ТабДок.Область("R1C2").Текст = "Товар";
НомерСтроки = 1;
Выборка = Справочники.Товары.Выбрать();
Пока Выборка.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;
Ряд = Формат(НомерСтроки, "ЧГ=0");
ТабДок.Область("R" + Ряд + "C1").Текст = Выборка.Код;
ТабДок.Область("R" + Ряд + "C2").Текст = Выборка.Наименование;
КонецЦикла;
ТабДок.Записать("C:\Temp\tovary.xlsx", ТипФайлаТабличногоДокумента.XLSX);
КонецПроцедурыОбласть("R2C1")— ячейка: строка 2, колонка 1.Формат(НомерСтроки, "ЧГ=0")обязателен: без него номер 1000 превратится в «1 000», и адрес ячейки сломается.Текстзаписывает в ячейку строку. Для чисел, с которыми нужно считать в Excel, удобнее выгрузить готовый отчёт, как описано выше.- Код выполняется на сервере, поэтому и файл пишется на сервере. В файловом варианте это ваш же компьютер, а у клиент-серверной базы файл появится на сервере 1С:Предприятия — оттуда его нужно передать пользователю.
Если в Excel всё в одной колонке или числа как текст
- Сохраняйте именно в
*.xlsx, а не в текстовый формат*.txtили*.csv. - Если числа выгрузились текстом (выровнены влево, не суммируются), выделите колонку в Excel и преобразуйте текст в числа. В отчётах 1С так бывает, когда в ячейке не число, а строка с пробелами между разрядами.