Как выгрузить базу 1с в excel
Перейти к содержимому

Как выгрузить базу 1с в excel

Выгрузка данных из 1С и экспорт в Excel справочников и регистров сведений

Не так давно возникла казалось бы тривиальная задача. Есть «боевая» база Управление торговлей (версия конфигурации 10.1, платформы — 8.1). Создается новая компания, в которой нужно развернуть новую базу (версия конфигурации 11.2, платформы — 8.3). Чтобы облегчить нелёгкий труд сотрудницам новой компании, было принято решение скопировать часть номенклатуры (каталог товаров и их реквизитов) в новую базу.

Однако не тут-то было. Попытки использовать стандартные средства в 1С привели к неудаче. Синхронизация данных для веб-узла выдавала очень урезанные данные. И даже замечательный обработчик Выгрузка и загрузка данных в XML выдавал ошибку.

Поэтому было найдено такое решение:

  1. Выгрузка данных из «старой» базы посредством обработчика Выгрузка и загрузка данных в XML
  2. Экспорт данных в Excel
  3. Импорт в «новую» базу из Excel собственным обработчиком

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

В связи с тем, что для загрузки нужен была только справочник номенклатуры, то для обработки необходимы только такие сущности, как справочники и регистры сведений. Анализ выгруженного xml-файла (сумасшедших 280Мб для 35000 товаров) показал, что необходимые данные для обеих сущностей хранятся в «плоском» виде:

Затем на Python был написан парсер, который раскладывал все сущности по отдельным Excel файлам. В результате его работы появился примерно такой набор файлов:

  • CatalogObject.Банки.xlsx
  • CatalogObject.БанковскиеСчета.xlsx
  • .
  • InformationRegisterRecordSet.НоменклатураКонтрагентов.xlsx
  • InformationRegisterRecordSet.ЦеныНоменклатуры.xlsx

С приблизительно такими графами (столбцами)*:

  • ШтрихКодНоменклатурыКонтрагента
  • КодНоменклатурыКонтрагента
  • АртикулНоменклатурыКонтрагента
  • НаименованиеНоменклатурыКонтрагента
  • ХарактеристикаНоменклатуры
  • ЕдиницаНоменклатурыКонтрагента
  • Номенклатура
  • Контрагент

* пример приведен для файла InformationRegisterRecordSet.ЦеныНоменклатуры.xlsx

А дальше программисты 1С сказали «Отлично, вот теперь мы сами». И все стали немножко более счастливы.

Исходный код лежит на github вот здесь. Поскольку я понимаю, что большинство программистов 1С не знают Python, то там же (в релизах) лежит скомпилированный код (для x64). Если будут просьбы, то код переведу в C# и скомпилирую (уж он-то везде должен работать).

Надеюсь кому-то моя заметка сэкономит время.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Совет: Как выгрузить таблицу, справочник или документ из 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, переслать по почте или распечатать.

Пройдите курсы 1С и Вам больше не понадобятся советы и руководства!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *