Возможно ли интегрировать 1С-Предприятие и PHP сайт используя DMService?
Мне поставили задачу получать данные из 1С-предприятия используя SOAP протокол.
Данные нужны на PHPшном сайте.
Программист 1С настроил DMService и дал мне ссылку на документацию. Он утверждает, что он сделал свою работу, а дальше дело за мной.
Я же прочитав документацию и немного повозившись с кодом убедил себя в том, что DMService - это "история внутри 1с" и не предусматривает использование в PHP.
Скажите, могу ли я использовать DMService с PHP?
Если могу, то дайте, хоть какую-то ссылку, либо фрагмент кода, либо, хоть что-то, пожалуйста.
Буду рад любой подачке. Спасибо)
А какое отношение посредник имеет к средствам?
Спойлер: никакого.
Если какой-то сервис помогает тебе соединить две программы, то тебе нужно его посредничество, а не средства.
Поэтому посредством, а не "по средствам".
Alams Stoyne, хотя очень вероятно, что я ошибаюсь, я вижу так, что статья, ссылку на которую вы дали, описывает применение SOAP в общем, a DMService - это какой-то более частный пример.
Я посмотрел документацию по DMService, и там приводятся примеры его использования в среде 1С: вызывается метод execute (и это единственный доступный метод), которому в качестве единственного параметра передается какая-то структура, судя по всему содержащая объект класса доступного в 1С. Но я не уверен, потому что никогда не работал с 1С.
Иван Шумаков, Если за сторону 1С и DMService отвечает другой человек то это не ваша головная боль.
Вам нужно получить данные для авторизации по SOAP и уточнить какие есть методы на веб-сервисе.
А дальше получайте/отправляйте/обрабатывайте данные
Константин Нагибович, я не работал с сервисами SOAP (и это усложняет все безмерно). Я почитал что это такое и в общем понял принцип. Я, собственно, устанавливаю соединение при помощи Пышечного класса SoapClient. Все стандартные методы работают (получение списка типов, получение списка методов). Дальше же начинается, как я понимаю, конкретная заморочка этого конкретного сервиса: потому что нам доступен только один метод execute, который принимает один единственный параметр. Судя по примеру кода на 1С (два комментария выше), в параметр передается объект XDTO и (цитата "Работа с ними не зависит от языка") XDTO - это штука которая есть только в 1С.
Я догадываюсь, что в итоге в параметр передается просто XMLка (не путать с XML который определяет выполнение метода), но не понимаю, как мне узнать структуру.
DMService - это SOAP-сервис для работы с системой Документооборота. Это лучше чем REST, так как тут вам доступно полное описание входящих/исходящих типов в XDTO-пакете.
Программист 1С настроил DMService и дал мне ссылку на документацию. Он утверждает, что он сделал свою работу, а дальше дело за мной.
Если у вас в статуте проекта ничего не было о предоставлении простого и понятного доступа, то вас кинули. DMService - это часть Библиотеки Интеграции Документооборота (БИД), которая поставляется исключительно как 1С-подсистема. Можно написать библиотеку на PHP, если вам в ближайшие месяцы нечем заняться, но это потребует глубокого погружения в понимание структуры хранения данных и в организацию процессов Документооборота (не каждый сертифицированный консультант в этом поможет).
Библиотек для сторонних языков нет (по крайней мере я не нашел ни одной, тем более для php).
Но прочитав ссылки выше - предполагаю что это обычный xml-пакет завернутый сверху в что-то типа wsdl (xml over xml короче).
По вашей ситуации можно зайти с нескольких сторон (очевидные самые простые решения):
со стороны ленивого разработчика: потребовать документацию с примерами http запросов и ответов (или другими протоколами)
со стороны php разработчика: открыть ссылку в браузере (может быть это обычный wsdl)
со стороны 'сетевика/сисадмина': поставить fiddler на компьютер 1С-ника и попросить написать клиент и отправить несколько разных запросов и скинуть лог вам