Выгрузка данных из 1С Торговля в Excel, XML и на сайт

· 10 мин

Содержание

Самый быстрый способ выгрузить данные из 1С Торговля — открыть нужный список (номенклатуру, остатки, контрагентов), нажать Ещё → Вывести список, выбрать колонки и сохранить результат как файл Excel. Для переноса в другую базу используют универсальный обмен в формате XML, а для интернет-магазина — выгрузку в формате CommerceML.

Какой инструмент нужен, зависит от того, что и куда вы отправляете: прайс в Excel поставщику, полную номенклатуру с ценами и остатками на сайт или регулярный обмен с внешней системой. Ниже разобран каждый способ с точными путями меню и подводными камнями.

Статья про актуальные конфигурации на платформе 8.3 с интерфейсом «Такси»: 1С:Управление торговлей (УТ 11), 1С:Розница и 1С:Управление нашей фирмой. Пути меню в них близки, но названия разделов могут отличаться — где это важно, оговорено отдельно.

Что вам нужно выгрузить и куда?

Что и в каком формате выгружается

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

Что выгружаемУдобный форматЧем выгружать
Список номенклатуры, контрагентовExcel (.xlsx), CSVЕщё → Вывести список
Прайс с ценамиExcel, .mxlОтчёт «Прайс-лист»
Остатки на складахExcelОтчёт по остаткам → сохранить
Перенос в другую базу 1СXMLУниверсальный обмен XML
Товары и цены на сайтCommerceML (XML)Обмен с сайтом
Данные для внешней программыJSON / AtomOData

Формат .mxl (табличный документ 1С) сохраняет выгрузку точь-в-точь, с группировками и форматированием. Если файл нужен человеку, а не программе, сохраняйте в .mxl или .xlsx; для импорта в чужую систему чаще нужен CSV или XML по заданному шаблону.

Вывод списков и отчётов в Excel

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

Порядок для любого списка:

  1. Откройте список (например, НСИ и администрирование → Номенклатура или раздел Склад).
  2. Настройте отбор и колонки, которые должны попасть в файл — выгружается то, что видно на экране.
  3. Нажмите Ещё → Вывести список.
  4. В окне выбора отметьте нужные колонки и тип вывода — Табличный документ.
  5. В полученном табличном документе нажмите сохранить (кнопка в командной панели или Главное меню → Файл → Сохранить как) и выберите тип Лист Excel 2007-... (*.xlsx).

С отчётами ещё проще. Сформируйте любой отчёт (остатки, продажи, прайс) и сохраните результат той же кнопкой в .xlsx, .pdf или .mxl.

Чтобы выгрузить только часть строк, выделите нужные позиции в списке с зажатым Ctrl — тогда в вывод попадут они. Можно сначала применить отбор по складу, группе или бренду, а уже потом выводить.

На списках в десятки тысяч строк вывод через Вывести список может долго формироваться и съедать память. Делите выгрузку отбором: по группе номенклатуры, по складу, по периоду. Для регулярных больших выгрузок лучше отчёт или обмен, а не ручной вывод списка.

Универсальный обмен данными в формате XML

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

Выгрузка и загрузка данных XML. Типовая обработка, которая сериализует выбранные объекты в XML и загружает обратно. Работает между базами с одинаковой или очень близкой структурой метаданных. Правила настраивать не нужно — вы просто отмечаете, какие объекты выгрузить и за какой период.

Универсальный обмен данными в формате XML. Обработка посложнее: она переносит данные между разными конфигурациями по заранее подготовленным правилам конвертации. Правила создаются отдельно (в конфигурации для конвертации данных) и описывают, какой объект источника во что превращается в приёмнике.

Общая логика работы:

  1. Откройте обработку (она поставляется с конфигурацией либо берётся из состава обработок поставки).
  2. Для универсального обмена подключите файл правил конвертации.
  3. Задайте отбор: типы объектов, период, конкретные организации или склады.
  4. Выгрузите в файл .xml.
  5. В базе-приёмнике той же обработкой выполните загрузку этого файла.

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

Когда какой выбрать:

  • 📦 Базы одинаковые (копия той же конфигурации) → выгрузка и загрузка XML.
  • 🔄 Базы разные (из УТ в Бухгалтерию и т. п.) → универсальный обмен по правилам либо типовая синхронизация данных.

Если между вашими продуктами есть штатная синхронизация (например, обмен УТ с бухгалтерской базой), начните с неё — она надёжнее ручного XML.

Выгрузка товаров и цен на сайт

Для интернет-магазина в 1С есть отдельный механизм обмена в формате CommerceML. Он формирует стандартные XML-файлы, которые понимают популярные CMS.

Настройка живёт в разделе администрирования — это блок обмена с сайтами (в разных конфигурациях он называется «Обмен с сайтом» или находится в настройках синхронизации данных). Там создаётся узел обмена, где вы указываете:

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

На выходе получаются два файла: import.xml с каталогом товаров (структура групп, наименования, артикулы, свойства) и offers.xml с ценами и остатками. Их забирает сайт по расписанию или по запросу.

Картинки уходят на сайт, только если они хранятся в самой базе (присоединённые файлы номенклатуры). Ссылки на внешние файлы в выгрузку не попадут.

Перед первым обменом стоит пройтись по подготовке:

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

В УТ и в Рознице набор полей обмена немного отличается, но принцип и формат файлов одинаковые. Детали сопоставления полей сайта и 1С проще настроить на стороне CMS — там это обычно визуальный конструктор.

Внешние обработки и расширения

Типовых инструментов хватает не всегда. Поставщик требует прайс в своём шаблоне, маркетплейс — файл со строго заданными колонками, а штатная выгрузка выдаёт не то. Тогда выгрузку делают внешней обработкой.

Внешняя обработка (.epf) — это отдельный файл, который открывается в базе через Файл → Открыть и формирует данные ровно в том виде, который нужен. Такую обработку либо берут готовую (под конкретный маркетплейс их много), либо заказывают у программиста.

Второй вариант — расширение конфигурации . Расширения появились в платформе 8.3.6 и позволяют добавить свою команду, отчёт или форму, не снимая типовую конфигурацию с поддержки. Готовое расширение загружается в режиме 1С:Предприятие через настройки расширений, после чего нужно обновить конфигурацию базы.

Когда уместна внешняя обработка, а когда расширение:

  • Разовая или редкая выгрузка в чужой формат → внешняя обработка, запускаемая вручную.
  • Регулярная выгрузка, которую запускают разные сотрудники → расширение с кнопкой прямо в интерфейсе.

Берите обработки и расширения только из проверенных источников. Чужой .epf выполняет код в вашей базе и при желании может её изменить. Перед запуском незнакомой обработки сделайте резервную копию.

Доступ к данным снаружи: OData вместо прямых SQL-запросов

Иногда данные нужны другой программе напрямую — сайту, системе аналитики, внешнему учёту. Возникает соблазн подключиться SQL-запросом прямо к базе на SQL Server или PostgreSQL.

Прямые SQL-запросы к базе 1С — путь в тупик. Структура таблиц не документирована и меняется с релизами, имена полей зашифрованы, а запись в обход платформы ломает учёт и снимает базу с поддержки. Читать так ещё можно на свой страх, писать — нельзя.

Штатный способ отдать данные наружу — стандартный интерфейс OData (REST). Логика такая:

  1. В конфигураторе в настройке состава стандартного интерфейса OData отмечают объекты, которые можно читать снаружи (справочники, документы, регистры).
  2. Базу публикуют на веб-сервере (Apache или IIS) с включённой поддержкой OData.
  3. Внешняя программа обращается к адресу вида http://сервер/база/odata/standard.odata/ и получает данные в формате Atom или JSON.

OData отдаёт ровно те объекты, что вы разрешили, с учётом прав пользователя — это безопаснее прямого доступа к СУБД. Для чтения из файловой базы SQL в принципе нет, и OData через веб-публикацию здесь единственный штатный путь.

Если же нужно наоборот — читать в 1С данные из внешней СУБД, для этого есть механизм внешних источников данных: вы описываете таблицу чужой базы и работаете с ней запросами языка 1С.

Автоматизация выгрузки по расписанию

Ручной экспорт надоедает, когда прайс на сайт уходит каждый час. Выгрузку ставят на автомат двумя путями.

Регламентное задание внутри базы. У штатного обмена с сайтом и у синхронизации данных есть расписание — вы задаёте, как часто запускать. В клиент-серверной базе задание крутится в фоне на сервере само. В файловой базе регламентные задания выполняются только пока открыт хотя бы один сеанс, поэтому для автономной работы держат постоянно запущенный сеанс или переходят на серверный вариант.

Планировщик Windows + пакетный запуск. Внешнюю обработку выгрузки запускают из командной строки без открытия окон:

"1cv8.exe" ENTERPRISE /S сервер\база /N пользователь /P пароль /Execute "C:\exchange\vygruzka.epf" /DisableStartupMessages

Для файловой базы вместо /S сервер\база указывают путь: /F "C:\bases\torgovlya". Эту строку добавляют в задачу планировщика Windows с нужным расписанием.

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

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

Частые ошибки при выгрузке

Несколько проблем встречаются чаще других — и ни одна не лечится повтором инструкции.

  • 🔢 Числа и артикулы превратились в Excel в даты или потеряли нули. Виноват автоформат Excel. Выгружайте в .mxl, либо в Excel заранее задайте колонке текстовый формат и вставляйте значения в неё.
  • 🖼 На сайт не ушли картинки. Изображения не присоединены к карточкам номенклатуры в базе, а хранятся где-то ещё. В выгрузку попадают только файлы, которые лежат в самой базе.
  • 🔧 При загрузке XML ругается на несовпадение. Либо не те правила конвертации, либо разные версии конфигураций источника и приёмника. Для разных конфигураций нужен обмен по правилам, а не простая сериализация.
  • 🔤 Кракозябры в CSV. Несовпадение кодировки: база выгрузила в UTF-8, а получатель ждёт Windows-1251 (или наоборот). Уточните требуемую кодировку и формируйте файл под неё.
  • 🔒 У пользователя нет прав на выгрузку. Команды вывода или обмена не видно. Нужные роли выдаёт администратор в настройках пользователей и прав.

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

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

Можно ли выгрузить сразу всю номенклатуру с ценами и остатками одним файлом?
Да. Для человека подойдёт отчёт «Прайс-лист» с колонками остатков, сохранённый в Excel. Для сайта это делает обмен CommerceML: каталог уходит в import.xml, а цены и остатки — в offers.xml.
В каком формате выгружать данные для маркетплейса или поставщика?
Смотрите требования получателя — у каждого свой шаблон. Чаще всего это Excel с фиксированным набором колонок или CSV. Если штатная выгрузка не даёт нужную структуру, формируйте файл внешней обработкой под конкретный шаблон.
Сохранятся ли характеристики и штрихкоды при выводе списка в Excel?
В файл попадают только те колонки, что видны в списке на экране. Штрихкоды и характеристики хранятся в отдельных реквизитах и подчинённых справочниках, поэтому их выгружают либо специальным отчётом, либо обменом, а не простым выводом списка.
Нужен ли доступ в интернет и лицензия, чтобы выгрузить данные?
Для локальной выгрузки в файл (Excel, XML) интернет не нужен — всё происходит внутри базы. Доступ в сеть требуется только для обмена с сайтом или с внешней системой. Платформа работает по обычной лицензии; отдельной лицензии именно под выгрузку нет.
Чем выгрузка в XML отличается от обмена с сайтом?
Выгрузка в XML — это перенос данных между базами 1С (сериализация объектов или обмен по правилам). Обмен с сайтом — это выгрузка товаров и цен в формате CommerceML, который понимают интернет-магазины. Форматы и назначение разные.