Выгрузка данных из 1С Торговля в Excel, XML и на сайт
Содержание
Самый быстрый способ выгрузить данные из 1С Торговля — открыть нужный список (номенклатуру, остатки, контрагентов), нажать Ещё → Вывести список, выбрать колонки и сохранить результат как файл Excel. Для переноса в другую базу используют универсальный обмен в формате XML, а для интернет-магазина — выгрузку в формате CommerceML.
Какой инструмент нужен, зависит от того, что и куда вы отправляете: прайс в Excel поставщику, полную номенклатуру с ценами и остатками на сайт или регулярный обмен с внешней системой. Ниже разобран каждый способ с точными путями меню и подводными камнями.
Статья про актуальные конфигурации на платформе 8.3 с интерфейсом «Такси»: 1С:Управление торговлей (УТ 11), 1С:Розница и 1С:Управление нашей фирмой. Пути меню в них близки, но названия разделов могут отличаться — где это важно, оговорено отдельно.
Ещё → Вывести список или типовой отчёт «Прайс-лист» с сохранением в формат Excel. Самый простой путь, см. раздел про Excel.import.xml и offers.xml.Что и в каком формате выгружается
Из торговой базы вытаскивают почти любые данные: справочники, остатки, цены, документы, движения по регистрам. Разница — в способе и формате на выходе.
| Что выгружаем | Удобный формат | Чем выгружать |
|---|---|---|
| Список номенклатуры, контрагентов | Excel (.xlsx), CSV | Ещё → Вывести список |
| Прайс с ценами | Excel, .mxl | Отчёт «Прайс-лист» |
| Остатки на складах | Excel | Отчёт по остаткам → сохранить |
| Перенос в другую базу 1С | XML | Универсальный обмен XML |
| Товары и цены на сайт | CommerceML (XML) | Обмен с сайтом |
| Данные для внешней программы | JSON / Atom | OData |
Формат .mxl (табличный документ 1С) сохраняет выгрузку точь-в-точь, с группировками и форматированием. Если файл нужен человеку, а не программе, сохраняйте в .mxl или .xlsx; для импорта в чужую систему чаще нужен CSV или XML по заданному шаблону.
Вывод списков и отчётов в Excel
Это ежедневный приём. Подходит, когда нужно отдать кому-то таблицу: номенклатуру, остатки, список заказов.
Порядок для любого списка:
- Откройте список (например,
НСИ и администрирование → Номенклатураили разделСклад). - Настройте отбор и колонки, которые должны попасть в файл — выгружается то, что видно на экране.
- Нажмите
Ещё → Вывести список. - В окне выбора отметьте нужные колонки и тип вывода —
Табличный документ. - В полученном табличном документе нажмите сохранить (кнопка в командной панели или
Главное меню → Файл → Сохранить как) и выберите типЛист Excel 2007-... (*.xlsx).
С отчётами ещё проще. Сформируйте любой отчёт (остатки, продажи, прайс) и сохраните результат той же кнопкой в .xlsx, .pdf или .mxl.
Чтобы выгрузить только часть строк, выделите нужные позиции в списке с зажатым Ctrl — тогда в вывод попадут они. Можно сначала применить отбор по складу, группе или бренду, а уже потом выводить.
На списках в десятки тысяч строк вывод через Вывести список может долго формироваться и съедать память. Делите выгрузку отбором: по группе номенклатуры, по складу, по периоду. Для регулярных больших выгрузок лучше отчёт или обмен, а не ручной вывод списка.
Универсальный обмен данными в формате XML
Когда нужно перенести данные целиком в другую базу 1С — справочники, остатки, документы — применяют обмен в формате XML. Есть два разных инструмента, их часто путают.
Выгрузка и загрузка данных XML. Типовая обработка, которая сериализует выбранные объекты в XML и загружает обратно. Работает между базами с одинаковой или очень близкой структурой метаданных. Правила настраивать не нужно — вы просто отмечаете, какие объекты выгрузить и за какой период.
Универсальный обмен данными в формате XML. Обработка посложнее: она переносит данные между разными конфигурациями по заранее подготовленным правилам конвертации. Правила создаются отдельно (в конфигурации для конвертации данных) и описывают, какой объект источника во что превращается в приёмнике.
Общая логика работы:
- Откройте обработку (она поставляется с конфигурацией либо берётся из состава обработок поставки).
- Для универсального обмена подключите файл правил конвертации.
- Задайте отбор: типы объектов, период, конкретные организации или склады.
- Выгрузите в файл
.xml. - В базе-приёмнике той же обработкой выполните загрузку этого файла.
Выгрузка и загрузка через сериализацию не создаёт недостающие объекты сами по себе: если в приёмнике нет нужного вида номенклатуры или организации, загрузка споткнётся. Поэтому для разных конфигураций берут универсальный обмен с правилами, а не простую сериализацию.
Когда какой выбрать:
- 📦 Базы одинаковые (копия той же конфигурации) → выгрузка и загрузка XML.
- 🔄 Базы разные (из УТ в Бухгалтерию и т. п.) → универсальный обмен по правилам либо типовая синхронизация данных.
Если между вашими продуктами есть штатная синхронизация (например, обмен УТ с бухгалтерской базой), начните с неё — она надёжнее ручного XML.
Выгрузка товаров и цен на сайт
Для интернет-магазина в 1С есть отдельный механизм обмена в формате CommerceML. Он формирует стандартные XML-файлы, которые понимают популярные CMS.
Настройка живёт в разделе администрирования — это блок обмена с сайтами (в разных конфигурациях он называется «Обмен с сайтом» или находится в настройках синхронизации данных). Там создаётся узел обмена, где вы указываете:
- тип цен, которые уходят на сайт (розничная, оптовая);
- склад или список складов, по которым считаются остатки;
- группы номенклатуры для выгрузки;
- выгружать ли картинки и дополнительные характеристики.
На выходе получаются два файла: import.xml с каталогом товаров (структура групп, наименования, артикулы, свойства) и offers.xml с ценами и остатками. Их забирает сайт по расписанию или по запросу.
Картинки уходят на сайт, только если они хранятся в самой базе (присоединённые файлы номенклатуры). Ссылки на внешние файлы в выгрузку не попадут.
Перед первым обменом стоит пройтись по подготовке:
В УТ и в Рознице набор полей обмена немного отличается, но принцип и формат файлов одинаковые. Детали сопоставления полей сайта и 1С проще настроить на стороне CMS — там это обычно визуальный конструктор.
Внешние обработки и расширения
Типовых инструментов хватает не всегда. Поставщик требует прайс в своём шаблоне, маркетплейс — файл со строго заданными колонками, а штатная выгрузка выдаёт не то. Тогда выгрузку делают внешней обработкой.
Внешняя обработка (.epf) — это отдельный файл, который открывается в базе через Файл → Открыть и формирует данные ровно в том виде, который нужен. Такую обработку либо берут готовую (под конкретный маркетплейс их много), либо заказывают у программиста.
Второй вариант — расширение конфигурации
. Расширения появились в платформе 8.3.6 и позволяют добавить свою команду, отчёт или форму, не снимая типовую конфигурацию
с поддержки. Готовое расширение загружается в режиме 1С:Предприятие через настройки расширений, после чего нужно обновить конфигурацию
базы.
Когда уместна внешняя обработка, а когда расширение:
- Разовая или редкая выгрузка в чужой формат → внешняя обработка, запускаемая вручную.
- Регулярная выгрузка, которую запускают разные сотрудники → расширение с кнопкой прямо в интерфейсе.
Берите обработки и расширения только из проверенных источников. Чужой .epf выполняет код в вашей базе и при желании может её изменить. Перед запуском незнакомой обработки сделайте резервную копию.
Доступ к данным снаружи: OData вместо прямых SQL-запросов
Иногда данные нужны другой программе напрямую — сайту, системе аналитики, внешнему учёту. Возникает соблазн подключиться SQL-запросом прямо к базе на SQL Server или PostgreSQL.
Прямые SQL-запросы к базе 1С — путь в тупик. Структура таблиц не документирована и меняется с релизами, имена полей зашифрованы, а запись в обход платформы ломает учёт и снимает базу с поддержки. Читать так ещё можно на свой страх, писать — нельзя.
Штатный способ отдать данные наружу — стандартный интерфейс OData (REST). Логика такая:
- В конфигураторе в настройке состава стандартного интерфейса OData отмечают объекты, которые можно читать снаружи (справочники, документы, регистры).
- Базу публикуют на веб-сервере (Apache или IIS) с включённой поддержкой OData.
- Внешняя программа обращается к адресу вида
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 (или наоборот). Уточните требуемую кодировку и формируйте файл под неё.
- 🔒 У пользователя нет прав на выгрузку. Команды вывода или обмена не видно. Нужные роли выдаёт администратор в настройках пользователей и прав.
Если выгрузка подвисает на больших объёмах, не ждите у зависшего окна — разбейте данные на части отбором по периоду, складу или группе и выгружайте порциями.
Частые вопросы
Можно ли выгрузить сразу всю номенклатуру с ценами и остатками одним файлом?
import.xml, а цены и остатки — в offers.xml.