1с как сохранить табличный документ в excel
Перейти к содержимому

1с как сохранить табличный документ в excel

  • автор:

Совет: Как выгрузить таблицу, справочник или документ из 1С 8.3 в Excel?

У большинства пользователей 1С может возникнуть необходимость перенести информацию из базы 1С в таблицы Microsoft Excel. Например, выгрузить список номенклатуры из программы 1С:Управление торговлей 8, или список сотрудников из 1С:Зарплата и управление персоналом 8. Такой список удобно редактировать, распечатать или переслать по электронной почте. Все программы на платформе 1С:Предприятие 8.3 имеют одинаковый алгоритм выгрузки информации в таблицу Excel, который укладывается в несколько простых действий.

Программы 1С:Предприятие 8.3 – это, в том числе, конфигурации 1С:Бухгалтерия 3.0, 1С:ЗУП 3.1, 1С:Управление торговлей 11.4, и другие. Это разные программы для различных учетных целей, но с одинаковым интерфейсом и одной логикой разработки.

Для примера мы выгрузим в Excel справочник сотрудников из программы 1С:ЗУП 8 редакции 3.1. Используя тот же алгоритм можно выгрузить из программы любую информацию, которая сгруппирована в таблицы – табличные части документов, списков, справочников.

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

Справа над над табличной частью окна расположена кнопка Еще, при нажатии на которое появится меню. Команда, которая формирует из списка таблицу привычного формата – Вывести список.

вывести список из таблицы 1С 8.3

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

выбрать колонки для выгрузки в Excel из 1С

В результате откроется новое окно, в котором из выбранной информации будет сформирована таблица. Благодаря аналогичному форматированию из таблицы 1С можно копировать части прямо в табличный процессор MS Excel, либо сохранить эту таблицу как отдельный файл. Для этого нажмите на 3 точки в правом верхнем углу таблицы, затем Файл, команда Сохранить как.

сохранить таблицу из 1С как excel

После нажатия на кнопку появится стандартное окно проводника Windows, где нужно будет указать путь размещения файла и его тип. При этом не забудьте выбрать нужный формат сохраняемой таблицы: *.xlsx, чтобы сохранить для современных версий Excel, или *.xls, чтобы файл можно было открыть в старых версиях Excel 2003 года или более ранних. Также на выбор доступны и другие форматы таблиц.

сохранить как таблицу Excel данные из 1С

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

Табличный документ сохранить в Excel

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

  • Сформировать печатную форму в 1С;
  • Сохранить данные как лист Excel (Рис.1)или скопировать таблицу;
  • Продолжить работу с информацией в другой программе.

И, нередко, у них возникает вопрос: как осуществить непосредственную выгрузку информации из 1С в Excel, минуя дополнительные шаги?

Два главных требования, которые должны быть выполнены

Для безошибочного функционирования нашей обработки, необходимо:

  1. Чтобы на компьютере пользователя был установлен Microsoft Office и, в частности, Excel (мы будем подключаться к приложению посредством создания COM-объекта);
  2. Представлять себе структуру хранения данных в Excel (понимать, как формируются имена ячеек, знать, что такое лист, книга и т.д.).

Только убедившись, что два этих пункта выполнены, следует приступать к дальнейшей разработке.

Алгоритм при выгрузке и его реализация в 1С

Последовательность действий при выгрузке из 1С в Excel можно представить следующей последовательностью шагов:

  1. Формируем набор данных, которые необходимо сохранить в Excel;
  2. Создаем подключение к приложению (запускаем его);
  3. Заполняем файл выгружаемыми данными;
  4. Сохраняем файл;
  5. Закрываем открытое приложение.

Теперь по этому списку подробнее.

Формирование набора данных

В качестве источника данных может выступать результат выполнения запроса, печатная форма табличного документа, любая выборка элементов. В нашем случае мы будем выгружать реестр документов «Поступление товаров и услуг» за текущий месяц (Рис.2)

Осуществляем программный запуск приложения

Как было сказано выше, для того, чтобы запуститься, мы будем использовать режим Com-соединения. Код на Рис.3 показывает, как это можно осуществить.

Процедуру создания нового объекта мы сознательно вставили в конструкцию Попытка — Исключение-КонецПопытки, для того, чтобы исключить всевозможные нестандартные ситуации в дальнейшем ходе обработки.

Заполнение файла, его сохранение и завершение работы приложения

В первую очередь следует определиться, что мы хотим сделать: выгрузить данные в существующий файл или создать новый:

  • В первом случае нам необходимо запустить диалог выбора файла и получить полное имя существующего хранилища информации;
  • Во втором случае мы должны самостоятельно придумать имя создаваемого файла и определиться с его местоположением (именно из этих двух слагаемых будет создано имя файла).

Решив, где мы будем хранить наши данные, приступим к непосредственному заполнению файла , для этого создадим процедуру и передадим в нее в качестве параметра нашу выборку документов за текущий месяц. (Рис.4)

Как видно из кода, в первую очередь мы создали книгу, в которой будет храниться наша таблица. По умолчанию программа Excel при первом запуске создает в книге три листа. Для внесения данных мы можем выбрать любой из них, просто указав номер листа в качестве параметра для метода WorkSheets(). Если же нам понадобилось бы добавить новый лист в книгу, мы должны бы были записать строку вида:

На этом мы закончили формировать общую структуру документа и приступаем к его заполнению.

Циклом со счетчиком перебираем строки и колонки нашей таблицы значений, для получения данных конкретной ячейки и их переноса в конечную таблицу.

Здесь важно иметь ввиду, что индексы строк и колонок таблицы значения в 1С начинаются с 0 и заканчиваются на числе на 1 меньшем, чем количество этих строк и колонок, а нумерация строк и колонок ячеек в Exel начинается с 1.

Перебрав нашу таблицу и перенеся её в новое место, мы должны сохранить созданный файл. Параметр ПутьКФайлу, указанный в процедуре SaveAs, должен содержать полный путь к файлу, включая его имя.

Если на компьютере установлен Microsoft Office версии 2007 года или более поздний, у Вас, вероятно, может возникнуть необходимость в сохранении табличного документа в формате Excel 2003, программно это можно сделать, если указать в качестве второго параметра процедуры SaveAs значение (-4143). Именно это число указывает на формат сохраняемого файла, соответсвующий расширению xls.

В случае ошибки (допустим сохраняемый файл уже открыт), наша обработка должна предупредить пользователя о нестандартной ситуации, что и прописано в процедуре Сообщить().

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

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

Еще один способ выгрузки — непосредственное сохранение табличного документа на диск без его вывода на экран или перед выводом, код соответствующей процедуры показан на (Рис.5).

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

Сохранение табличного документа в EXCEL (xlsx) с форматом ячеек Число, Дата, Дата время

  • Скрин1.png
  • Скрин2.png

Для решения проблемы можно например использовать EXCEL через ком объект, но это замедляет работу. Да и сам Microsoft не рекомендует использовать ком объект EXCEL в серверных приложениях.

Можно напрямую писать весь документ, лист, в формат Office Open XML, работая как с xml файлом. Но тогда нужно в нем разбираться, понимать, знать. А самое главное поддерживать, вносить изменения, новые разработчики должны тоже уметь и т.д.

В данной статье предлагается простое универсальное решение:

Если нужно, чтобы при сохранении у ячейки табличного документа, в файле excel было число, делаем так:

2. Дата, Дата время.
Тут сложнее, предлагается способ с небольшой пост обработкой стилей xlsx файла, универсальным методом.

Ниже подробнее, по шагам рассмотрим весь способ.

2.1 Формат дата в EXCEL.

На самом деле в EXCEL, на уровне хранения данных, нет понятия даты или времени.

Все хранится как число, обозначающее количество дней с 1 января 1900 г.

А понимает EXCEL что это дата или время и т.д., с помощью форматных строк.

У ячеек есть понятие формата.

Из пункта 1, мы умеем сохранять формат число , через Табличный документ.

Таким образом реализовав простой метод, который будет конвертировать дату 1С, в число по стандартам EXCEL.

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

И делать это все привычными средствами 1С, пример:

Остается только указать нужный нам формат даты.

Для этого мы будем использовать Имя шрифта.

Так как оно будет записано в файл стилей, как обычная строка.

При этом мы запомним, какие шрифты, на какие форматы мы заменили, что бы потом обратно сделать подмену.

Дополним наш код выше примером:

2.2 Универсальное редактирование стилей в файле XLSX.

Все стили у формата Office Open XML хранятся в xl\styles.xml.

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

Нам остается лишь:

-Тем стилям которые ссылаются на такой шрифт, указать форматную строку.

-Вернуть корректное имя шрифта.

Это можно обернуть в универсальный метод:

Внутри которого реализована модификация xl\styles.xml

Под спойлером пример кода, с реализацией всех методов, можно использовать по лицензии MIT.

Для запуска примера можно:

1.Создать внешнюю обработку.

2.Добавить форму, в модуль формы скопировать весь код под спойлером.

3.Добавить команду и на ее вызов повесить СформироватьПример().

4.По пути "C:\Пример.xlsx" будет создан пример xlsx файла из табличного документа, с форматами.

Для удобства можно объявить все как "НаКлиенте".

Цель кода показать пример, сам код каждый может изменить под себя:

Специальные предложения

Electronic Software Distribution

Маркировка 488-ФЗ

Интеграция 1С с системой Меркурий

Готовые переносы данных

Алкогольная декларация

54-ФЗ

Инструментарий разработчика

Маркетплейсы и 1С

Траектория обучения 1С-разработчика

Управление проектом на Инфостарте

Просмотры 4206

Загрузки 0

Рейтинг 19

Создание 26.07.21 10:10

Обновление 26.07.21 10:10

№ Публикации 1486726

Тип файла Нет файла

Платформа 8.3.14

Конфигурация Не имеет значения

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Бесплатно (free)

Код открыт Да

См. также

Копирование числовых ячеек из 1С в Excel Промо

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019 38972 itriot11 27

Выгрузка данных в Excel с добавлением формул (нюансы формирования формул)

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

30.05.2022 725 Zlohobbit 2

Выгрузка / Загрузка регистра сведений из внешней системы с большим количеством строк

Часто возникает задача, когда уже вся НСИ загружена и необходимо перегрузить регистры сведений с большим количеством строк (около миллиона строк). Перегрузка может быть из любой информационной системы (на 1С или нет). Для себя определил максимальной быстрый вариант выгрузки/загрузки — через файл Excel с учетом возможности предварительной правки и просмотра результата загрузки.

28.01.2022 1227 Shining_ninja 4

Универсальная загрузка данных формата Excel

Универсальная обработка по чтению/импорту данных формата Excel в базы 1С.

14.04.2021 8989 artkor 27

Excel vs 1С: битва с неожиданным исходом Промо

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019 43884 bolefirenko 122

Делаем формат ячейки дата в Excel без Excel

Задача отправлять печатную форму в формате Excel, но у этой печатной формы должен быть правильный формат ячеек с датой

26.03.2021 3756 John_d 23

Генерация кода с помощью формул Excel

В работе периодически возникает необходимость создания однотипных строк кода, отличающихся, в общем случае, только неким известным заранее строковым содержимым. При помощи конкатенации в Excel подобные данные легко превратить в готовые строки кода.

27.10.2020 1240 aleksei_adamov 6

Удаление из файла эксель ненужных страниц средствами 1С без COM и через COM

Как средствами 1С из файла эксель удалить ненужные листы без COM и с ним. Я разрабатывал на платформе 1С:Предприятие 8.3 (8.3.14.1694)

28.01.2020 3926 pavel_pss 12

Из Excel в 1С запросом Промо

. ну, конечно, не прям так типовым языком запросов, а расширенным языком запросов. Речь пойдет о том, как "залить" данные в таблицы 1С и не пилить при этом бесконечного количества наколеночных обработок.

14.08.2018 22570 m-rv 5

Обертка функций Excel на русском. Ускорение процесса разработки.

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

24.10.2019 8426 DmitryKotov 6

Выгрузка из 1С номенклатуры со штрихкодами без программирования

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019 30718 user1114182 12

Простая работа с dbf и перевод в excel

Хочу рассказать, как просто создать и отредактировать dbf файл, переведя его в excel.

23.08.2019 5357 WWWWW 3

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) Промо

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015 278036 StepByStep 76

Почему не получается использовать ТабличныйДокумент для работы с Excel?

Трудности загрузки/выгрузки эксельных прайсов.

21.06.2019 6812 kuzyara 5

Загрузка картинок в справочники (Универсальная загрузка из табличного документа)

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019 11069 Rasdag 6

Повторение строк заголовка на каждой странице при обработке файлов Excel средствами платформы 1С:Предприятие

Вопросы повторения строк на каждой странице при работе с файлом Excel из программы, работающей в системе 1С.

23.01.2019 7455 senshkr 3

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014 82148 StepByStep 27

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

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

14.01.2019 32117 starik-2005 45

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019 17307 Rasdag 16

Работа с Excel через COM

Несколько примеров работы с excel (ms office 2010, в моем случае) через COM.

01.10.2018 15453 jaroslav.h 0

Загрузка из EXCEL в 1С. MS ADODB.Connection Промо

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "MS ADODB" (ADODB.Connection). Поддерживаемые типы: *.xls,*.xlsx.

30.11.2012 167714 StepByStep 89

Выгрузка в Excel с использованием формата OpenXML, разбор файла sheet1.xml

Судя по количеству просмотров темы https://infostart.ru/public/900022/ решил описать структуру файла Листа excel. На полноту не претендую, опишу то, что знаю.

21.09.2018 9271 user1045404 2

Excel: создание в формате xlsx без COM технологии

По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.

10.09.2018 13456 user1045404 19

Маркировка ячеек цветом. Отладка загрузки данных из эксель.

После 100-ой кривой загрузки родился способ, как отладить алгоритм.

05.07.2018 10363 Rustig 7

Вредные советы (загрузка из таблиц Excel) Промо

Программисты просят вас предоставить данные в xls для загрузки? Обязательно почитайте и проверьте все ли пункты присутствуют в вашем файле. Иначе загрузка будет скучной и не интересной для них.

01.04.2012 26223 opx 23

Загрузка из Excel в управляемом приложении

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

30.11.2017 45955 alex_bitti 17

Функция сохранения картинок из книги Excel в каталог с определением координат на листе

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017 11898 user634820_zergemoth 1

Работа с Excel

Собрал различные полезности для работы с Excel из 1С. Иногда приходится форматировать документ Excel программно из 1С. Так вот, чтобы не искать постоянно на просторах интернета как сделать левое выравнивание в ячейке Excel из 1С и т.п. решил опубликовать это.

23.10.2017 66841 arakelyan 42

СТАБИЛЬНАЯ Загрузка справочника номенклатуры в 1С:Управление торговлей 8 из прайс-листа в Excel (код открыт скачать можно бесплатно) Промо

В таких случаях многие заказывают соответствующие обработки у собственных штатных программистов, фирм-франчайзи или сторонних разработчиков, но это дополнительные расходы и время. Как быть, если по различным причинам такой возможности нет? У каждого пользователя профессиональной версии 1С:Предприятие 8 подобная обработка уже есть! На диске ИТС! Типовая обработка «ЗагрузкаДанныхИзТабличногоДокумента.epf», находиться в разделе «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа». Обратите внимание, начиная с Февраля 2010 г. на диске ИТС данная обработка для конфигураций на платформе 8.1 находится в другом разделе: «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Платформа 1С:Предприятие 8.1» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа».

Добавить комментарий

Ваш адрес email не будет опубликован.