Перенос номенклатуры из 1С:Предприятие в Битрикс24 или CMS Битрикс — стандартная задача для компаний, которые автоматизируют торговлю и управление каталогом. Без корректной выгрузки товаров невозможно синхронизировать остатки, цены и описания между бухгалтерией и сайтом. Однако процесс часто сопровождается ошибками: от неверного формата файлов до потери связей между позициями.
В этой статье разберём все актуальные способы выгрузки — от ручного экспорта через Excel до автоматической синхронизации через REST API и CommerceML. Особое внимание уделим типичным проблемам: почему товары не отображаются в Битриксе после выгрузки, как избежать дублирования карточек и что делать, если структура каталога в 1С не совпадает с требованиями CMS. Инструкции подойдут для 1С:Управление торговлей, 1С:ERP и 1С:Бухгалтерия (редакции 3.0 и выше).
1. Подготовка данных в 1С перед выгрузкой
Прежде чем экспортировать номенклатуру, необходимо привести её к виду, который понятен Битриксу. Основные требования:
- 📌 Уникальные артикулы — без них Битрикс не сможет связать товары при повторной выгрузке.
- 📂 Структура групп — иерархия папок в 1С должна совпадать с разделами каталога в Битриксе.
- 💰 Цены и валюты — проверьте, что типы цен в 1С сопоставлены с типами цен в Битриксе (например, "Розничная" → "Базовая цена").
- 📷 Изображения — если планируете выгружать картинки, они должны быть прикреплены к номенклатуре в 1С или лежать в доступной папке.
Особое внимание уделите свойствам номенклатуры. В Битриксе они называются "характеристиками товара" и могут не совпадать с полями в 1С. Например, в 1С есть поле "Вес", а в Битриксе — "Масса нетто". Такие расхождения приводят к пустым полям после импорта.
Если в 1С используется нестандартная конфигурация (например, отраслевое решение), экспортируйте данные в Excel и проверьте структуру столбцов. Это поможет избежать ошибок при маппинге полей в Битриксе.
Для удобства создайте в 1С отдельный справочник выгрузки с отбором только тех товаров, которые нужны на сайте. Это ускорит процесс и исключит лишние позиции. Например, можно отфильтровать номенклатуру по:
- 🏷️ Группам (только "Товары для сайта")
- 📦 Остаткам (выгружать только позиции с остатком > 0)
- 🔄 Статусу (исключить архивные товары)
2. Способы выгрузки: от ручного экспорта до API
Выбор метода зависит от объёма данных, частоты обновлений и технических возможностей. Рассмотрим все варианты — от простейшего до самого гибкого.
| Способ выгрузки | Сложность | Подходит для | Плюсы | Минусы |
|---|---|---|---|---|
| Ручной экспорт в Excel/CSV | ⭐ | Малого каталога (до 500 товаров) | Не требует настройки, быстро | Ошибки при большом объёме, нет автоматического обновления |
| CommerceML (стандартный обмен) | ⭐⭐⭐ | Средних и крупных каталогов | Поддерживает изображения, остатки, цены | Требует настройки в 1С и Битриксе |
| REST API | ⭐⭐⭐⭐ | Крупных проектов с кастомизацией | Гибкость, возможность интеграции с другими системами | Нужны знания программирования |
| Готовые модули (например, "1С-Битрикс: Интеграция") | ⭐⭐ | Бизнеса без IT-специалистов | Простая настройка, техподдержка | Платное решение, ограниченная функциональность |
Для большинства компаний оптимален обмен через CommerceML — это стандартный протокол, который поддерживают обе системы. Он позволяет выгружать не только номенклатуру, но и:
- 📊 Остатки (актуальные данные по складам)
- 💲 Цены (включая скидки и специальные предложения)
- 🖼️ Изображения (с привязкой к товарам)
- 📝 Описания и характеристики
3. Пошаговая инструкция: выгрузка через CommerceML
Это самый распространённый метод, который подходит для 1С:Управление торговлей 11 и Битрикс24/CMS Битрикс. Следуйте инструкции:
Шаг 1. Настройка в 1С
1. Откройте Администрирование → Обмен данными с сайтом → Настройки обмена.
2. Создайте новый профиль обмена с типом CommerceML 2.0.
3. Укажите параметры:
- 📤 Адрес сайта — URL вашего Битрикса (например,
https://ваш-сайт.ru/bitrix/admin/1c_exchange.php) - 🔑 Логин и пароль — данные пользователя Битрикса с правами на импорт
- 📂 Каталог для выгрузки — папка на сервере, куда 1С будет складывать файлы (например,
/upload/1c_catalog/)
Шаг 2. Настройка в Битриксе
1. Перейдите в Магазин → Настройки → Импорт данных (для Битрикс24) или Администрирование → 1С:Предприятие (для CMS Битрикс).
2. Включите опцию Разрешить загрузку каталога и укажите:
- 🔄 Тип обмена —
CommerceML - 📂 Путь к файлам — должен совпадать с настройками в 1С
- 🔑 Пользователь — выберите учётную запись с правами на изменение каталога
Шаг 3. Тестовая выгрузка
1. В 1С нажмите Выполнить обмен и выберите Выгрузить каталог.
2. Проверьте, что в указанной папке появились файлы:
import.xml— основной файл с номенклатуройoffers.xml— предложения (если используются)- Папка
import_files— изображения
3. В Битриксе запустите импорт вручную через Магазин → Импорт данных → Загрузить каталог.
Указаны верные логин/пароль для Битрикса|
Папка для обмена существует и доступна для записи|
В 1С выбраны нужные группы номенклатуры для выгрузки|
В Битриксе настроены соответствия свойств товаров|
-->
Критическая ошибка: если в файле import.xml отсутствует тег <Классификатор>, Битрикс не сможет определить структуру каталога. Проверьте настройки выгрузки в 1С — галочка "Выгружать классификатор" должна быть активна.
4. Ручной экспорт в Excel: когда и как использовать
Этот метод подходит для разовой выгрузки небольшого каталога (до 1000 позиций) или если нужно передать данные стороннему разработчику. Преимущество — простота, недостаток — отсутствие автоматизации.
Инструкция для 1С:
1. Откройте справочник Номенклатура.
2. Нажмите Ещё → Выгрузить в Excel (или Файл → Экспорт в старых версиях).
3. Выберите поля для экспорта. Обязательные:
- 🆔 Артикул (уникальный идентификатор)
- 📦 Наименование
- 📂 Группа (раздел каталога)
- 💰 Цена (с указанием типа цены)
- 📖 Описание (если есть)
Импорт в Битрикс:
1. В админпанели Битрикса перейдите в Магазин → Импорт данных → Загрузить из CSV/Excel.
2. Загрузите файл и сопоставьте столбцы:
- 🔄 Артикул 1С →
SYMBOL_CODE(илиXML_ID) - 📦 Наименование →
NAME - 📂 Группа →
SECTION_NAME
Что делать, если Битрикс не видит разделители в CSV?
Если при импорте данные "слипаются" в одну колонку, откройте файл в Notepad++ или Excel и сохраните его с разделителем ; (точка с запятой) и кодировкой UTF-8 без BOM. Битрикс лучше воспринимает такой формат, чем стандартный CSV с запятыми.
⚠️ Внимание: При ручном импорте Битрикс не обновляет существующие товары, а создаёт дубли. Чтобы избежать этого, перед загрузкой удалите старые позиции или используйте поле XML_ID для привязки.
5. Автоматизация через REST API: для разработчиков
Если вам нужна гибкая синхронизация с кастомизированной логикой (например, выгрузка только изменённых товаров или фильтрация по складам), используйте REST API. Этот метод требует знаний программирования, но даёт полный контроль над процессом.
Пример кода для выгрузки номенклатуры (1С → Битрикс):
// 1. Получаем токен доступа в Битриксе (Настройки → REST API)
токен = "ваш_токен_из_битрикса";
// 2. Формируем запрос на добавление товара
параметры = Новый Структура();
параметры.Вставить("fields", Новый Структура());
параметры.fields.Вставить("NAME", "Наименование товара");
параметры.fields.Вставить("XML_ID", "ART12345"); // Артикул из 1С
параметры.fields.Вставить("PRICE", 1000);
параметры.fields.Вставить("CURRENCY", "RUB");
// 3. Отправляем POST-запрос
ответ = ОтправитьRESTЗапрос(
"https://ваш-сайт.ru/rest/1/catalog.product.add",
токен,
параметры
);
// 4. Обрабатываем ответ
Если ответ.SUCCESS Тогда
Сообщить("Товар успешно добавлен, ID: " + ответ.result);
Иначе
Сообщить("Ошибка: " + ответ.error_description);
КонецЕсли;
Для массовой выгрузки используйте метод catalog.product.list с пагинацией. Важные нюансы:
- 🔐 Ограничения API — Битрикс может блокировать частые запросы (стандартный лимит: 2 запроса в секунду).
- 🔄 Обновление существующих товаров — используйте метод
catalog.product.updateс указаниемXML_ID. - 📷 Изображения — загружайте через
disk.folder.uploadfile, затем привязывайте к товару.
REST API подходит для проектов, где нужна нестандартная логика обмена (например, выгрузка товаров только с определённого склада или с динамическими ценами).
⚠️ Внимание: При работе с API Битрикс кэширует данные. После массовых изменений очищайте кэш через Администрирование → Настройки → Кэш, иначе новые товары могут не отображаться на сайте.
6. Типичные ошибки и их решение
Даже при правильной настройке обмена могут возникать проблемы. Рассмотрим самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
| Товары не выгружаются в Битрикс | Неверный путь к папке обмена или права доступа | Проверьте настройки в 1С и .htaccess на сервере (должен быть доступ на запись) |
| Дублируются товары | Отсутствует привязка по XML_ID или артикулу |
Настройте сопоставление полей в Битриксе или очистите каталог перед импортом |
| Не выгружаются изображения | Неверный путь к файлам или ограничения сервера | Проверьте папку import_files в архиве и права на неё (должны быть 777) |
| Ошибка "Неверный формат файла" | Файл import.xml повреждён или в неправильной кодировке |
Откройте файл в Notepad++ и сохраните в UTF-8 без BOM |
| Цены не обновляются | Не сопоставлены типы цен в 1С и Битриксе | Проверьте настройки в 1С → Обмен данными → Соответствие типов цен |
Если после выгрузки в Битриксе отображаются не все товары, проверьте:
- 🔍 Фильтры в каталоге — возможно, товары скрыты по остаткам или статусу.
- 📝 Логи обмена — в Битриксе они находятся в
Администрирование → Логи 1С. - 🔄 Крон-задачи — если обмен настроен по расписанию, проверьте, запускается ли он.
Как проверить, доходят ли файлы до Битрикса?
Создайте в папке обмена файл test.txt и попробуйте открыть его по прямой ссылке (например, https://ваш-сайт.ru/upload/1c_catalog/test.txt). Если файл не открывается — проблема с правами доступа или .htaccess.
⚠️ Внимание: Если в 1С используются комплекты номенклатуры (наборы товаров), их нужно выгружать отдельно через offers.xml. Битрикс не поддерживает автоматическое создание комплектов из стандартного обмена — потребуется доработка.
7. Оптимизация процесса: советы для крупных каталогов
Если у вас более 10 000 товаров, стандартные методы обмена могут работать медленно или вызывать ошибки. Вот как оптимизировать процесс:
- 🔄 Дробление выгрузки — разбивайте номенклатуру на части (например, по группам) и выгружайте поочерёдно.
- ⏱️ Обмен по расписанию — настройте автоматическую выгрузку в непиковые часы (ночью).
- 🗃️ Архивация старых товаров — исключите из обмена неактуальные позиции.
- 🔧 Индексирование полей — в Битриксе проиндексируйте поля
XML_IDиARTICLEдля ускорения поиска.
Для ускорения работы с API:
- 📦 Пакетные запросы — используйте метод
batchдля отправки нескольких операций в одном запросе. - 🗂️ Кэширование — храните локально данные, которые редко меняются (например, структуру каталога).
- 🔄 Дельта-обновление — выгружайте только изменённые товары (в 1С для этого есть отметка времени изменения).
Если обмен занимает слишком много времени, рассмотрите вариант прямого подключения к базе 1С через ODBC или OLE DB. Это требует глубоких знаний, но даёт максимальную скорость. Пример подключения:
// Пример подключения к базе 1С из PHP (для Битрикса)
$connection = new PDO(
"odbc:Driver={1C:v8 3.0};Server=localhost;Database=TradeBase;",
" пользователь",
"пароль"
);
$query = $connection->query("SELECT * FROM Catalog_Номенклатура");
$data = $query->fetchAll(PDO::FETCH_ASSOC);
⚠️ Внимание: Прямое чтение из базы 1С может нарушить её целостность. Используйте этот метод только в крайних случаях и обязательно согласуйте с администратором 1С.
8. Альтернативные решения: готовые модули и сервисы
Если нет времени или ресурсов для самостоятельной настройки, воспользуйтесь готовыми инструментами:
- 🔧 "1С-Битрикс: Интеграция" — официальный модуль от Битрикса, поддерживает CommerceML и REST.
- 🔄 "МойСклад" + Битрикс — если используете МойСклад как промежуточное звено.
- 🌐 "АТОЛ Онлайн" — для интеграции с фискальными регистраторами и синхронизации остатков.
- 🛠️ "Универсальный обмен данными" — решение от 1С-Рарус для сложных интеграций.
Стоимость модулей варьируется от 5 000 до 50 000 рублей в зависимости от функциональности. Преимущества:
- ⚡ Готовые шаблоны обмена — не нужно настраивать сопоставление полей вручную.
- 📞 Техническая поддержка — помощь при ошибках.
- 🔄 Автоматические обновления — модули адаптируются под новые версии 1С и Битрикса.
При выборе модуля проверьте:
- 📋 Совместимость с вашей версией 1С (например, не все модули работают с 1С:ERP 2.5).
- 🔧 Наличие нужных функций (выгрузка изображений, остатков, характеристик).
- 💰 Стоимость лицензии и обновлений.
Готовые модули экономят время, но могут ограничивать гибкость. Если вам нужна нестандартная логика (например, выгрузка только товаров с определённой маржой), лучше использовать REST API.
⚠️ Внимание: Некоторые модули требуют лицензию на 1С:Предприятие с правом на распределённую информационную базу. Без неё обмен может не работать. Уточните это у разработчика модуля.
FAQ: Частые вопросы по выгрузке номенклатуры
🔹 Почему после выгрузки в Битриксе пустые цены?
Это происходит, если в 1С не сопоставлены типы цен с типами цен в Битриксе. Проверьте настройки в 1С → Обмен данными → Соответствие типов цен. Также убедитесь, что в выгружаемой номенклатуре заполнено поле "Цена продажи".
🔹 Как выгрузить только изменённые товары?
В 1С используйте отбор по дате изменения. Для этого:
- Добавьте в запрос условие
ДатаИзменения > ПоследняяВыгрузка. - Или используйте обработку "Выгрузка изменений в CommerceML" (есть в стандартных поставках 1С).
В Битриксе при импорте выберите опцию "Обновлять только существующие товары".
🔹 Можно ли выгрузить номенклатуру из 1С в Битрикс24 (CRM), а не в каталог?
Да, но это другой процесс. Для Битрикс24 используйте:
- 📤 Обмен через REST API — метод
crm.product.add. - 🔧 Модуль "1С:Интеграция с Битрикс24" (отдельный продукт от 1С).
Обратите внимание: в Битрикс24 нет полноценного каталога товаров — только справочник продуктов в CRM.
🔹 Почему в Битриксе не отображаются изображения после выгрузки?
Частые причины:
- 📂 Папка
import_filesне загрузилась на сервер (проверьте права доступа). - 🔗 В файле
import.xmlневерные пути к изображениям (должны быть относительными, например,import_files/photo1.jpg). - 📏 Размер изображений превышает лимиты Битрикса (стандартный максимум — 20 МБ на файл).
Решение: проверьте структуру архива с выгрузкой и права на папку /upload/1c_catalog/ (должны быть 777).
🔹 Как синхронизировать остатки между 1С и Битрикс?
Для синхронизации остатков:
- В 1С настройте выгрузку документа
"Остатки товаров"в формате CommerceML. - В Битриксе включите опцию
"Обновлять остатки при импорте". - Используйте склады — в 1С и Битриксе должны быть сопоставлены склады по
XML_ID.
Для автоматического обновления настройте регламентное задание в 1С (например, выгрузка остатков каждые 2 часа).