Меню

Настройка обмена данными с web сайтом

Обмен данными с конфигурацией через веб-сервисы

Внимание! Данный функционал доступен в «Библиотеке стандартных подсистем», начиная с версии 2.3.1.62.

Для обмена данными через формат EnterpriseData у конфигураций, использующих «Библиотеку стандартных подсистем», есть два веб-сервиса:

Т.к. объем передаваемых через веб-сервисы данных ограничен, данные передаются в виде архивов формата ZIP. Если размер архива слишком велик для передачи через веб-сервис – его разбивают на части и передают по частям. Максимальный размер передаваемого через веб-сервис за сообщения зависит от ряда факторов (от пропускной способности сети, от настроек веб-сервера, от объема свободной памяти на передающей и приемной стороне и т.д.). Опыт показывает, что лучше не передавать через веб-сервис данные размером более нескольких мегабайт.

Собственно задача обмена данными включает в себя две подзадачи:

Особенности работы методов веб-сервисов

Большинство методов обоих веб-сервисов имеют выходной параметр – строку ErrorMessage. В случае если внутри конфигурации произошла ошибка, связанная с бизнес-логикой – в эту строку будет записана информация об этой ошибке. Если ошибок в процессе работы метода не было – в строку ErrorMessage будет помещена пустая строка. Если же в процессе работы метода возникла системная ошибка (например, на стороне конфигурации не удалось разархивировать полученный архив) – веб-метод сгенерирует исключение (exception).

Большинство методов обоих веб-сервисов возвращают строки, но в текущей версии возвращаемые строки всегда пустые (кроме EnterpriseDataUpload.PutDataActionResult – он возвращает статус обработки данных на стороне конфигурации – “Active”, “Completed” либо “Failed”).

Ниже на примерах мы рассмотрим, как использовать эти веб-сервисы для обмена данными с конфигурациями из языков C# и Java.

Что нужно для работы


На стороне конфигурации

На стороне конфигурации должны быть развернуты веб-сервисы EnterpriseDataUpload и EnterpriseDataExchange соответствующих версий (в данном случае была использована версия 1.0.1.1). При открытии этих двух URL-адресов в браузере (нужно подставить правильное для вашей инсталляции «1С:Предприятия» имя веб-сервера и публикации):

должны выводиться WSDL-описания сервисов:

В примерах использовалась Visual Studio 2012. В ней было создано консольное приложение на C#, в него импортированы веб-сервисы:

Использовалась среда разработки Eclipse 4.4.2. Для генерации кода по WSDL файлов веб-сервисов применялась утилита wsdl2java из фреймворка Apache CXF 2.7.16.

Простой обмен данными с конфигурациями с помощью формата EnterpriseData


Формат сообщения

Объекты, предназначенные к обмену, «упакованы» в сообщение (Message), структуру в формате XML. Корневой элемент сообщения называется Message и содержит два дочерних элемента:

Объект может содержать в себе ссылки на другие объекты (например, документ «Акт выполненных работ» может содержать в себе одну или несколько ссылок на номенклатуру). В этом случае, если мы импортируем данные в информационную базу, все объекты, на которые мы ссылаемся из «родительского» объекта, должны либо уже существовать в системе, либо их описание должно содержаться в том же XML файле.

Читайте также:  Dota 2 производится первоначальная настройка

Если нам необходимо удалить какой-то объект, в коллекцию Body надо добавить элемент типа «УдалениеОбъекта», и в этом элементе сослаться на удаляемый объект (см. описание типа «УдалениеОбъекта» в схеме EnterpriseData_X_Y_Z.xsd).

С помощью формата EnterpriseData нам доступны операции создания, обновления и удаления объектов. На данный момент для корректной загрузки данных в типовые решения все объекты должны содержать заполненный элемент «Ссылка» из элемента «Ключевые свойства» (GUID в форме строки). Это первичный ключ объекта. Конфигурации ведут себя следующим образом:

Пример сообщения


Веб-сервис EnterpriseDataUpload

EnterpriseDataUpload – интерфейс исключительно для импорта данных в формате EnterpriseData в конфигурацию из сторонних приложений. Условия задачи: у нас есть XML файл с данными в формате EnterpriseData, надо передать его в конфигурацию и убедиться в том, что на стороне конфигурации данные успешно получены.

Алгоритм работы следующий:

Пример на C#

Итак, у нас есть архив с данными в формате EnterpriseData (один или несколько файлов). Не будем описывать, как в программе создать архив и разбить его на несколько файлов, чтобы сэкономить время – желающие смогут легко найти примеры подобного кода, используя поисковые сервера и соответствующие запросы.

Реализуем функцию, которая принимает такие входные параметры:

Путь до архивированного файла с данными. Если архив умещается в одном файле – это имя файла с полным путем, включая расширение (например, “C:\Exchange\data.zip”). Если же архив разбит на несколько частей, то это будет имя любого из файлов без расширения и точки (например, “C:\Exchange\data”). Предполагается, что это последовательность файлов с расширениями “.001”, “.002” и т.д.

Реализация функции (в виде статического метода) в листинге ниже. Диагностическая информация выводится в консоль.

Пример на Java

Принципиально ничем не отличается от реализации на C#.

Источник

Обмен данными с интернет-магазином

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

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

Читайте также:  Программа для настройки и прошивки роутеров

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

Таким образом, при интеграции с интернет-магазином система «1С:Предприятие» играет роль бэк-офиса.

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

Реализация обмена в системе «1С:Предприятие»

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

Обмен может быть выполнен либо по расписанию, либо по требованию пользователя системы «1С:Предприятие». Можно передавать только ту информацию, которая была изменена с момента последнего обмена.

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

Предусмотрены два типа настроек обмена данными.

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

2. Обмен с web-сайтом. Реализован в соответствии с открытым протоколом обмена данными.

Организация обмена данными на стороне систем управления web-сайтом

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

Источник

Протокол обмена с сайтом

Данный открытый протокол разработан компаниями «1С» и «1С-Битрикс».

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

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

В обоих случаях инициатором обмена выступает система «1С: Предприятие». Обмен электронными документами осуществляется в соответствии с правилами и форматами, описанными в стандарте CommerceML 2.

При инициализации взаимодействия устанавливается HTTP соединение. Система «1С: Предприятие» запрашивает у сайта необходимые параметры, такие, как максимальный объем пакета, поддержка сжатия и др. На основании этих данных система 1С: Предприятие формирует XML сообщения и передает их на сайт.

Выгрузка на сайт

Данные для публикации на сайте выгружаются одним пакетом.

Читайте также:  Настройка видеокарты ati radeon hd 4800 series

A. Начало сеанса

Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http:// / /1c_exchange.php? type=catalog& mode=checkauth.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

B. Запрос параметров от сайта

Далее следует запрос следующего вида:
http:// / /1c_exchange.php? type=catalog& mode=init

C. Выгрузка на сайт файлов обмена

Затем «1С: Предприятие» запросами с параметрами вида
http:// / /1c_exchange.php? type=catalog& mode=file& filename=
выгружает на сайт файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.

В случае успешной записи файла система управления сайтом выдает строку «success».

D. Пошаговая загрузка данных

На последнем шаге по запросу из «1С: Предприятия» производится пошаговая загрузка данных по запросу с параметрами вида http:// / /1c_exchange.php? type=catalog& mode=import& filename=

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

Примеры файлов выгрузки

Обмен информацией о заказах

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

A. Начало сеанса

Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http:// / /1c_exchange.php? type=sale& mode=checkauth.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

B. Уточнение параметров сеанса

Далее следует запрос следующего вида:
http:// / /1c_exchange.php? type=sale& mode=init

C. Получение файла обмена с сайта

Затем на сайт отправляется запрос вида
http:// / /1c_exchange.php? type=sale& mode=query.

Сайт передает сведения о заказах в формате CommerceML 2. В случае успешного получения и записи заказов «1С: Предприятие» передает на сайт запрос вида
http:// / /1c_exchange.php? type=sale& mode=success

D. Отправка файла обмена на сайт

В случае успешной записи файла система управления сайтом передает строку со словом «success». Дополнительно на следующих строчках могут содержаться замечания по загрузке.

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

Источник