A huge collection of 3400+ free website templates JAR theme com WP themes and more at the biggest community-driven free web design site
Домой Opencart Готовый внешний веб-сервис для взаимодействия 1С и PHP

Готовый внешний веб-сервис для взаимодействия 1С и PHP

1cgw — программная сборка (внешний веб-сервис, WSDL-ссылка), реализованная средствами PHP для прямого обращения, передачи и получения данных между конфигурациями «1С: Предприятие 8» и  информационными системами на базе PHP.

В описании будет рассмотрен пример обращения из «1С: Предприятие 8» к базе данных CMS  Open Cart.

Поддержку SOAP обеспечивает SOAP-расширение для PHP.

Наш SOAP-сервис (веб-сервис) написан с использованием программного каркаса на PHP Zend Framework. А именно, используется компонент Zend_Soap фреймворка, который создает оболочку вокруг SOAP-расширения для PHP и имеет полный набор инструментов для создания и развертывания SOAP-сервисов.

Zend_Soap расположен в папке Zend, ядро веб-сервиса (сервер SOAP) — в папке OneC.

Для определения возможностей SOAP-клиентов при работе с веб-сервисом создается набор сервис-объектов с методами и публикуется на сервере SOAP.

Это API сервиса в файле формата WSDL (Web Service Description Language, язык описания веб-сервисов и доступа к ним).

Клиенты SOAP могут получать из этих файлов информацию об именах методов, типах входных и выходных данных и возвращаемых значениях.

SOAP-сервер осуществляет перевод типов данных SOAP в стандартные типы данных, анализирует пакеты запросов SOAP, реализует соответствующий метод сервиса, а также генерирует пакеты ответов SOAP с результатами.

1cgw — это публикация SOAP-протокола плюс файл INDEX.PHP, в котором описаны процедуры информационной базы PHP c параметрами, к которым происходит обращение из 1С.

Если процедура описана в файле INDEX.PHP, входящего в сборку 1cgw, то из 1С, после подключения внешнего веб-серсиса через инструмент WSПрокси, возможно обращение к этой процедуре/объекту.

Состав и содержимое INDEX.PHP редактируется с учетом БД.

Рассмотрим пример: функцию поиска товара по ID.

—————————————————————————————————-

В INDEX.PHP она описана следующим образом:

private function _getProduct($product_id) {

return $this->model_catalog_product->getProduct($product_id);

}

—————————————————————————————————-

//В 1С создаем объект WSПрокси: 

Функция ПолучитьWSПрокси(Витрина, ИмяФайла) Экспорт

    Попытка

        Определение = Новый WSОпределения(Витрина.АдресВитрины + «/» + ИмяФайла);

        Прокси = Новый WSПрокси(Определение, Витрина.АдресВитрины + «/» + ИмяФайла, «OneCGatewayService»,                     «OneCGatewayPort»);

        Возврат Прокси;

    Исключение

        Возврат Неопределено;

    КонецПопытки;

КонецФункции

—————————————————————————————————-

//Пример вызова функции поиска номенклатуры в 1С по ID OpenCart:

//В качестве адреса витрины может быть прописан путь: http://localhost.ru/1cgw (в примере «Витрина» используется как

//параметр)

Функция НайтиНоменклатуруПоИД(ОпенКартИД)

    ВебСервис = ПолучитьWSПрокси(http://localhost.ru/1cgw, «index.php»);

    Если ОпенКартИД = 0 ТогдаВозврат Ложь; КонецЕсли;

    ТипЦелое = ВебСервис.ФабрикаXDTO.тип(«http://www.w3.org/2001/XMLSchema«, «int»);

    product_id = ВебСервис.ФабрикаXDTO.создать(ТипЦелое, ОпенКартИД);

    Попытка

        retStr = ВебСервис.getProduct(product_id);

        Продукт = retStr.item;

        Возврат Истина;

    Исключение

        Возврат Ложь;

    КонецПопытки;

КонецФункции

Примечание: 1сgw используется при реализации обмена в режиме реального времени для решений:

M-IT: Управление интернет-магазином  из 1С

Реализован обмен с CMS Open Cart, Prestashop и Simpla на базе PHP

В 1сgw меняется только содержание файла INDEX.PHP, в зависимости от состава процедур и параметров информационной системы на базе PHP.

1S-8.3-PHP-web-servis_feofan.net_ (271.9 KiB, 227 downloads)

5 комментариев

  1. нихрена не понял о чем оно или для чего

  2. Тогда вам оно не надо

  3. Кто-то пробовал разобраться и настроить?

  4. Поставил, настроил(ничего особо трудного нет). Посмотрел — выключил. ТОлку никакого почти, прямой интеграции с существующей базой нет, импорт из ИМ в 1с нет. Не стоит заморачиваться

Оставить Комментарий

Вы должны Зарегистрироваться или Войти что бы оставить комментарий.