Содержание:
1. Интеграция конфигурации 1С с Soap протоколом
2. Алгоритм настройки SOAP-клиента в 1С
3. Доступ к Soap веб-сервисам 1С из JavaScript и HTML
1. Интеграция конфигурации 1С с Soap протоколом
Интеграция программного продукта системы 1С с Soap протоколом позволяет обеспечить множество новых возможностей в организации бизнес-процессов.
Soap (Simple Object Access Protocol) представляет собой стандартный протокол для обмена данными по Интернету, основанный на XML. Он используется для передачи сообщений от одного узла к другому, в частности, использование веб-сервисов.
Интеграция конфигурации 1С с Soap протоколом позволяет обмениваться данными между 1С и другими программными продуктами, использующими веб-сервисы для обмена данными. Это может быть полезно, например, если ваша компания использует CRM-систему или любую другую систему, которая обеспечивает работу с клиентами. Одна из главных причин, по которой стоит интегрировать 1С с Soap протоколом – это возможность передавать данные между различными приложениями с помощью стандарта, который используют многие приложения. Кроме того, интеграция с Soap позволяет вызывать удалённые процедуры и обращаться к удалённым объектам 1С, что значительно расширяет возможности 1С в интеграции с другими приложениями.
1С поддерживает следующие форматы для обмена данными: XML, JSON и SOAP. Для работы с Soap в 1С используется стандартная библиотека средств доступа к веб-сервисам.
2. Алгоритм настройки SOAP-клиента в 1С
Основной способ - использовать SOAP-клиент 1С. С его помощью можно вызывать удалённые процедуры и передавать данные между 1С и другими приложениями через интернет. Настройка SOAP-клиента в 1С не сложна и представляет собой такой алгоритм:
1. Установка на компьютер программы-сервера, с которым будет происходить взаимодействие (например, CRM-систему или любое другое приложение, которое использует веб-сервисы);
2. Убедиться, что сервер, на котором установлена программа-сервер, работает и доступен по сети;
3. Создать Soap-клиента в 1С;
4. Задать параметры подключения (URL, пользователь, пароль);
5. Создать необходимые функции или методы в 1С для работы с данными, используя Soap-клиент;
6. Протестировать функции и методы.
3. Доступ к Soap веб-сервисам 1С из JavaScript и HTML
Далее будет описан метод, с помощью которого можно обращаться к веб-сервисам 1С через страницу HTML при помощи JavaScript.
Как пример, могут служить первые буквы наименований справочников, где, если кликнуть на букву – произойдёт вывод всех справочников, начинающихся на эту букву.
Данным методом можно пользоваться, если и страница HTML, и веб-сервис были размещены на едином сервере. Именно так точно не возникнет кросс-доменных неполадок. Если же домены совпадать не будут, то браузер покажет такой текст ошибки:
Пусть, у нас есть, со стороны системы 1С, веб-сервис «catalogs», в котором существует операция «Execute». Для входа у нас будут параметры, которые имеют или тип данных «string», или тип «script», а выходной тип у них будет «string». При этом, операция запустит некий script код, который был внутри параметра, а вернёт уже в виде сериализации JSON по переменной result. Это представлено далее:
При этом, важно понимать, что сериализация JSON является достаточно удобной, если работать с ней при помощи JavaScript и менять строку на массив или объект при помощи команды eval(resultText).
Проверим корректность ответа от веб-сервиса, после того, как введём его адрес, что демонстрируется далее:
Сам проект файла HTML лучше начинать отталкиваясь от готового шаблона, в котором есть опись стилей для различных браузеров.
В верхней форме нужно указать элементы, которые отвечают за настройки веб-сервера, среди них:
· wsPassword – пароль;
· wsUser – логин;
· wsUrl – веб-сервисный адрес.
Логин и пароль должны совпадать с тем, который у юзера в 1С.
В панели слева будут находиться справочники, к которым есть доступ – это catalogsList, а справа будут показаны данные – catalogRecords, а также буквы – letters.
Функция, которая отвечает за обращение к Soap веб-сервису выглядит так:
При входе в executeSoap будет подан 1С-скрипт, который был исполнен именно со стороны конфигурации системы 1С, а также будет подан обработчик. Если вдруг возникнет ошибка, то, как раз, будет обращение к обработчику – processError, он отвечает за вывод сообщений об ошибках.
При этом, важно понимать, что код от 1С был прописан внутри кода HTML, при помощи тэга script. А, чтобы отобразить текст какого-либо из кусков кода – нужно воспользоваться конструкцией jQuery $("#enumerate1CCatalogs").text().
Например, так будет выглядеть получения куска кода с названиями каталогов:
А так отобразится получение первых букв:
А так получение данных с условием по первой букве:
Если кликнуть по «Обновить», то произойдёт вызов функции
Если она была корректно выполнена, то появится обработчик processSucces, как показано на примере программного кода 1С далее:
XML, возвращаемый веб-сервисом, содержит сериализацию JSON в метке m:return. Чтобы перевести его в объекты JavaScript, следует использовать вызов eval. Обработчик очистит список справочников и заново отформатирует его через метки li с атрибутом catalog, применяя класс catalogTitle к каждому элементу.
Также все управляющие элементы будут обрабатываться аналогично. Если нажать на справочник, буквы и данные будут очищены, а затем заполнены заново. Если нажать на букву, данные будут заполнены из справочника. Куски кода на 1С в блоках script с типом "text/1c" отвечают за обработку.
Приложение будет выглядеть таким образом:
В данной статье было рассмотрено то, как взаимодействуют Soap протокол и конфигурация системы 1С, а также рассказан подробный способ по доступу к Soap веб-сервисам 1С из JavaScript и HTML. По сути, стало ясно, что интеграция 1С с Soap - это мощный инструмент, который позволяет заметно расширить возможности вашей системы. Сообщения, передаваемые между приложениями с помощью Soap могут быть как запросами на выполнение, так и ответами на эти запросы. Они используют XML-формат, что делает доступным для обмена множество различных типов данных. Таким образом, интеграция 1С с Soap является одним из наиболее удобных и универсальных способов обеспечить эффективное взаимодействие между 1С и другими приложениями.
Специалист компании ООО "Кодерлайн"
Айдар Фархутдинов










