Возможности интеграции с 1С-Битрикс: Управление сайтом
Возможности интеграции с 1С-Битрикс: Управление сайтом
Подключение 1С-Битрикс: Управление сайтом позволит осуществлять следующие действия (Как подключить 1С-Битрикс) :
1. Получать данные из 1C-Битрикс
Триггер Новый заказ и Триггер Заказ обновлен
Триггеры в режиме реального времени передают данные о новых заказах и заказах, в которых произошли изменения. Например изменился статус или набор позиций.
Оба триггера передают данные:
Данные о заказе:
- ID заказа;
- Дата и время добавления;
- Цена заказа;
- Валюта заказа;
- Статус заказа;
- Комментарий к заказу.
Данные о покупателе:
- ФИО;
- Телефон;
- Адрес;
- Созданные вами поля, например email.
Данные о позициях заказа:
- Товар — ID;
- Товар — XML ID;
- Товар — Внешний ID;
- Товар — Цена;
- Товар — Количество;
- Товар — Финальная цена;
- Товар — Имя.
Триггер Новый товар
Триггер отправляет информацию о новых товарах, созданных в 1С-Битрикс.
В момент создания товара будут передаваться данные:
Данные о категории и подкатегории:
- Инфоблок — ID
- Инфоблок — Символьный код
- Инфоблок — Имя
- Инфоблок — Внешний ID
- Инфоблок — Название раздела
- Инфоблок — ID раздела
- Инфоблок — XML ID раздела
- Инфоблок — Символьный код раздела
Данные о товаре:
- ID
- XML ID
- Внешний ID
- URL страницы детального просмотра
- URL списка элементов
- Символьный код
- Имя
- URL изображения товара
Свойства торгового предложения
- ID
- Артикул
- Цена
- Количество
- Свойства, созданные вами или системой, например: артикул, бренд, производитель, цвет, материал и т.д.
2. Передавать и обновлять данные в 1C-Битрикс
Экшн: Обновить заказ
Экшн позволит внести изменения или обновить существующий заказ. Например, изменить его статус или обновить позиции заказа.
Можно изменить или обновить следующие данные о заказе:
- Статус заказа
- Данные о покупателе
- Данные об адресе доставки
- Внести или изменить комментарий к заказу
- Отредактировать состав заказа
Экшн: Новый товар
Экшн позволит автоматически создавать новые товары в 1С-Битрикс.
При создании можно указать следующие данные:
Примеры использования
Передача заказов сделанных на сайте 1С-Битрикс в retailCRM
При поступлении нового заказа в 1С-Битрикс, Albato передаст данные в retailCRM, создаст нового покупателя и привяжет новый заказ к нему. В заказе сохраниться ID заказа из 1С-Битрикс, что позволит в дальнейшем синхронизировать статусы и данные между двумя системами.
Создание документа отгрузки в системе МойСклад при изменении заказа в 1С-Битрикс
Albato автоматически создаст покупателя и документ отгрузки в системе МойСклад, при переводе заказа определенный статус в 1С-Битрикс.
Изменение статуса заказа в 1С-Битрикс при изменении его статуса в МойСклад
При изменении статуса заказа в МойСклад, Albato изменит его статус в 1С-Битрикс
Создание нового товара в системе МойСклад при появлении нового товара в 1С-Битрикс
При появлении нового товара в одной из систем, товар создастся и в другой. Связка позволит связать данные о товарах в двух системах, чтобы упорядочить учет.
Все связки приведенные в примерах можно создать воспользовавшись “Шаблонами”
Инструкция по установке Сайта ЖКХ
Установка 1С: Сайт ЖКХ включает несколько этапов:
Установка платформы Битрикс
При помощи протоколов ftp, ssh или другого доступного вам способа загрузите скрипт bitrixsetup.php в корневую директорию web-сервера на удаленном хостинге. Скрипт можно скачать на сайте.
Затем в адресной строке браузера наберите: //www.ваш_сайт/bitrixsetup.php. Откроется окно выбора дистрибутива, в котором необходимо выбрать загруженный файл с дистрибутивом продукта.
После распаковки дистрибутива начнется процесс установки 1С-Битрикс. Нажмите кнопку «Далее».
Ознакомьтесь с лицензионным соглашением, отметьте галочкой «Я принимаю лицензионное соглашение» и нажмите кнопку «Далее».
Укажите данные, необходимые для регистрации продукта и нажмите кнопку «Далее».
Убедитесь, что ваша система удовлетворяет минимальным системным требованиям и нажмите кнопку «Далее».
На 5-м шаге необходимо указать реквизиты доступа к базе данных сайта.
После успешной проверки подключения к базе данных начнется установка продукта.
После завершения установки продукта будет предложено создать учетную запись администратора сайта. Укажите необходимые данные и нажмите кнопку «Далее».
Из списка «Выберите решение для установки» выберите «Демо-сайт для разработчиков» и нажмите кнопку «Далее».
Следующие шаги можно пропустить, поэтому здесь нажмите кнопку «Отмена»:
Активация лицензии на платформу Битрикс
Для активации лицензии на платформу Битрикс:
Перейдите в административный раздел сайта, далее в раздел «Marketplace – Обновление платформы» для активации лицензионного ключа по кнопке «Открыть лицензионное соглашение»:
После принятия лицензионного соглашения необходимо активировать ключ. Для этого следует заполнить все поля формы активации:
После активации ключа установите рекомендуемые обновления платформы на ваш сайт:
Активация лицензии на 1С:Сайт ЖКХ
После активации и обновления платформы активируйте ключ на решение в разделе «Рабочий стол – Marketplace – Обновление решений – Активация купона»:
После успешной активации купона автоматически откроется страница списка обновлений для загрузки решения Сайта ЖКХ. Необходимо загрузить его:
После загрузки решения следует установить обновления решения:
Установка 1С:Сайт ЖКХ
После того, как установили все обновления платформы Битрикс и решения «Сайт ЖКХ» запустим мастер установки сайта в разделе «Настройки – Настройки продукта – Список мастеров»:
На первом шаге настроек выберите существующий сайт и нажмите кнопку «Далее»:
Далее следуйте инструкциям мастера создания Сайта ТСЖ / ЖКХ.
Выберите шаблон для сайта:
Цветовую тему оформления шаблона:
Укажите название организации, адрес, телефон и e-mail, эта информация будет опубликована на сайте в разделе «Контакты» или загрузите заполненный файл шаблона.
Данные, введенные на шаге «Информация об объекте управления», будут использоваться при печати квитанций на оплату:
На следующем шаге введите e-mail для взаимодействия с платежной системой:
Шаг «Прочие настройки» позволяет выбрать формат квитанции, а также настроить рассылки уведомлений:
Как настроить работу сайта в связке с 1С
Электронная коммерция – популярный вектор развития для всех сегментов бизнеса. Множество торговых предприятий используют сайт, как канал для увеличения объема продаж. Помимо сайта могут быть и другие точки продаж и чем их больше, тем сложнее контролировать движение товара, поступления и остатки. Допустимо использование ручного учета, и это хорошо работает пока ассортимент продукции небольшой. Для автоматизации работы компании все каналы продаж необходимо интегрировать в единую систему управления торговлей. Внедрив ее, предпринимателю станет доступным складской учет, контроль продаж магазина в реальном времени, планирование закупок, статистика продаж и данные о перемещении товара.
В данной статье описана работа сайта в связке «1С: Управление торговлей», «1С Управление нашей фирмой», «1С: EPR».
Как настроить работу сайта в связке с 1С
На InSales можно настроить синхронизацию и реализовать:
- импорт номенклатур из 1С на склад интернет-магазина;
- привязку товаров из 1С с товарами, уже созданными в InSales;
- выгрузку заказов в 1С;
- выгрузку прайс листа в InSales, с целью обновления данных по стоимости, остаткам, параметрам и изображениям товаров;
- периодический обмен данными с каталогом на сайте.
Синхронизация с 1С доступна пользователям программы «1С: Управление торговлей» не ниже версии 10.3.4, «1С: Управление нашей фирмой», «1С: EPR». Возможна настройка синхронизации и с другими программными продуктами 1С, но для ее реализации требуется специалист в области 1С.
Обмен данными происходит в формате commerceML – это единый стандарт обмена коммерческой информацией, разработанный 1С.
Синхронизация с 1С: Управление торговлей 10
«1С: Управление торговлей» предназначен для автоматизации работы организаций, занимающихся всеми видами торговой деятельности.
Для настройки синхронизации 1С Управление торговлей с интернет-магазином на InSales установите приложение «Синхронизация с 1С», осуществив вход в бэк-офис InSales и перейдя в раздел «Приложения» — «Центр приложений». В магазине приложений в разделе «Учет» выбираем интересующее приложение и нажимаем кнопку «Установить».
Система направит нас в бэк-офис интернет-магазина. После входа в приложение необходимо войти в установленное приложение и настроить синхронизацию с 1С.
На сайте InSales есть рекомендации по настройке синхронизации, зависящие от программного продукта 1С и от наличия товаров в интернет-магазине.
Если каталог товаров в InSales отсутствует и используется продукт «1С Управление торговлей 11 » или «1С Управление торговлей 10» , обратитесь к инструкции «Синхронизация 1С Управление торговлей 11 с магазином без товаров» , «Синхронизация 1С Управление торговлей 10 с магазином без товаров» соответственно.
Рекомендуем начинать процесс заполнения каталога товаров именно с заведения их в 1С, и только потом настраивать синхронизацию с интернет-магазином. Дело в том, что изменения, внесенные в каталог товаров на стороне InSales, не отображаются в 1C. При этом корректировки на стороне 1С влияют на товары в магазине. Выгрузить товары из 1С несложно, а вот сопоставить товары, уже существующие в магазине с товарами, существующими в 1С – более трудная задача.
После настройки синхронизации с 1С приложение передаст информацию по товарам из 1С в интернет-магазин и отправит в 1С заказы для обработки, печати документов и резервирования товара.
Если каталог товаров в InSales заведен и используется продукт 1С , то нужно создать связку между товарами в 1С и товарами в магазине.
Синхронизация с 1С: Управление нашей фирмой
«1С: Управление нашей фирмой» помогает систематизировать и автоматизировать предприятия малого бизнеса, наладить процесс учета, контроля, анализа и планирования.
Принцип настройки синхронизации схож с «1С Управление торговлей 10», «1С Управление торговлей 11». Подробная информация в разделе «Синхронизация 1С: Управление нашей фирмой с магазином без товаров» .
Синхронизация 1С: EPR
«1С: EPR» — это решение для автоматизации крупного и среднего бизнеса.
Процесс синхронизация «1С: EPR» с магазином, в котором отсутствует каталог товаров аналогичен предыдущим, и включает в себя такие этапы:
- установка приложения «Синхронизация с 1С»;
- настройка соединения с web;
- настройка выгрузки товаров;
- настройка обмена заказами;
- первый обмен данными;
- работа с выгруженными товарами в приложении;
Подробная информация по настройке синхронизации в разделе «Синхронизация 1С: EPR с магазином без товаров» .
Что делать, если товары не создаются из 1С? Бывает, что при реализации синхронизации с «1С» товары не создаются или не отображаются в интернет- магазине. Факторов может быть несколько, например, в «1С» могут быть не указаны цены, а для магазина указание стоимости является обязательным. Мы сделали подборку с указанием основных причин, связанных с отсутствием товаров из 1С и разместили ее здесь . В случае, если вы столкнетесь с подобными сложностями внимательно изучите ее.
Почему не обновляются статусы заказов из 1С? Так бывает, если вы не включили в приложении по синхронизации соответствующую настройку. Каким образом обновить статусы заказов описано в статье «Обновление статусов заказов из 1С» .
Заключение
Средства автоматизации налаживают бизнес-процессы внутри компании и устраняют большую часть рутинной работы. Синхронизация интернет-магазина с 1С упрощает работу с каталогом товаров на сайте и снижает риск ошибок, связанный с наличием товара и его стоимостью.
Как работает обмен Битрикс с 1С. Часть 1
Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего планируется несколько частей, т.к. объем материала достаточно большой.
Как работает обмен Битрикс с 1С. Часть 1
Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего планируется несколько частей, т.к. объем материала достаточно большой.
Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Информация взята из онлайн-вебинара, автор которого Гелейшев Павел. Всего планируется несколько частей, т.к. объем материала достаточно большой.
Существует 5 типов обмена:
- Импорт каталога (в т.ч. остатки и цены) из 1С в Битрикс
- Экспорт каталога из Битрикс в 1С
- Обмен документами (заказы, оплаты, отгрузки)
- Обмен пользовательскими справочниками
- Обмен контрагентами
Импорт товаров из Битрикс в 1С используется единоразово, когда к уже существующему сайту подключают пустую 1С. Так же редко используются обмен справочниками и контрагентами, поэтому для начала рассмотрим импорт каталога и обмен документами.
Версии модулей
Старые версии обмена. (ниже 4.x)
- не требуют отдельной установки в 1С;
- у них ограниченный функционал по сравнению с новыми модулями;
- компания 1С-Битрикс официально уже не поддерживает данные модули и заявляет о их неработоспособности, но на практике данные модули еще встречаются и, хоть как, но работают.
Новые версии обмена. (4.x, 5.x, 6.x, 7.x)
- устанавливаются отдельно в 1С;
- умеют автоматически обновляться;
- под каждую версию 1С необходим свой модуль обмена.
Инициализация обмена
Обмен, какого бы типа он не был, всегда инициализирует 1С. Сайт не имеет доступа к 1С и никак не может к ней обратиться.
По умолчанию, если ничего не кастомизировано, все свои запросы 1С отправляет именно по этому адресу.
Рассмотрим по шагам как происходит обмен информацией (на примере обмена каталогом).
Шаг 1: авторизация
Для начала 1Ске необходимо авторизоваться на сайте, для этого она отправляет get запрос на страницу:
Где параметр type зависит от типа обмена: catalog — для обмена товарами, sale — для обмена документами. Параметр mode равный checkauth это как раз и есть попытка авторизоваться.
Вместе с этим, методом post 1Cка отправляет логин и пароль пользователя сайта под которым она авторизуется. Этого пользователя специально добавляют на сайте для 1С. Чаще всего его делают администратором с полными правами. Но будет правильнее ограничивать данного пользователя в правах и помещать его в отдельную группу, предоставляя только те права, которые необходимы для обмена. Логин и пароль пользователя вносится в 1С, в настройки модуля обмена.
На запрос авторизации, сайт отвечает строкой вида:
success PHPSESSID kLv28pH4X0XpW91T4wg28YeY7DwZZXnz
sessid=7f8ec88162e001fdccabfdd202653fc6 timestamp=1614319624
Где success означает что авторизация прошла успешно. Если вместо success будет fail, либо что-то еще, то 1С выдаст ошибку и обмен прекратится. Параметр sessid это идентификатор сессии, значение которого 1C будет добавлять в каждый следующий запрос обмена. Так сайт понимает, что полученные запросы именно от этой 1Ски и запоминает последнюю операцию обмена.
Шаг 2: инициализация
На этом шаге 1С делает запрос на страницу
Где в параметре mode передаётся init, а в sessid передаётся значение идентификатора сессии, полученное на прошлом шаге. Помимо этого в параметре version указывается версия схемы обмена. На данный момент самая последняя версия это 2.10. Версия передаётся из-за того, что в разных модулях для 1С, схема обмена реализована с отличиями, поэтому сайту необходимо понимать по какой схеме будет происходить обмен.
Получив запрос на инициализацию, сайт очищает все папки с файлами от предыдущего обмена и отвечает 1Ске строкой с настройками обмена:
Параметр zip равный yes, что означает у сайта есть библиотека для работы с zip архивом. 1С в данном случае будет отправлять файлы в zip архивах. Это экономит время для передачи файлов. В противном случае (zip=no) 1С будет отправлять XML файлы в открытом виде.
В параметре file_limit сайт указывает максимальный размер одного файла. Значение этого параметра задаётся в настройках обмена на сайте. В случае если файл будет большего размера, то 1С разобьёт его на несколько частей и будет передавать его, соответственно, за несколько запросов. Это необходимо для того что бы не сработало ограничение по размеру файлов загружаемых на сервер сайта.
Шаг 3: отправка файла
1С методом post отправляет тело файла по адресу:
Параметр mode устанавливается в значение file, а в параметре filename передаётся имя файла. Сайт сохраняет загружаемые файлы в папку /upload/1c_catalog/ (для обмена товарами), либо /upload/1c_exchange/ (для обмена заказами). Имя файла берется из параметра filename, т.е. именно 1С задает название файла обмена под которым сайт сохраняет его у себя.
Запрос на отправку файлов может повторяться несколько раз, например в случае если файл был разбит 1Ской на несколько частей. На каждый запрос сайт отвечает строкой:
Если в ответе будет что-то другое, то обмен прервётся с ошибкой.
После того как файл будет получен полностью, начинается сам процесс импорта.
Шаг 4: начало обмена
Для этого 1С отправляет запрос на страницу:
Где для параметра mode указывает значение import и повторно в параметре filename указывает имя файла.
В это время сайт находит нужный файл с указанным именем у себя в папке обмена и начинает импорт. Импорт выполняется в несколько шагов. На процесс импорта 1С уже никак не влияет, они лишь отправляет запросы повторно с mode=import до тех пока пока операция импорта не завершится. В ответ на каждый запрос она получает строку вида:
progress Временные таблицы созданы.
progress Файл импорта прочитан.
progress Обработано 1 из 1 элементов.
Если в строке есть значение progress, то 1С повторяет запрос и будет повторять до тех пор пока не получит ответ:
success Импорт успешно завершен.
Сам процесс импорта несколько необычен в 1С-Битрикс. Скрипт импорта не работает с xml напрямую (с помощью стандартных библиотек php), а создает в базе данных пустую таблицу b_xml_tree (предварительно очистив) и построчно считывая xml файл импорта заносит данные в созданную таблицу. После того как файл будет полностью перенесён во временную таблицу скрипт импорта начинает обрабатывать данные из таблицы и уже вносить изменения в данные сайта (например создаёт группы, товары и т.п.)
После того как импорт файла будет завершён запускается процесс деактивации разделов и элементов каталога.
Шаг 5: деактивация
Для того что бы файл импорта не разрастался, в выгрузку из 1С добавляют только доступные товары, которые должны быть на сайте, соответственно сайт должен убрать все неактуальные товары.
Процесс деактивации отличается в разных версиях модуля обмена:
в старых версиях деактивация происходила на 4-ем шаге (в момент импорта xml, настройки хранились на сайте),
в последних версиях деактивация происходит на отдельном шаге (настройки уже хранятся в 1С)
Деактивация происходит только при полном обмене. Для деактивации 1С отправляет запрос на страницу:
Где параметр mode равен deactivate, а так же указывается timestamp, значение которого 1С получала на первом шаге. timestamp это время начала обмена, по нему сайт ищет все товары, у которых время модификации меньше чем значение в timestamp и деактивирует их. Логика такая: все товары, которые были изменены после времени начала обмена — считаются что они были в xml импорта, а все остальные — нет.
Тут есть особенность, если в момент импорта каталога какие-либо товары были изменены (администратором, скриптом выполняющимся на cron и т.п.), то 1С-Битрикс не поймет, были они в импорте или нет. Такие товары не будут деактивированы, даже если их не было в обмене. Это особенно актуально для больших сайтов, где обмен выполняется очень долго.
При использовании нового модуля обмена, деактивация зависит только от настроек в 1С, настройки в 1С-Битрикс не работают.
Обмен заказами
Обмен заказами (выгрузка из 1С на сайт) идёт по той же самой схеме. Только в параметр mode передаётся значение sale, а сохранение файла происходит в папку /upload/1c_exchange/.
Для экспорта заказов в 1С используется запрос:
В ответ сайт отдаёт XML с заказами, которые были как-либо изменены с даты последнего обмена. Для этого сайт записывает дату и время последнего обмена. Время сохраняется в таблицу b_option, строка last_export_time_committed_/bitrix/admin/1c_excha.
При последующих запросах сайт отдаёт все заказы, в которых дата и время изменения новей, чем дата последнего обмена.
Например, если по какой-либо причине не выгрузился определённый заказ, то достаточно зайти в редактирование этого заказа и нажать «Сохранить». Тогда у заказа изменится дата редактирования и при следующем обмене он попадёт в выгрузку.
Так же можно сбросить время в last_export_time_committed, тогда в xml попадут все заказы. Пример кода для сброса:
Если обмен завершается с ошибкой
Например при запросе:
1C ожидает получить строку, например:
progress Файл импорта прочитан.
А получает: «DB query error»
В этом случае обмен закончится с ошибкой, и для того чтобы понять в чем именно дело необходимо смотреть логи обмена. 1С логирует весь процесс обмена. Путь для хранения лога настраивается внутри модуля 1С.
Так же есть галочка «Выгружать лог на сайт», в этом случае, после окончания обмена, 1С отправит логи на сайт. Но проблема в том, что если сайт при обмене падает с ошибкой, то логи 1С отправить не сможет.
Пример лога обмена 1С
В лог записываются, как действия самой 1С (например «Формирование пакета для общих данных для товаров»), так и то, что возвращает сайт (например «Процесс выполнения обмена: Временные таблицы удалены»). Для того, чтобы сайт возвращал более полные данные по ошибке, а не заглушку «DB query error», необходимо включить режим вывода расширенных ошибок:
После этого необходимо повторить обмен. В логах уже будет описана конкретная ошибка, например:
Table ‘sv22.b_xml_tree’ doesn’t exist
.
Сan’t create table ‘b_xml_tree’ (errno: -1)
.
MySQL Query Error: create table b_xml_tree_import_1c
Ошибка по таблице b_xml_tree возникает из-за того, что скорее всего было запущено несколько обменов одновременно. В битрикс процесс устроен так, что может идти одновременно только один обмен, т.к. запись происходит в таблицу b_xml_tree, которая очищается вначале каждого обмена. Т.е. при запуске второго обмена, таблица очистится и первый процесс обмена получит ошибку, т.к. таблицы уже не существует.
Очень часто это возникает из-за того, что подключают дополнительно тестовую 1С и забывают в ней отключить периодический обмен. И две 1С (боевая и тестовая) одновременно шлют запросы на обмен.
Так же случается, если настроен автоматический обмен по расписанию и примерно в это же время запускается ручной обмен.
В зависимости от настроек в 1С, даже при получении ошибки, 1С может попытаться продолжить процесс обмена. Но результат такого обмена непредсказуем, поэтому если в логе есть ошибки, то с ними необходимо разбираться.
Бонус для дочитавших
Когда необходимо посмотреть что же конкретно присылает 1С в xml, приходится запрашивать файлы выгрузки (1С хранит их локально), но это долго и неудобно.
Для решения этой задачи есть волшебная константа:
После её установки битрикс перестаёт удалять файлы обмена и сохраняет их в папки
/upload/1c_catalog0/
/upload/1c_catalog1/
.
/upluad/1c_catalogNNN/
Важно! После отладки обязательно убирайте константу, иначе место на сервере быстро закончится.