Больше контента и возможностей будет доступно после авторизации

Статьи

Как настроить обмен между 1С и сайтом?

24.06.22203

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

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

Обычная процедура обмена коммерческими данными между 1С и системой управления сайтом происходит по протоколу.

Коммерческие данные ‒ это информация о покупках и покупательских намерениях, содержащих инсайты о поведении потребителей и их пути.

По функциональности обмен можно разделить на два вида:

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

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

Обычные способы обмена 1С и 1С-Битрикс

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

  • тип «reference» ‒ из 1С на сайт;
  • тип «catalog» ‒ справочник из 1С на сайт;
  • тип «sale» ‒ пользователи или контрагенты из 1С на сайт;
  • тип «sale» ‒ заказы как из сайта, так и на сайт.

В каждой ситуации инициатором передачи данных является система 1С. Сайт самостоятельно ничего не загружает в 1С, он только принимает запросы и отдает результаты. Передача документированной информации, представленной в электронной форме, выполняется согласно определенным принципам. Описаны они в стандарте CommerceML 2.

Обмен информацией по протоколу HTTP (Hyper Text Transfer Protocol)

Клиентская программа делает запрос на сервер, тот в свою очередь его принимает, занимается обработкой и возвращает программе-клиенту. Как запрос, так и ответ идут в текстовой форме, разделенной на несколько элементов.

Строка поискового запроса отражает данные о методе передачи, URL-адресе, куда нужно перейти и версию самого протокола.

Тело запроса состоит из информации, которая непосредственно в нем находится. Тело сообщения не является обязательным параметром. Поэтому может как присутствовать, так и отсутствовать.

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

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

Формат

При передаче данных может быть использован один из вариантов.

Первый вариант ‒ стандарт CommerceML 2. Основа xml-сообщение. Используют для передачи стоимости, товаров, акций и предложений, заказов, складов, а также контрагентов (информация о клиенте вместе с платежным профилем).

Второй вариант ‒ текст, отвечающий на запросы 1С. В строке ответа указывается «success», «progress», «error» или «failure» соответственно завершенной процедуре. Может быть успешно выполненная операция, продолжение или возникшая ошибка.

Схема действий

С чего начать обмен?

HTTP ‒ это синхронный протокол. Для выполнения обмена нужно выполнить несколько последовательных шагов.

Процесс предоставления доступа

Процесс предоставления доступа на сайте выполняется с помощью метода basic access. Если авторизация успешна, то выйдет значение «success».

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

При разнице во времени, установленной в сервере и на сайте более чем на 10 минут, будет возникать ошибка. Исправить ее очень просто: необходимо выставить правильное время и повторить процедуру.

Проверьте модуль iblock на сайте. Если он отсутствует, то скачайте и установите. Иначе будет появляться запись «Модуль информационных блоков не установлен».

Своевременно обновляйте модули обмена.

Запрашиваемые настройки Битрикса

Cистема 1С делает запрос у сайта требуемых параметров. Управлять последними можно во вкладке «Интеграция с 1С». Находится в панели управления сайтом.

Сайт может открывать zip-архивы. Значение «yes» означает загрузку файла передачи данных в архив, что позволяет существенно экономить как время, так и трафик.

Параметр «file_limit» предельно допустимый размер файла в байтах для обмена однократно при HTTP- запросе. В свою очередь, когда нужно будет обменяться файлом, превышающим указанный размер, он будет разделен на несколько элементов.

После указания всех параметров формируются данные для передачи на сайт. Если в параметре «zip» указано значение «yes», то все файлы передаются в заархивированном виде. При выборе значения «no» выгрузка каждого файла происходит отдельно.

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

Обмен товарами между системой и сайтом

Тип «catalog» применяют для того, чтобы создать и обновить имеющиеся данные:

  • информационный блок товарной продукции;
  • ценовой сегмент;
  • виды стоимости;
  • складские помещения;
  • разделы в каталоге;
  • добавить новые товарные единицы;
  • наличие или отсутствие продукции на складе;
  • пользовательское поле раздела в 1С-Битрикс.

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

Выгружать можно xml-файлы с разным префиксом:

  • Referencec.xml ‒ справочники пользователя;
  • Offers.xml ‒ предложение продукции и ее описание;
  • Rests.xml ‒ оставшееся предложение продукции (доступна только в новой версии);
  • Import.xml ‒ продукция, разделка, вид стоимости, складское помещение, описание товара и в чем измеряется;
  • Prices.xml ‒ цены предложений продукции (доступно только в новой версии).

Если при авторизации всё пройдет успешно, то будет возвращен дополнительный параметр «timestamp», обозначающий время в данный момент. Система запомнит это и передаст данные на заключительном этапе обмена.

Этап 1. Как передать файл

Данное действие может быть выполнено не один раз. Выгрузка происходит по частям. Размер в байтах не должен превышать значение, указанное в параметре «file_limit». В свою очередь если значение произвольное, то выгрузить можно только через POST-запрос. Сайт самостоятельно создаст файл при его отсутствии. Имя присваивается то, что указано в запросе «GET-параметр» в критерии «filename». В окончании добавляется переданная информация. Происходит это до той поры, пока все части не будут переданы.

Этап 2. Ведущий

Этап является самым важным из всех. Загрузка файла на сайт завершена полностью. Последние в свою очередь начинает обработку, куда входит не менее 10 небольших процессов, о которых 1С ничего не известно. По этой причине в запросе «GET-параметр» в критерии «mode» указано «import» (запрос одинаковый во всех операциях). Но при этом сайт выполняет абсолютно разные процессы. Развитие сайта отмечается в сессии «[$_SEESSION(BX_CML2_IMPORT][NS]».

Этап 2.1. Открытие zip-архива

Данный этап необходим только в том случае, если файлы переданы системой в формате zip. Если не изменить настройки, то по умолчанию файл распаковывается в папку «/upload/1c_catalog».

При возникновении ошибки открытия архива нужно убедиться в том, что функция PHP_zip работает нормально и все необходимые разрешения к ней установлены.

Этап 2.2. Устранение непостоянных таблиц

Заниматься непосредственно xml-файлом обременительно и малоэффективно. Особенно, если он имеет большой размер. По этой причине вся информация помещается в таблицу на какое-то время. Обычно называется таблица «b_xml_tree». В случаях, где она создавалась, на данном этапе она подлежит удалению.

Этап 2.3. Разработка таблицы на время

Здесь происходит создание таблицы «b_xml_tree». Когда имеется РНР константа, то таблица тут же будет проиндексирована. По окончании этого всего будет выдано событие «OnBeforeCatalogImport1C».

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

Этап 2.4. Загрузка файлов

Сайт поэтапно читает файл, который был передан из системы 1С, постепенно заполняя таблицу «b_xml_tree». Интервал одного шага в секундах (0 ‒ выполнять загрузку за один шаг) можно указать в окне «Интеграция с 1С». Находится на панели управления сайтом.

Этап 2.5. Индексирование

Для более быстрого импорта индексирование таблицы «b_xml_tree» выполняется уже после того, как файл будет прочтен.

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

Этап 2.6. Импорт данных, предоставляемых информацию о других данных

Этот этап представляет собой процессы создания или обновления следующей информации:

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

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

При выборе сопровождения 1С осуществляется комплекс мероприятий, обеспечивающий правильное функционирование системы без сбоев. При необходимости функционал может быть расширен. Также предоставляются все данные о работе и возможностях программного обеспечения. На выбор представлены следующие тарифы: «ИТС ПРОФ», «ИТС ПРОФ Старт», «ИТС ПРОФ Комфорт», «ИТС ПРОФ Оптимум», «ИТС ПРОФ Ультра».

Этап 2.7. Импортизация

На данном этапе в информационном блоке происходит обновление и создание всех разделов каталога, которые находились в xml-сообщение. Сопоставляются в файле и базе данных по XML_ID.

Если на сайте такой пункт отсутствует, значит, создание происходит автоматически. В случае, когда таковые имеются, выполняется сопоставление тех, что представлены в файле, и тех, что числятся в базе данных. Если изменять ничего не нужно, то сайт обновляет только одно поле TIMESTAMP_X и пропускает раздел. В случае несовпадения запускается полный процесс обновления. Настройки сайта на это никак не влияют.

Разделы добавляются без пересчета полей LEFT_MARGIN и RIGHT_MARGIN. Так значительно экономится время и ресурсы.

Если дерево будет объемное, то могут возникнуть ошибки. Возникают они по причине превышения лимита времени. Решить их можно тремя способами:

  • зайти в настройки сервера и увеличить временной промежуток на исполнение для страницы «Интеграция с 1С»;
  • игнорировать ошибки до получения записи «progress»;
  • повторить действие несколько раз.

Этап 2.8. Перерасчет

На данном этапе пересчитывается дерево раздела. Часть разделов удаляется, часть деактивируется. Перестройка выполняется в зависимости от ситуации.

Этап 2.9. Импортирование продукции

В этом шаге в информационном блоке происходит создание и обновление всех позиций товаров, которые находились в xml-файле. Сопоставляются в файле и базе данных по XML_ID.

Если на сайте такой пункт отсутствует, значит, создание происходит автоматически. В случае, когда таковые имеются, выполняется сопоставление тех, что представлены в файле, и тех, что числятся в базе данных. Если изменять ничего не нужно, то сайт обновляет только одно поле TIMESTAMP_X и пропускает раздел. В случае несовпадения запускается полный процесс обновления. Настройки сайта на это никак не влияют.

Во время импортирования товара появляются данные в поле TMP_ID. Значение для этого поля находятся в узле «Номер версии». Если там его нет, то сайт производит расчет контрольной суммы на основании информации из xml-сообщения.

Причиной ошибки отсутствия временной таблицы может быть одновременная работа нескольких систем 1С с сайтом.

Этап 2.10 Удаление и/или деактивация

На данном этапе также происходит пересчет дерева разделов.

В новых версиях на этом этапе не требуется никаких дополнительных действий.

Этап 2.11 Окончание процесса

Завершение процедуры импорта. Никакой обработки здесь не требуется.

Этап 3. Деактивация ненужной и старой информации

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

Настройки «Что делать с товарами, отсутствующими в файле импорта» и «Что делать с группами, отсутствующими в файле импорта» ни на что не оказывают влияния. В любом случае деактивации не избежать.

Но возможен этот этап только при полнейшей выгрузке.

Этап 4. Окончание импортирования

Дополнительно обрабатывать данные не нужно. Только выпускается событие «OnSuccessCatalogImport1C».

Обмен данными о заказах

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

Схема действий рабочего процесса с заказом:

  1. Оформление на сайте.
  2. Когда заказ передается в 1С:Предприятие, то должен быть отмечен пункт «Заказ сайта». Также обязательно указываются номер и дата заказа, установленные при оформлении на сайте. Для поиска физического или юридического лица, с которым заключен гражданско-правовой договор, используют ИНН или наименование организации. Последний пункт может отличаться запятой, так как указывается в настройках.
  3. После того как заказ загружен, необходимо найти договор с клиентом. Ищут его среди тех, что имеются с контрагентом. При отсутствии будет создан новый.
  4. После того как заказ загружен, необходимо найти его характеристику, которая передается с сайта. Поиск в 1С:Предприятие производится по наименованию. Если такая информация отсутствует, то ее необходимо внести.
  5. Модификация заказа может происходить в системе 1С:Предприятие. Но в то же время измененная информация будет отражаться на сайте.
  6. Пока заказ не оплачен и не отгружен, никакие данные в систему не вносятся. Только по факту. Заказ оплатили или отгрузили, отметку поставили. Пока действия не совершено, заказ не оплачен и не отгружен.
  7. После того как данные об отгрузке и оплате в систему будут внесены, изменить эту информацию будет уже невозможно. Загрузить заказ на сайт не получится. Клиент об этом будет оповещен.
  8. Каждая выгрузка сопровождается определением категории товара. Значения устанавливаются те же, что и при заказе на сайте.

Обратите внимание! Когда при выполнении какого-либо запроса возникает ошибка, то в первой же строке ответа система управления указывает слово «failure». В последующих строках идет характеристика ошибки, которая произошла в ходе обработки запроса. В случае когда происходит ошибка, которая не подлежит обработке, возвращается html-код.

В статье мы разобрали интеграцию программы 1С с сайтом, сделанным на платформе 1С-Битрикс. Такую же интеграцию можно настроить с любой другой платформой.

Внедрение (автоматизация) программы 1С поможет автоматизировать компанию с помощью программных продуктов 1С. Программное обеспечение необходимо адаптировать непосредственно под требования конкретной компании. Функциональные возможности подбираются в соответствии с бизнесом, продажами или производством. У нас на выбор представлено несколько видов внедрения 1С: быстрое внедрение, проектное внедрение по РМВОК и итерационное внедрение по Agile.

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

Для заказа автоматизации 1С и по другим вопросам пишите в чат справа или звоните по номеру +7 (499) 956-21-70.

Подключайте бота «Что делать Если»

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

Подключить