Как выполнить интеграцию с сервисом?

С целью автоматизации обмена данными между нашей и внешними системами мы создали специальный веб-сервис на базе протокола SOAP.
Наша WSDL-ссылка для подключения имеет следующий вид: https://sngtrans.com.ua/client/ws/exchange/?wsdl

В настоящий момент в веб-сервисе реализована одна процедура с названием run и текстовым параметром input_data (актуальность данной информации вы в любой момент можете проверить в WSDL-ссылке). Содержимое параметра и ответа процедуры являют собой данные в формате XML и в кодировке UTF-8. С помощью специально составленных запросов можно загружать данные, запрашивать получение требуемой информации и выполнять некоторые удаленные действия в системе. Описание содержимого этих XML-пакетов, четкую формализацию в формате XML Schema, а так же примеры вы можете скачать с данной страницы: Спецификация обмена XML 1.11.

Что бы не проверять наличие обновлений на нашем сайте, но всегда пользоваться актуальной версией нашей схемы XML для данных обмена, мы рекомендуем получать эту схему непосредственно из содержимого нашей WSDL-ссылке. Если вы являетесь пользователем системы на базе 1С:Предприятие 8.1 (и выше), то вам становится доступным корректный объект типа ФабрикаXDTO непосредственно в свойствах объекта WSОпределения, которым вы подключаетесь к нашему сервису.

Авторизация (связывание вашего подключения с учетной записью в системе) в нашем веб-сервисе происходит с помощью механизма базовой аутентификации с использованием ваших логина/пароля из сервиса, а потому мы настоятельно рекомендуем использовать протокол HTTPS для шифрования всего веб-трафика между Вами и нашим сервером (хотя и не запрещаем в целях отладки обычное подключение HTTP и советуем позже сменить пароль).

Вниманию пользователей систем на базе 1С:Предприятие 8.1 (и выше)

Для облегчения процесса подключения к сервису пользователей мы создали внешнюю обработку для обмена данными. Данная обработка будет себя корректно вести в конфигурации "Управление дистрибуторской компанией" и совместимых с нею (необходимо наличие транспортной подсистемы и планирования доставок). Пользователи других конфигураций могут рассматривать данную обработку как пример для реализации собственного обмена (а так же как интересный пример работы с XML, фабриками XDTO и веб-сервисами без доработок в конфигурации).

В текущей обработке реализован протокол Обмен XML 1.10, а так же приложена цепочка сертификатов SSL для подключения по защищенному протоколу HTTPS. Как пример встраивания сертификата приведен файл cacert.pem для платформы 1С 8.3.8.2054 (расположение в каталоге %ProgramFiles%\1cv8\8.3.8.2054\bin\ ). Скачать обработку можно с данной страницы: Обработка для обмена УДК и СНГТранс, версия 2.9.

Цепочку сертификатов вы так же можете скачать по этой ссылке или самостоятельно сохранить их с помощью вашего браузера.

Вопросы и ответы

SOAP

1.1. У вас есть возможность обмена данными через программный API, что бы наши программисты могли подключить ваш сервис к нашей системе?
Да. У нас есть веб-сервис на базе технологии SOAP, с помощью которого ваши специалисты смогут выполнить интеграцию. Детальнее на этой странице.

1.2. Что такое SOAP? Вы можете помочь нам найти информацию об этой неизвестной нам технологии?
Что такое SOAP, как его можно применять и собственно примеры применения можно посмотреть на официальной страничке этой технологии: http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
На русском языке обучение по использованию данной технологии так же можно посмотреть на сайте W3C: http://www.w3.org/2002/07/soap-translation/russian/part0.html

1.3. У нас установлена торгово-транспортная система на базе 1С:Предприятия 8, которую мы хотим интегрировать с вашим сервисом. Можете нам дать пример как это сделать?
На этой страничке уже лежит написанная внешняя обработка обмена данными для платформы 1С:Предприятие 8. Вы можете её взять и переписывать под свои нужды.

1.4. У нас установлена торгово-транспортная система на базе 1С:Предприятия 7.7, которую мы хотим интегрировать с вашим сервисом. Можете нам дать пример как это сделать?
На этой страничке уже лежит написанная внешняя обработка передачи данных нашему веб-сервису для платформы 1С:Предприятие 7.7. Вы можете её взять и использовать её код в своей работе.

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

1.6. У нас учетная система НЕ на базе 1С 7.7 и 8. Можете ли вы нам помочь с интеграцией?
В этом случае работы будет правильнее выполнить тем специалистам, которые поддерживают вашу учетную систему. Но если у вас нет технической поддержки, то можете обратится к нам и мы постараемся вместе найти выход из данной сложной ситуации.

Обмен XML

2.1. У нас получилось реализовать технологию SOAP. А как теперь передавать сами данные?
В настоящий момент в веб-сервисе реализована одна процедура с названием run и текстовым параметром input_data (актуальность данной информации вы в любой момент можете проверить в WSDL-ссылке). Содержимое параметра и ответа процедуры являют собой данные в формате XML и в кодировке UTF-8. С помощью специально составленных запросов можно загружать данные, запрашивать получение требуемой информации и выполнять некоторые удаленные действия в системе. Описание содержимого этих XML-пакетов, четкую формализацию в формате XML Schema, а так же примеры вы можете скачать с данной страницы: Спецификация обмена XML 1.11

2.2. Т.е. вы используете XML для того, что бы отправить XML?
Не совсем правильная постановка вопроса. Мы используем для загрузки, выгрузки и управления данными специально написанный для этого наш собственный протокол на базе XML. Доставка данных и управляющих команд в наш сервис и ответов назад осуществляется с помощью популярного в интернете протокола SOAP, который разработан ведущими мировыми разработчиками программного обеспечения. Использование XML в обоих протоколах является не более чем совпадением.

2.3. Как правильно оформить содержимое параметра в процедуре веб-сервиса? С помощью секции CDATA или нужно выполнить экранирование спецсимволов?
Для правильного размещения содержимого XML документа оформленного по правилам нашего формата обмена в системах со встроенной поддержкой SOAP ничего специально делать не нужно. Но если вы делаете интеграцию на низком уровне и самостоятельно реализуете протокол SOAP, то в этом случае на ваш вопрос правильный ответ - нужно экранировать управляющие символы. В теле тега-параметра вам нужно использовать:
& вместо &
&lt; вместо <
&gt; вместо >
&apos; вместо '
&quot; вместо "

2.4. А почему вы используете XML, а не JSON (CSV, DBF, TXT...) ?
В настоящее время формат XML стал де-факто корпоративным стандартом. В отличии от перечисленных альтернативных форматов хранения и передачи данных в XML есть одно большое преимущество - строгое описание структуры документа. Ни в одном из указанных в вопросе форматов нельзя указать обязательность (или не обязательность) наличия полей и их заполнения в потоке передаваемых данных. XML является легко расширяемым, имеющим возможность инкапсуляции данных, а так же имеющим схему для проверки соответствия результирующих данных формату. Благодаря удобству этого формата, работа с ним была реализована в большинстве автоматизированных учетных систем, а библиотеки для работы с XML есть во всех современных языках программирования.

2.5. Мы прочитали описание спецификации, но как говорится "лучше один раз увидеть". Вы можете дать образцы запросов?
В архиве, который вы скачиваете вместе со спецификацией есть каталог Примеры XML. В нем вы можете посмотреть примеры самых распространенных запросов.

2.6. Мы делаем обмен с веб-сервисом "с нуля" и у нас не получается. Вы можете дать образцы HTTP запроса и ответа для сравнения?
Мы записали на стороне сервера запрос и ответ на него. В качестве данных было использовано содержимое файла "Обновление точки маршрута.txt" из примеров в архиве спецификации. Обращаем ваше внимание на строчку Authorization: Basic xxxxxxxxxxxxxxxxxxx в содержимом запроса. Как мы уже говорили ранее, в веб-сервисе используется механизм базовой авторизации и именно тут (вместо xxxxxxxxxxxxxxxxxxx) указывается ваши логин и пароль сервиса, которые разделены двоеточием и зашифрованные в Base64.

2.7. Мы не нашли в вашем протоколе обмена важных для нас данных. Это окончательная редакция или будут доработки?
Нет, это не окончательная редакция протокола. В настоящий момент ведется работа по сбору замечаний и пожеланий к существующему варианту. Так же у нас запланировано на ближайшую реализацию получение данных по план-фактному анализу передвижения транспорта. Еще несколько пожеланий находятся на стадии рассмотрения. Вы можете связаться с нами для описания ваших потребностей и мы возможно так же запланируем их к выполнению.

2.8. Мы заметили, что номер версии протокола обмена изменился. Как узнать, что именно было изменено и как это нас коснется?
Разрабатывая новый функционал, мы ведем так же историю изменений. Списки этих изменений позволяют вам быстро сориентироваться и оценить важность/критичность для вас конкретных нововведений. Посмотреть список изменений в рамках протокола обмена XML можно в спецификации (последний раздел документа), а информация по обработке обмена с 1С сохраняется во встроенной справке (после запуска обработки нажмите F1 или кнопку помощи на форме обработки).