Битрикс real time обмен с 1с настройка. Real-time обмен с «1С» от «Битрикс

Для реализации интеграции с 1С не требуется покупать какие-либо дополнительные модули или конфигурации. Покупая «1С: Управление торговлей» и «1С-Битрикс: Управление сайтом» вы сразу получаете необходимый функционал.

Искомый функционал интеграции вы можете свободно доработать, скачав и установив бесплатный модуль для 1С: Управление торговлей.

Широкий функционал

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

Простота настройки

Чтобы обеспечить интеграцию с 1С не требуется быть специалистом в программировании или веб-технологиях. Предусмотренные настройки просты и понятны пользователю, обладающему общими навыками работы с компьютером и базовыми знаниями продуктов «1С» и «1С-Битрикс».

Возможность автоматической работы по расписанию

Функционал интеграции с 1С может работать незаметно для сотрудников, овободив их от рутинных операциями.

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

Real-time обмен с «1С»

Real-time обмен с 1С – это технология непрерывной двусторонней связи между 1С-Битрикс: Управление сайтом и 1С. Система обеспечивает обмен данными (остатки, цены, заказы и пр.) в режиме реального времени. Для этого не требуется установка отдельного сервера и специальных настроек. Система стабильно работает практически на любом сервере.

Получать информацию в режиме реального времени можно:

  • из 1С в интернет-магазин – о товарах, ценах, остатках в рамках заказов
  • из магазина в 1С – по заказам, статусам, платежным системам, покупателям, контрагентам

Безопасность

Угрозы безопасности сайта не могут угрожать безопасности ваших данных в 1С.

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

Только в 1С хранится вся необходимая информация для работы с сайтом: адрес сервера и данные для выполнения аутентификации. Для сайта интернет-магазина запрос от 1С - это типовой запрос от пользователя, который нужно обработать в соответствии с его правами.

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

Производительность

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

Сайт может держать нагрузку, не влияя на производительность 1С.

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

Открытый формат и протокол обмена

Интеграция основана на применении открытого обзедоступного задокументированного формата обмена коммерческой информацией CommerceML .

И 1С: Предприятие Управление торговлей, редакция 11.1 (11.1.2.31).
Точка актуальности статьи - май 2015.
Обращайте на это внимание.
Очень многие вещи, освоив однажды, мы делаем практически машинально.
Однако, не каждый из умеющих водить автомобиль, может стать инструктором вождения.
Одно дело - сделать самому, совсем другое - рассказать другому, как делать. Многим знаком этот старинный анекдот.
- Дорогая, где чай? Я никак не могу найти.... - Ах, какой ты беспомощный! Чай в аптечке, в банке из-под какао, на которой наклейка "СОЛЬ".
Именно поэтому большинство инструкций по интеграции 1С и Битрикс не заостряют внимание на моментах, на которые начинающий может потратить от нескольких часов, до нескольких дней своего времени.
Попробую максимально закрыть этот вопрос именно в плане быстрого старта
(не ошибусь, если скажу - у многих есть желание посмотреть, как работает 1С Управление торговлей в связке с интернет магазином).
Огромное спасибо разработчикам Битрикс за виртуальную машину. С ней установка системы для тестирования стала занимать минуты.
Дальше - обращайтесь к форумам, гуру, куру и т.п.

Приступаем.

Что нужно скачать:

Виртуальную машину запускаем в плейере.

Дополнения устанавливаем в каталог шаблонов 1С.

Из шаблонов же создаем базу Управление торговлей Демо, редакция 11.1 (11.1.2.31). Включаем в конфигураторе возможность изменения
, и интегрируем модуль дополнения от Битрикс.
Этот процесс полностью описан в файле документации, идущем в комплекте с модулем. Цитирую дословно:




  1. Включить в объединение (установить флажок) подсистему «Битрикс»: "Конфигурация" - "Общие" - "Подсистемы" - "Администрирование" - "Битрикс".

10. Выполнить сравнение и объединение конфигураций (кнопка «Выполнить»).

Обратить внимание.
Рекомендуется запустить 1С с параметром «ЗапуститьОбновлениеИнформационнойБазы », для того, чтобы 1С заполнил все служебные данные в 1С. Запуск с параметром можно запустить как через командную строку, так и из конфигуратора.

Для того, чтобы запустить из командной строки нужно указать следующие параметры:

"<Адрес к 1 cv 8. exe >" ENTERPRISE (/ F или / S в зависимости от типа базы) ""<Адрес к базе> " / N "<Логин>" / P "<Пароль>" /C ЗапуститьОбновлениеИнформационнойБазы

Для того, чтобы запустить из конфигуратора нужно зайти: Сервис -> Параметры. На вкладке «Запуск 1С: Предприятия» нужно указать параметр запуска.

Заодно лучше установить режим запуска «Толстый клиент управляемое приложение»

Пока мы занимались с 1С, подоспела виртуальная машина.

Загружаем дистрибутив «Управление сайтом» Бизнес Демо


Выбираем и настраиваем магазин.

Все настройки оставляем по умолчанию. Если есть желание навести марафет - введите сразу свои данные и снимите неиспользуемые флажки (виды оплаты и доставки)

В 1С настраиваем связь с сайтом. Проверяем, что сайт доступен.

Обратить внимание.
Делаем архивы.
1С - средствами 1С, а сайт - средствами виртуальной машины (если сделать архив через админку сайта, он пропадет при первом обмене с 1С).
Не забудьте убрать параметр запуска «ЗапуститьОбновлениеИнформационнойБазы» он уже не нужен.

Справедливое желание - загрузить номенклатуру с сайта.

Посмотреть, как устроены описания, свойства и т.п. Создаем под это вид и группу номенклатуры «Одежда»

Первая незадача - загрузка не проходит.
Получаем ошибку: «Не удалось загрузить данные с сервера. Ответ сервера: failure Ошибка инициализации экспорта».

Потому что по умолчанию ни у одной группы пользователей нет на это прав.

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

После этого загрузка товаров с сайта пройдет.

Помимо номенклатуры со всеми свойствами и характеристиками, загрузится цена BASE (запомните это наименование - оно нам пригодится) и документ установки цен

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

Переходим к выгрузке номенклатуры на сайт Битрикс из 1С.

Для начала - стандартным обменом 1С.

Переходим на вкладку Выгрузка товаров.

Обратить внимание.

Если произвести обмен сейчас - на сайте вообще не произойдет изменений. Вся номенклатура выгрузится в новый инфоблок, которого в пользовательской части сайта не видно.
Чтобы правильно попасть в уже настроенный инфоблок торгового каталога (он у нас называется Одежда) нужно правильно заполнить идентификатор каталога. Как его узнать?
В административной части сайта - переходим в Настройках к инфоблокам

И устанавливаем флажок «Показывать код загрузки из внешних источников »

После этого для Информационного блока Одежда увидим внешний код «clothes_s1»

Его можно поправить здесь или внести в 1С.

Далее переходим к настройке отбора в 1С

Обязательно создать и выбрать Соглашение

Как видно условия два: Доступно внешним пользователям и Сегмент партнеров - пустой

Обратить внимание.

На самом деле - есть еще и три: Оно должно называться BASE.Если пропустить этот момент, номенклатура на сайте будет заменена, но все товары будут недоступны для заказа. У них не будет ни количества, ни цен.

Остальные настройки в соглашении - могут быть «по вкусу». В том числе цена (многие волнуются по этому поводу).

Как и настройки отбора.

Обратить внимание.

После всех настроек - переводим режим обмена в состояние - выгружать в каталог на диске.

И производим обмен. Это нам даст возможность посмотреть, что же собственно выгружается, а 1С - проверить возможность записи в каталог.

После этого переключаемся в режим обмена с сайтом напрямую.

Обмениваемся с сайтом магазина.

Обмен прошел - номенклатура, цены, количество, картинки - все на месте.

Переходим к модулю обмена от Битрикс.

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

Обмениваемся и видим - товаров нет в наличии.
Если копнуть глубже - не загрузились цены.

Обратить внимание.

Для настройки обмена модулем Битрикс нужно правильно ввести внутренний код цены сайта.
Помните, мы договаривались, что первый обмен пойдет не напрямую на сайт, а в каталог на диске.
Ищем там файл prices_..
Открываем его в любом текстовом редакторе и ищем, тег ИдТипаЦены - это и есть внешний код цены сайта.

На сайте в разделе Магазин - Типы цен - редактируем базовую цену. Записываем правильный внешний код.

После этого сайт магазина приобретает правильный вид

Обратить внимание.

Если захотим вернуться к стандартному обмену - он не пройдет. Нужно на сайте в разделе Настройки - Командная PHP-строка - выполнить две строки кода

COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y") ;

COption::SetOptionString("sale", "secure_1c_exchange", "N") ;

После этого можно обмениваться с сайтом как модулем обмена Битрикс, так и стандартным обменом конфигурации.

А так же переходить к обмену заказами и многим другим интересным вещам в связке 1С:Предприятие - 1С Битрикс.

CRM Real-time обмен с «1С» представляет собой технологию двусторонней непрерывной связи между «1С-Битрикс: Управление сайтом» и «1С». Технология обеспечивает обмен данными в режиме реального времени. Работа системы не требует установки отдельного сервера и специальных настроек. Real-time обмен с «1С» работает стабильно при минимальной степени нагрузки интернет-магазина и «1С».

Как работает real-time обмен

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

Программа «1С» постоянно открывает и поддерживает соединение к сайту. Если произошел обрыв - она пытается восстановить подключение. Если «1С» выключена или на данный момент отсутствует связь с интернет-магазином, то изменения накапливаются и со стороны «1С», и со стороны интернет-магазина. Как только соединение восстанавливается происходит соответствующий обмен данными.

Нетребовательность к ресурсам

Неоспоримым плюсом системы обмена данными является ее нетребовательность к ресурсам. Она способна работать практически на любом компьютере. Все что для этого необходимо - задействовать ключ к «1С».

Как включить Real-time

Для того, чтобы заработал обмен данными в режиме реального времени нужно в «1С» установить модуль обмена 4.0 (новая реализация модуля не снимает «1С» с поддержки) и включить в настройках «1С» реальный режим обмена.

Вы разработали интернет-магазин на битриксе. Во время разработки вы создали все нужные свойства и заполнили каталог демо-товарами.

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

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

Цели статьи

  • Коротко изложить основные возможности обмена и его алгоритм работы;
  • Дать ссылки на официальные и прочие полезные источники;
  • Ответить на частые вопросы;
  • Прояснить, с чего начать интеграцию и как ее успешно завершить.

Стандартный обмен между 1С-Битрикс и 1С

В битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов.
Однако, для этого 1С должна быть “чистой” типовой конфигурации. На деле каждая первая 1С “нетиповая”, то есть модифицирована так или иначе.

Как таковой обмен и правда настраивается быстро и несложно, только часто (почти всегда) на этом дело не заканчивается, так как из 1С выгружаются не все данные или выгружаются не туда (в том числе из-за модификаций в 1С).

Что умеет штатный механизм обмена

  • Импорт каталога товаров из 1С на сайт;
  • Экспорт каталога товаров с сайта в 1С;
  • Экспорт заказов с сайта в 1С;
  • Импорт заказов из 1С на сайт;
  • Импорт справочников (highload-инфоблоков) из 1С на сайт.

Информация о товарах передается на сайт в следующих файлах

  • import.xml - товары, группы (разделы инфоблока), типы цен, склады, свойства товаров и единицах измерения;
  • offers.xml - торговые предложения (ТП) товаров и их свойствах;
  • prices.xml - цены ТП;
  • rests.xml - остатки ТП;
  • references.xml - пользовательские справочники (HL-инфоблоки).

Файлы import.xml и offers.xml содержат описания свойств, типов цен, и прочую информацию, которая относится в равной степени ко всем товарам/ТП.

Если каталог большой, в целях оптимизации, описания выгружаются в отдельных “заголовочных” файлах. Это такие же файлы import.xml и offers.xml, только не содержат ничего кроме описаний. В таком случае заголовочные файлы обрабатываются только в самом начале обмена.

Информация о заказах передается на сайт в следующих файлах

  • documents.xml - документы (заказы);
  • contragents.xml - контрагенты (пользователи-покупатели).

Куда на сайт загружаются файлы выгрузки

В папку /upload/1c_catalog/. Перед каждым обменом эта папка очищается. То есть в этой папке всегда находятся файлы последнего обмена.

Можно включить " режим отладки” обмена — отключить перезапись файлов в папке 1c_catalog. Таким образом можно отключить удаление файлов выгрузки после завершения обмена.

Для этого нужно объявить константу в файле dbconn.php:

// Включает "режим отладки” для обмена с 1С, // отключает перезапись файлов в папке 1c_catalog // Что бы сохранялись все файлы после выгрузки. define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

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

Чем больше число у папки, тем новее эта папка.
Однако, самая новая папка всегда будет без чисел, и только со следующим обменом она будет переименована.

Важно помнить, что с включенным режимом отладки очень быстро идет расход места на диске. Поэтому после отладки следует отключить лог и удалить все лишние папки обмена.

Что нужно для обмена на стороне сайта

  • редакция битрикса “Малый бизнес” или “Бизнес”
  • создать пользователя и группу “Обмен с 1С” для обмена, настроить права
    • разрешить группе выполнять выгрузку товаров/заказов (в настройках параметров)
    • разрешить группе доступ на чтение папки /bitrix/admin/

Что нужно для обмена на стороне 1С

  • настроить адрес сайта и пользователя сайта из группы “Обмен с 1С”
  • настроить параметры выгрузки на стороне 1С (зависят от версии УТ)

Структура каталога в 1С и на сайте

Что делать если структура каталога в 1С не совпадает со структурой на сайте?

В 1С можно задать какие товары и разделы выгружать.

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

Так же можно задать условия отбора товара (не все товары нужны на сайте) для выгрузки на сайт и свойства (в 1С много св-в, не все нужны на сайте).

Виды выгрузок из 1С

Полная выгрузка

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

  • Выгружаются все товары.
  • Картинки выгружаются только у новых или измененных товаров.

Краткая выгрузка

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

Полная принудительная выгрузка

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

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

С чего начать интеграцию c 1C

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

  • Будет создан тип иблока;
  • Будет создан иблок;
  • Будут созданы св-ва и справочники;
  • Будут созданы разделы каталога;
  • Будут созданы элементы каталога;
  • Будут созданы торговые предложения.

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

Как завершить интеграцию

Сопоставить структуры данных на сайте со структурой в 1С — вот главная цель интеграции.

Чтобы успешно завершить интеграцию, когда у вас уже есть полностью работающий проект, с актуальными данными, то нужно добиться, чтобы выгрузка из 1С проиcходила:

  • В существующий инфоблок;
  • В существующие св-ва;
  • В существующие разделы инфоблока;
  • В существующие товары и торговые предложения;
  • В существующие типы цен.

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