Для реализации интеграции с 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). Включаем в конфигураторе возможность изменения
, и интегрируем модуль дополнения от Битрикс.
Этот процесс полностью описан в файле документации, идущем в комплекте с модулем. Цитирую дословно:
- Включить в объединение (установить флажок) подсистему «Битрикс»: "Конфигурация" - "Общие" - "Подсистемы" - "Администрирование" - "Битрикс".
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С.