Доступ к SOAP веб-сервисам 1С из JavaScript и Html

Публикация № 194486 16.07.13

Интеграция - WEB-интеграция

Описанный метод позволяет обратиться к веб-сервисам 1С из html-страницы через JavaScript. В качестве примера выводится список справочников. При нажатии на любой справочник выводятся первые буквы наименований. При нажатии на букву выводятся данные с наименованиями, начинающимися на эту букву.

Описанный метод позволяет обратиться к веб-сервисам 1С из html-страницы через JavaScript. В качестве примера выводится список справочников. При нажатии на любой справочник выводятся первые буквы наименований. При нажатии на букву выводятся данные с наименованиями, начинающимися на эту букву.

Способ применим для случаев, когда веб-сервис и html-страница опубликованы на одном сервере. В этом случае не возникает кросс-доменных проблем. Например, если домены будут отличаться, то Chrome выдаст ошибку:

Failed to load resource: Origin http://localhost:3299 is not allowed by Access-Control-Allow-Origin

Не вдаваясь в подробности публикации веб-сервисов, предположим, что на стороне 1С создан и опубликован веб-сервис catalogs с операцией Execute. На входе - параметр script типа string, на выходе тип string. Операция запускает на стороне произвольный код script из параметра и возвращает JSON-сериализацию от переменной result.

Функция ExecuteCommands(script)
    result = null;
    Execute(script);
    return JSON(result);
КонецФункции

С JSON-сериализацией удобно работать средствами JavaScript и преобразовать строку в объект/массив одной командой eval(resultText). В Интернете можно найти несколько JSON-сериализаторов для 1С.

Удостоверимся, что веб-сервис отвечает, введя его адрес:

Проект Html-файла лучше начать с готового шаблона, где прописаны стили на все случаи браузеров. Весьма достойный шаблон находится по адресу http://html5boilerplate.com/ В шаблон включен jQuery 1.9.1.

На форме сверху разместим элементы настройки веб-сервера: wsUrl - адрес веб-сервиса, wsUser - логин, wsPassword - пароль. На стороне веб-сервиса 1С включена basic autherization. Логин и пароль соответствуют пользователю, прописанному в 1С.

Левая панель отвечает за отображение доступных справочников catalogsList, правая - за отображение букв (letters) и данных (catalogRecords).

JavaScript

Функция обращения к SOAP веб-сервису определена следующим образом:

function executeSoap(script, successHandler) {
    var wsUrl = $("#wsUrl").val();

    var soapRequest =
        '<?xml version="1.0" encoding="utf-8"?>' +
        '<soapenv:Envelope ' +
            'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
            'xmlns:api="http://www.1cbit.ru/dominicana/soap-html-js" ' +
            'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
            'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
            '<soapenv:Body>' +
                '<api:Execute soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
                    '<' + 'script xsi:type="xsd:string">' + script + '</' + 'script>' +
                '</api:Execute>' +
            '</soapenv:Body>' +
        '</soapenv:Envelope>';

    $.ajax({
        type: "POST",
        url: wsUrl,
        contentType: "text/xml",
        dataType: "xml",
        username: $("#wsUser").val(),
        password: $("#wsPassword").val(),
        data: soapRequest,
        success: successHandler,
        error: processError
    });
}

На входе в executeSoap подается скрипт 1С, который выполняется на стороне 1С, и обработчик для удачного исполнения. В случае ошибки вызовется обработчик processError, который выведет сообщение об ошибке.

Код 1С записан в html-коде через script-тэг. Получить текст каждого куска кода для выполнения можно через jQuery $("#enumerate1CCatalogs").text().

Получение списка наименований каталогов.

<script id="enumerate1CCatalogs" type="text/1c">
    result = Новый Массив();
    Для Каждого СправочникИзМетаданных Из Метаданные.Справочники Цикл
        структура = Новый Структура("name, synonym");
        структура.name = СправочникИзМетаданных.Имя;
        структура.synonym = СправочникИзМетаданных.Синоним;
        result.Добавить(структура);
    КонецЦикла;
</script>

Получение первых букв наименований справочника {catalog}

<script id="getFirstLetters" type="text/1c">
    запрос = Новый Запрос();
    запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ Подстрока(Наименование, 0, 1) КАК letter ИЗ Справочник.{catalog} УПОРЯДОЧИТЬ ПО Подстрока(Наименование, 0, 1)";
    result = запрос.Выполнить().Выгрузить();
</script>

Получение данных для каталога {catalog}, где первая буква входит в условие {condition}.

<script id="getCatalogData" type="text/1c">
    запрос = Новый Запрос();
    запрос.Текст = "ВЫБРАТЬ Ссылка as ref, Наименование as name ИЗ Справочник.{catalog} ГДЕ Подстрока(Наименование, 0, 1) В ({condition})";
    result = запрос.Выполнить().Выгрузить();
</script>

При нажатии на кнопку Обновить происходит вызов функции

executeSoap($("#enumerate1CCatalogs").text(), processSuccess);

и при успешном выполнении вызывается обработчик processSuccess

function processSuccess(data, status, req) {

    var resultText = $(req.responseText).find("m\\:return").html();
    result = eval(resultText);

    $("#catalogRecords").empty();

    catalogsList = $("#catalogsList");
    catalogsList.empty();

    $(result).each(function (index, item) {
        var li = '<li catalog="' + item.name + '">' + item.synonym + '</li>';
        catalogsList.append(
            $(li).addClass("catalogTitle")
        );
    });
}

 

Веб-сервис возвращает xml, где значимым является содержимое m:return-тэга - JSON-сериализация. Перевести его в объекты JavaScript можно через eval-вызов. Обработчик очищает перечень справочников и заново его формирует через li-тэги с атрибутом catalog. Каждому элементу устанавливается класс catalogTitle.

Веб-сервис возвращает xml, где значимым является содержимое m:return-тэга - JSON-сериализация. Перевести его в объекты JavaScript можно через eval-вызов. Обработчик очищает перечень справочников и заново его формирует через li-тэги с атрибутом catalog. Каждому элементу устанавливается класс catalogTitle.

Аналогично обрабатываются нажатия на все управляющие элементы. Нажатие на справочник очищает буквы и данные, перезаполняет буквы. Нажатие на букву перезаполняет данные из справочника. За обработку кода на 1С отвечают куски кода в script-блоках с типом "text/1c".

Приложение выглядит так:

Нерешенная проблема авторизации на браузере IE

Существует проблема авторизации на IE. На IE 8/9 не удалось решить проблему basic authorization аналогичным для остальных браузеров методом.

На IE Ajax не работает с использованием user/password - свойств $.ajax. На FF и Chrome все работает нормально. По какой-то причине на сервер в случае с IE не передается заголовок

Authorization: Basic 0JHQsNGF0YjQuNC10LLQn9CYICjRgNGD0LrQvtCy0L7QtNC40YLQtdC70YwpOg==

Если кто-нибудь знает причину и как обойти, пожалуйста, напишите в комментариях.

Выводы

Предложенный подход на основе SOAP имеет право на существование для несложных задач, так как сопровождается достаточно большим числом JavaScript кода. Возможно, в будущем удастся создать JavaScript фреймворк для упрощения процесса создания приложений.

Разработчики в этом способе самостоятельно отвечают за безопасность. Необходимо проверять входные параметры при записи, не позволять запуск произвольных скриптов, переданных с клиента. В статье выполнение произвольного кода показано только для примера. Унифицировать можно выполнение произвольного запроса, но это связано с опасностью SQL-инъекций.

Внешние компоненты Native API от 1С не будут работать в данной среде. Это значит, что нужно дополнительно решать проблему с написанием драйверов для оборудования.

// //

Скачать файлы

Наименование Файл Версия Размер
Пример веб-сайта

.zip 81,76Kb
37
.zip 81,76Kb 37 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Asmody 16.07.13 10:44 Сейчас в теме
часть кода после
var soapRequest =
парсер пожрал?
3. Elisy 947 16.07.13 11:24 Сейчас в теме
(1) Asmody,
парсер пожрал?

Да, парсер. В каждой статье что-нибудь съедает. Как побороть не придумал еще.
function executeSoap(script, successHandler) {
    var wsUrl = $("#wsUrl").val();

    var soapRequest =
    '<?xml version="1.0" encoding="utf-8"?>' +
    '<soapenv:Envelope ' +
    'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
    'xmlns:api="http://www.1cbit.ru/dominicana/soap-html-js" ' +
    'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
    'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
    '<soapenv:Body>' +
    '<api:Execute soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
    '<' + 'script xsi:type="xsd:string">' + script + '</' + 'script>' + 
    '</api:Execute>' +
    '</soapenv:Body>' +
    '</soapenv:Envelope>';

    $.ajax({
    type: "POST",
    url: wsUrl,
    contentType: "text/xml",
    dataType: "xml",
    username: $("#wsUser").val(),
    password: $("#wsPassword").val(),
    data: soapRequest,
    success: successHandler,
    error: processError
    });
}
Показать
6. kuntashov 422 16.07.13 17:44 Сейчас в теме
(3)

Как побороть не придумал еще.


В статью вставляйте картинкой, а для тех, кому нужен исходник - давайте ссылку на сниппет, который можно разместить либо на http://gist.github.com либо на http://pastebin.com
2. detro 46 16.07.13 11:03 Сейчас в теме
Есть ли оценки производительности 1С при выдаче результатов по SOAP, какая возможная интенсивность работы ?
4. sikuda 669 16.07.13 12:06 Сейчас в теме
username: ,
password: , в IE не работают на русском(Пришлось делать пользователей на английском). Причина и решение самому интересна.
8. Elisy 947 17.07.13 11:27 Сейчас в теме
(4) sikuda,
username: ,
password: , в IE не работают на русском(Пришлось делать пользователей на английском). Причина и решение самому интересна.

Спасибо. Интересная версия. Хотя бы намек появился на причину. На другом ресурсе
http://www.richmedia.us/post/2013/06/25/soap-1c-jscript-html.aspx
в комментарии предложили переписать Authorization-заголовок
5. AllexSoft 16.07.13 12:14 Сейчас в теме
По моему опыту все гораздо веселее работает на PHP5... не люблю я JS ( за статью плюс!
7. Johny_v 137 17.07.13 08:36 Сейчас в теме
Если кто-нибудь знает причину и как обойти, пожалуйста, напишите в комментариях.

Сделай простенький модуль на PHP, который будет обращаться к веб-сервису 1С и возвращать XML или JSON.
AJAX-ом будешь обращаться к этому модулю. Тогда не должно быть проблем с авторизацией.
Был где-то пример. Могу поискать, если надо.
pallid; Elisy; vasiliy_b; +3 Ответить
11. Elisy 947 18.07.13 10:17 Сейчас в теме
(7) Johny_v,
Сделай простенький модуль на PHP, который будет обращаться к веб-сервису 1С и возвращать XML или JSON.
AJAX-ом будешь обращаться к этому модулю. Тогда не должно быть проблем с авторизацией.
Был где-то пример. Могу поискать, если надо.

Хотелось бы обойтись без посредников. Модуль PHP тянет за собой PHP и настройку сервера. В сложных задачах, вероятно, не удастся обойтись без Asp.Net/PHP, а на простых, думаю, можно обойтись средствами клиента.
9. opx 752 17.07.13 13:55 Сейчас в теме
Soap это такой же http запрос, переданный в виде xml и полученный ответ тоже в xml.
По мне удобнее работать с soap запросами через xmlhttp = Новый COMОбъект("Msxml2.XMLHTTP");
Кстати и с авторизацией можно попробовать через xmlhttp.setRequestHeader("Authorization","Basic dXNlcm5hbWU6cGFzc3dvcmQ=");
10. Трактор 1243 17.07.13 14:13 Сейчас в теме
Параметры авторизации можно прописать в файле default.vrd, в строке с путём к информационнойй базе ib. Работает не на всех релизах 1С, но на последних должно работать. Так мы получим анонимный сервис.
14. Elisy 947 18.07.13 14:34 Сейчас в теме
(10) Трактор,
Параметры авторизации можно прописать в файле default.vrd, в строке с путём к информационнойй базе ib. Работает не на всех релизах 1С, но на последних должно работать. Так мы получим анонимный сервис.

Новость вызывает двоякое чувство. С одной стороны - это гибкость. Но с другой стороны 1С и сетевая безопасность - вещи несовместимые. Применение оправдано без выхода в публичную сеть.
12. sashocq 192 18.07.13 11:01 Сейчас в теме
У меня одного возникают сомнения в практической ценности данного материала?
19. Elisy 947 19.07.13 06:20 Сейчас в теме
(12) sashocq,
У меня одного возникают сомнения в практической ценности данного материала?

Мы на определенном этапе столкнулись с ограничениями управляемых форм. Ведут они себя непредсказуемо, занимают много лишнего места. Адекватная замена - это html. Именно поэтому html было уделено много внимания. Подходы использования html могут быть различными: встраивание html в УФ на стороне 1С, встраивание веб-клиента 1С в свой Frame и создание своих страниц с доступом по soap. Все эти варианты были рассмотрены в предыдущих и этой публикациях. Насколько применимы, судить нужно в каждом конкретном случае.
24. zqzq 23 19.07.13 16:16 Сейчас в теме
(19)
Мы на определенном этапе столкнулись с ограничениями управляемых форм. Ведут они себя непредсказуемо, занимают много лишнего места. Адекватная замена - это html.

Такое впечатление, что у вас там веб-программисты собрались, неосилившие управляемые формы. Пока что недоказанное утверждение, попробуйте статью на эту тему написать с примерами и посмотрите на реакцию сообщества.

Управляемые формы "из коробки" очень много функционала реализуют при минимальных усилиях разработчика.
25. obemgyorik 99 19.07.13 18:00 Сейчас в теме
(24) Странные у вас выводы :)
Наоборот, собравшиеся люди много работали с управляемыми формами, поэтому прекрасно знакомы с их ограничениями - статью здесь писать не о чем, любой профессиональный разработчик, проработавший с упр. формами более 2х месяцев прекрасно знает все эти ограничения. И то что "управляемые" формы во многих аспектах фактически не управляемы также неоспоримый факт (размеры формы и элементов, цвет фона, расстояние между элементами, шрифты заголовков, управление стандартными панелями навигации, отсутствие многих элементов управления и прочее, и прочее...)

Во многом (но далеко не всегда) эти ограничения обоснованы тем, что
управляемые формы "из коробки" очень много функционала реализуют при минимальных усилиях разработчика.

Но позиция нашей команды - это бережное отношение к пользователю и уделение большого внимания к интерфейсу и юзабилити, и здесь решений "из коробки" часто не хватает.
mdSerg; Elisy; +2 Ответить
31. Elisy 947 22.07.13 13:36 Сейчас в теме
(24) zqzq,
Такое впечатление, что у вас там веб-программисты собрались, неосилившие управляемые формы. Пока что недоказанное утверждение, попробуйте статью на эту тему написать с примерами и посмотрите на реакцию сообщества.
Управляемые формы "из коробки" очень много функционала реализуют при минимальных усилиях разработчика.

Наконец-то появился человек, который разъяснит нам во многих местах странное поведение УФ и откровенные баги Такси, а то на форуме 1С не торопятся комментировать.
Много функционала УФ - это заявление маркетологов, потому что набор из Группа-Поле-Таблица-Декорация в нормальных фрейморках за функционал не считается. Попробуйте на досуге поиграться с шириной бордюра, поуправлять отображением, растянуть кнопку на всю ширину формы, убрать сплиттер между таблицами. Может, вы подскажете, как подсказку генерить динамически и отображать разную для каждой строки таблицы? А вы в курсе были, что в динамических списках бестолку использовать ПЕРВЫЕ N - конструкцию, потому что динамический список настолько высокоинтеллектуальный, что в расчет ее не берет.
52. mdSerg 19.02.16 04:05 Сейчас в теме
(24) zqzq, (24) zqzq, Поставил бы минус на Ваше высказывание. А автор молодец.
13. AllexSoft 18.07.13 11:39 Сейчас в теме
Elisy, просьба, ну то же самое только с прицелом на PHP, было бы гораздо полезнее... почему имено JS ?
22. Elisy 947 19.07.13 12:33 Сейчас в теме
(13) AllexSoft,
Elisy, просьба, ну то же самое только с прицелом на PHP, было бы гораздо полезнее... почему имено JS ?

Я работал в рамках поставленной задачи. Здесь делюсь результатами исследований. PHP не входил в поставленную задачу. Да и статьи на тему PHP + 1C были: в (18) пример одной из них.
Лично я не сторонник веб-сервисов вообще, а сторонник альтернативного подхода, где работа ведется по веб-протоколу 1С. Связано это с тем, что веб-сервисы пока не доступны в облаках, а их реализация не является универсальной.
15. Johny_v 137 18.07.13 14:35 Сейчас в теме
В случае использования связки PHP + JS вы получите более безопасный метод обращения к веб-сервису.
Пользователь вообще не сможет узнать что используется веб-сервис 1С, тем более адреса сервера и данные авторизации.
17. AllexSoft 18.07.13 20:14 Сейчас в теме
(15) Johny_v, (16) badboychik, помоему автор игнорирует все вопросы о Web-сервисы + PHP ((
20. Johny_v 137 19.07.13 08:23 Сейчас в теме
(17) AllexSoft,
Нет, он вроде объяснил что хочется обойтись без PHP. Может в его случае это как-то оправданно.
21. AllexSoft 19.07.13 10:31 Сейчас в теме
(20) Johny_v, ну если это считать объяснением...

В сложных задачах, вероятно, не удастся обойтись без Asp.Net/PHP, а на простых, думаю, можно обойтись средствами клиента


Хм, а проект расчитан для ларьков? Насколько я понял подобная модульная система (с веб мордой) будет охватывать всю деятельность предприятия, тогда зачем говорить о простых задачах и наивно полагать что хватит JS ?)
28. Elisy 947 19.07.13 20:28 Сейчас в теме
(21) AllexSoft,
Хм, а проект расчитан для ларьков? Насколько я понял подобная модульная система (с веб мордой) будет охватывать всю деятельность предприятия, тогда зачем говорить о простых задачах и наивно полагать что хватит JS ?)

Вы что-то совсем ниже плинтуса опустили JS. JS + HTML5 + jQuery(UI) даст фору управляемым формам, потому что формат открытый, стандартизованный и поддерживаемый во всем мире. Там уж точно нет багов, которых уже насчитали штук 10 в новом Такси. Контролов раз в 100 больше от разных производителей и они гибкие и настраиваемые под любые задачи. Не то, что набор из Поле-Таблица-Декорация. 1С пошла по пути Microsoft, которая выпустила лет 10 назад XAML и ее реализацию для web XBAP (до нее WebForms). Потом одумались XAML оставили для десктопа, а для веба создали Asp.Net MVC + jQuery.
27. Elisy 947 19.07.13 20:08 Сейчас в теме
(17) AllexSoft,
(15) Johny_v, (16) badboychik, помоему автор игнорирует все вопросы о Web-сервисы + PHP ((

Стараюсь отвечать на вопросы по мере возможности. Но про PHP мне нечего сказать. Во-первых к данной теме не относится, а во вторых - я разбираюсь в Asp.Net, а не в PHP. По PHP вам лучше найти кого-то другого.
16. s_vidyakin 64 18.07.13 18:43 Сейчас в теме
когда я работал с веб-сервисами 1С из РНР, возникла проблема преобразования сложных вложенных структур XDTO в объекты РНР. Может в эту сторону подумать?
18. Трактор 1243 18.07.13 22:28 Сейчас в теме
(16) (17) В качестве примера можно 1С+php рассматривать эту разработку http://infostart.ru/public/59207/ Если сподоблюсь сделаю пример попроще.
26. Elisy 947 19.07.13 20:01 Сейчас в теме
(16) badboychik,
когда я работал с веб-сервисами 1С из РНР, возникла проблема преобразования сложных вложенных структур XDTO в объекты РНР. Может в эту сторону подумать?

Я перспективней вижу технологию 1С Business Connector. После Проекта Доминикана вернусь к той теме.
23. AllexSoft 19.07.13 12:49 Сейчас в теме
веб-сервисы пока не доступны в облаках

хм, мне казалось этои была попытка 1С сделать что нибудь облачное (в истинном смысле, когда данные хранятся у клиента, а обработка происходит на облачном сервисе), а не веб-морду к базе данных с разделителями учета (как сейчас есть на 1с фрэш)

ПС: а в чем их не универсальность в данной реализации ?
29. Elisy 947 19.07.13 20:34 Сейчас в теме
(23) AllexSoft,
ПС: а в чем их не универсальность в данной реализации ?

Не совсем понял, в какой реализации?
30. AllexSoft 22.07.13 09:44 Сейчас в теме
(29)
Связано это с тем, что веб-сервисы пока не доступны в облаках, а их реализация не является универсальной.


Вот я про это, в чем не универсальность веб сервисов платформы?
33. Elisy 947 23.07.13 14:42 Сейчас в теме
(30)(32)
Извиняюсь за задержку. Неуниверсальность относится к вопросу №4 публикации 1С в SaaS:
http://www.forum.mista.ru/topic.php?id=645570
http://habrahabr.ru/qa/31297/
Судя по ответам, на тот момент не было возможности пользоваться веб-сервисами на популярных 1С SaaS-площадках.

Можно еще почитать комментарии (начиная с 9го) к
http://forum.infostart.ru/forum24/topic75705/
"Веб-сервисы более прогрессивны, но и у них есть свои особенности работы и сложности (настройка, преобразование типов, сложность стандарта, несовместимость). "
34. AllexSoft 23.07.13 21:17 Сейчас в теме
(33) по поводу 1cfresh это проблема конкретной реализации конфигураций, а не платформы... я всетаки говорил про сам обмен через SOAP web-сервисы
за вторую ссылку спасибо, почитал... согласен про преобразование типов, но никуда не денешься от этого, тут проблемы платформеных типов значений которая она использует
35. Elisy 947 23.07.13 21:33 Сейчас в теме
(34) AllexSoft,
Elisy, по поводу 1cfresh это проблема конкретной реализации конфигураций, а не платформы... я всетаки говорил про сам обмен через SOAP web-сервисы

Меня очень интересует вопрос - есть ли системные проблемы у веб-сервисов на SaaS-серверах 1С, работающих на базах с разделением данных. Не встречались ли статьи на тему особенностей использования веб-сервисов в режиме разделения данных? Какие особенности и узкие места, практика использования?
Наша система планируется именно такой и хотелось бы знать, можно ли закладывать в нее клиентские веб-сервисы, как инструмент, например, для обмена с веб-сайтами клиентов. Есть опасения, что веб-сервисы могут привести к уязвимостям в системе безопасности.
36. AllexSoft 23.07.13 21:47 Сейчас в теме
(35) к сожалению примеров таких систем не знаю, да и статьи искал и не нашел ( самому интересно... если напишите статью о использовании web-сервисов в нестандатных задачах (условиях модульности, условиях разделения данных) то было бы очень интересно.
А по поводу стоит ли закладывать возможности обмена с сайтами через SOAP то конечно нужно, вот только придумать как ) схемы подключения xsd пользовательских схем, сам обмен данными на подобие обработки универсального обмена и файлов правил...
32. AllexSoft 23.07.13 13:16 Сейчас в теме
37. 6есик 52 08.08.13 15:57 Сейчас в теме
Я обычный XMLHttpRequest использовал, то у меня авторизируется обоими способами.
Только в IE заметил разницу что при авторизации не через хедеры при неправильных данных не появляется стандартное окно авторизации в браузере.

И при использовании русских символов либо в пароле либо в пользователе авторизация неработает даже в стандартных окошках авторизации в браузере (пробовал хром,мозилу,експлорер)
38. i.kovtun 175 25.08.13 19:13 Сейчас в теме
(37) 6есик,
А в какой кодировке отправляете реквизиты авторизации? Подозреваю 1С UTF-8 ожидает...
39. Elisy 947 26.08.13 14:15 Сейчас в теме
(38) i.kovtun,
На странице выставлен meta для utf-8. Хорошо бы было, если бы браузер ее и использовал :)
40. 6есик 52 27.08.13 12:21 Сейчас в теме
(38) i.kovtun,
Да по разному пробовал уже. И через encodeURIComponent() пробовал авторизационные данные пропускать, но ничего не помогло. Даже надоело пробовать - но если у кого-то получиться то было бы очень интересно увидеть.
42. i.kovtun 175 20.09.13 13:55 Сейчас в теме
(40) 6есик,
Вот появилась публикация http://infostart.ru/public/201461/, в ней есть информация по поводу авторизации киррилистических логинов. Сам пока до проблемы не добрался.
41. Vlasenko.Oleg 10 02.09.13 16:47 Сейчас в теме
По поводу авторизации попробуйте использовать Preemptive Authentication,
здесь описано как http://hc.apache.org/httpclient-3.x/authentication.html
43. prodines 107 08.04.15 12:11 Сейчас в теме
А как всё-таки составлять SOAP-запросы из веб-клиента к веб-серверу 1С?
44. AllexSoft 08.04.15 12:25 Сейчас в теме
(43) prodines, точнее проблему озвучьте, в чем сложность то? примеров использования SoapClient на PHP полно, там 3 строки кода.. ну а собственно вызов из вашего клиентского приложения веб сервиса на 1С или на чем то другом одинаков, там все равно ответы в формате XML вам будут приходить. Ну а как парсить ответы это уже другая тема =)
46. prodines 107 10.04.15 12:13 Сейчас в теме
(44) AllexSoft, (45) Суть проблемы в следующем: есть веб-клиент в виде броузера с загруженным HTML/JavaScript-файлом. Есть Веб-сервер в виде связки 1С:Предприятие и Апач. Задача: обращаться из клиента к серверу и получать некий ответ. Вопрос: какого вида XML-файлы слать из клиента на 1С? Откуда я узнаю их формат, синтаксис?

При этом, разумеется, такие вещи, как JSON, WSDL, SOAP, jQuery - для меня, программиста 1С, тёмный лес. Кое-как со скрипом я ещё могу осилить JavaScript - хотя это тоже довольно непростой язык программирования, просто я случайно прочитал недавно 5 издание библии флэнагана. Да, ну и XML - вещь понятная, разумеется, т.к. 1С-программист с XML регулярно сталкивается в работе.

Таким образом, данная статья мне вообще абсолютно непонятна - ни единого слова.
47. Elisy 947 15.04.15 08:06 Сейчас в теме
(46) Извините, что отвечаю с запозданием. На Инфостарт с определенного момента перестала нотификация об ответах приходить по почте. Очень неудобно стало.

Суть проблемы в следующем: есть веб-клиент в виде броузера с загруженным HTML/JavaScript-файлом. Есть Веб-сервер в виде связки 1С:Предприятие и Апач. Задача: обращаться из клиента к серверу и получать некий ответ. Вопрос: какого вида XML-файлы слать из клиента на 1С? Откуда я узнаю их формат, синтаксис?

Думаю, вам нужно решить сначала вопрос с авторизацией.
Для вашего случая есть несколько подходов: 1) из этой статьи и 2) http-сервисы из мира 1С 8.3. В обоих случаях встанет проблема ввода пользователем логина и пароля. В случае статьи - хранение логина и пароля будет на стороне веб-браузера, в случае с http-сервисов логин и пароль распознает 1С и факт распознавания будет передаваться через куки. 3) подход - http://infostart.ru/public/104926/ может не предполагать авторизации совсем (Требует платный компонент .Net Bridge - встречал аналог через COM-объект).

Я встречал несколько вариантов передачи данных от сервера к клиенту: JSON и XML. Самый распространненный в веб-мире все-таки JSON, но он очень медленный при формировании средствами 1С.
По методам:
1) Поддерживает XML, внутрь ответов можно встраивать JSON. Формат XML фиксированный - определяется 1С стандартом SOAP - сложный для понимания.
2) Поддерживает XML, JSON - гибче, чем 1й подход. Формат XML и JSON вы определяете на стороне 1С
3) Поддерживает XML, JSON. Формат XML и JSON вы определяете на стороне 1С
48. prodines 107 15.04.15 11:48 Сейчас в теме
(47) то ли Вы ничего не ответили на мой вопрос, то ли я не сумел ничего понять. Да поймите же - JSON для меня просто не существует. Примите это как условное допущение. И изучать его я не стану - нет смысла.
Формат XML и JSON вы определяете на стороне 1С

Возможно, это является ответом. Тогда это и есть суть моего вопроса - как конкретно это делается - "Формат XML вы определяете на стороне 1С"?
49. AllexSoft 15.04.15 16:47 Сейчас в теме
(48) prodines, думаю у вас еще недостаточно теоретической основы для реализации вашей задачи.
При этом, разумеется, такие вещи, как JSON, WSDL, SOAP, jQuery - для меня, программиста 1С, тёмный лес.

И изучать его я не стану - нет смысла.

ну тогда вы ничего и не сделаете к сожалению ( Нельзя что-то сделать и не понимать что ты делаешь. Копипаст тут не прокатит
50. Elisy 947 16.04.15 07:29 Сейчас в теме
(48) prodines,
Про JSON нужно знать, что это альтернатива XML. Это текстовая строка, полученная на выходе какой-то функции 1С. Ее понимает JavaScript. 1С запакует структуру в JSON без вашего участия, JavaScript его поймет и восстановит объект опять без вашего участия.
Код для получения JSON при беглом поиске можно взять здесь http://infostart.ru/public/61194/
XML создается стандартными 1С-средствами, например, так - для таблицы значений:
	Запись = Новый ЗаписьXML;
    Запись.УстановитьСтроку("UTF-8");
     
    Запись.ЗаписатьОбъявлениеXML(); 
    Запись.ЗаписатьНачалоЭлемента("root");  
     
    МасКолонки = Новый Массив();
    Запись.ЗаписатьНачалоЭлемента("columns");   
    Для Ном = 0 по Таблица.Колонки.Количество()-1 цикл          
        Колонка = Таблица.Колонки[Ном];
        МасКолонки.Добавить(Колонка.Имя);
         
        Запись.ЗаписатьНачалоЭлемента("colum");
        Запись.ЗаписатьАтрибут("Name",Колонка.Имя);
        Запись.ЗаписатьАтрибут("Type",Строка(Колонка.ТипЗначения));
        Запись.ЗаписатьКонецЭлемента();  // colum       
    КонецЦикла;     
    Запись.ЗаписатьКонецЭлемента();  // columns
     
    Запись.ЗаписатьНачалоЭлемента("records");   
    Для Каждого СтрТаблицы из Таблица цикл
         
        Запись.ЗаписатьНачалоЭлемента("record");
        Для каждого ИмяКолонки из МасКолонки цикл
            Запись.ЗаписатьНачалоЭлемента(ИмяКолонки);
			
			Тип = ТипЗнч(СтрТаблицы[ИмяКолонки]);
		    Если Справочники.ТипВсеСсылки().СодержитТип(Тип)
              Или Документы.ТипВсеСсылки().СодержитТип(Тип) Тогда
			    Запись.ЗаписатьТекст("" + СтрТаблицы[ИмяКолонки].УникальныйИдентификатор());
			ИначеЕсли Тип = Тип("Число") Тогда
		    	Запись.ЗаписатьТекст(Формат(СтрТаблицы[ИмяКолонки], "ЧРД=.; ЧН=0; ЧГ=0"));
			Иначе  
				Значение = Строка(СтрТаблицы[ИмяКолонки]);
            	Запись.ЗаписатьСекциюCDATA(Значение);
			КонецЕсли;
			
            Запись.ЗаписатьКонецЭлемента();
        КонецЦикла;         
        Запись.ЗаписатьКонецЭлемента();
    КонецЦикла;     
     
    Запись.ЗаписатьКонецЭлемента();  // records     
    Запись.ЗаписатьКонецЭлемента();  // root        
	
    Возврат Запись.Закрыть();
Показать


Здесь под "Формат XML вы определяете на стороне 1С" я понимаю то, что вы можете дать другие имена root, columns или добавить другую информацию
51. AllexSoft 17.04.15 11:21 Сейчас в теме
(50) думаю он хочет пример оформления soapRequest с одним или двумя параметром (скажем простыми в виде string) в вызове функции executeSoap(script, successHandler) из вашего примера
45. Elisy 947 08.04.15 12:39 Сейчас в теме
(43) Веб-клиент имеется ввиду 1С?
Оставьте свое сообщение

См. также

Случай "Массив, Структура и Таблица в JS плюс верстка техдемо"

WEB-интеграция Языки и среды Платформа 1С v8.3 Абонемент ($m)

Добавление в JS обозревателя 1Сных коллекций массив, структура и таблица значений. Строкование в json формат для обмена с 1Сным сервером.Убедимся, что в обозревателе 1Сные коллекции действительно работают через чтение, изменение и строкование объекта обратно в json строку.

10 стартмани

01.03.2023    340    Steelvan    0    

1

Интеграция (Ich will version)

Идеи и тренды в разработке WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Поговорим про интеграцию с точки зрения архитектора.

1 стартмани

16.09.2022    3425    botokash    66    

53

Тестирование API 1C Postman

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Тестирование вашего API, который вы сделали на 1С.

1 стартмани

18.08.2021    7304    kolya_tlt    7    

44

Создаем интернет-магазин на бесплатной CMS PrestaShop с открытым кодом за 60 минут

Розничная торговля WEB-интеграция Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Абонемент ($m)

Описано пошаговое создание полноценного действующего интернет-магазина. Бесплатно. Без программирования. Без навыков администрирования. Для "чайников".

1 стартмани

31.05.2021    2872    andryandry    0    

8

Перенос всех логов в Elasticsearch

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

В качестве стандартного места хранения логов в "1С:Предприятие" используется Журнал регистрации. Также часто для хранения служебных событий создают специальные Регистры сведений. Но у этих решений есть свои недостатки. В статье описан подход для хранения любых логов в самой популярной свободной поисковой системе Elasticsearch.

1 стартмани

15.07.2020    7266    kuleshov.x    5    

31

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

1С+Firebase. Оперативное отображение информации

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

06.04.2020    4381    oyti    2    

16

Синтез речи из текста с помощью Яндекс SpeechKit

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье описан процесс подключения Яндекс SpeechKit API и программная реализация синтеза речи из текста с помощью этого API. Тестировалось на релизе платформы 8.3.16.1224. Может использоваться в любой конфигурации. Синтез речи может использоваться для самых разных целей, в моём случае потребовалось перевести лекции из текстовых файлов в звук

1 стартмани

05.04.2020    14891    m0zg153    2    

16

На хайпе: интегрируем 1С с сервисом видеоконференций Zoom

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

По причине коронавируса всем резко понадобились видеоконференции, а Зум (zoom.us) - одна из самых популярных платформ для этого. Когда пользователей и трансляций в зуме много, возникает необходимость в автоматизации. Рассматривается интеграция 1С с Zoom через API - от регистрации в сервисе до создания конференции из 1С.

1 стартмани

04.04.2020    18514    muzipov    5    

16

Вариант реализации REST API для 1С-Битрикс Управление сайтом

WEB-интеграция Платформа 1С v8.3 Россия Абонемент ($m)

В статье опишу вариант обмена 1С УТ 11.4 и 1С-Битрикс управление сайтом с иcпользованием компонентов Symfony, в качестве примера обмен данными по товарам.

1 стартмани

28.01.2020    13394    malikov_pro    3    

9

Разбираемся с web-kit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4. Допиливаем обмен с сайтом в УТ 11.4

WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Управление торговлей 11 Абонемент ($m)

Многие уже знают, что в релизе платформы 8.3.14.1565, браузер Internet Explorer был заменен на Web-Kit, это на самом деле большой шаг вперед, но я уверен, многим, как и мне, пока не совсем понятно, что к чему. Возник опыт использования web-kit в 1С, вызова JS из 1С и вызова 1С из JS. Давайте вместе попробуем понять, чем одно отличается от другого, и заодно сделаем, что-нибудь полезное. Да и наверняка многим придется переписывать свои подобные поделки после обновления на новую платформу, так что надеюсь мой опыт окажется полезным.

2 стартмани

08.12.2019    11091    Бэнни    25    

107

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

"Живые" картинки со Snap.SVG

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 Абонемент ($m)

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    16439    blackhole321    7    

93

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 1. Авторизация

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью функционала Rest API предоставляемого платформой (CMS) WordPress (WooCommerce). Без дополнительных приложений на PHP/вставьте сюда любой другой язык программирования/.

1 стартмани

12.10.2019    57904    osivv    39    

60

АИТП. Автоматизируем управление ресурсами на примере Яндекс.Почта для домена

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье демонстрируется использование программного пакета АИТП для автоматизации предоставления ИТ-ресурсов сотрудникам на примере управления почтовыми ящиками Яндекс.Почта для домена.

1 стартмани

26.08.2019    7390    blackhole321    4    

15

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery с кэшированием

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье описан способ создания "фронтенда" на HTML/CSS/jQuery и скрипт кеширования AJAX запросов на PHP.

1 стартмани

06.08.2019    16679    Sedaiko    28    

119

Обмен с интернет-магазином на платформе DOCPART

WEB-интеграция Оптовая торговля Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В настоящее время существует множество платформ для создания интернет-магазинов. Удобные и не очень, платные или бесплатные. У каждого решения найдутся свои сторонники, но наличие оперативного обмена с учётной системой важно для любой платформы. В этой публикации мы рассмотрим одну из популярных платформ для создания интернет-магазина по продаже автозапчастей Docpart и организацию обмена данными с ней.

10 стартмани

04.07.2019    7744    Johny_v    25    

7

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Интеграция 1С и SharePoint

WEB-интеграция Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Заказчики поставили задачу автоматизации согласования заявок на оплату в программе 1С:Бухгалтерия предприятия 3.0. Согласно ТЗ, данные должны подтягиваться из действующей электронной системы документаоборота на MS SharePoint (в дальнейшем СЭД MS SP).

1 стартмани

22.03.2019    8347    -I-    5    

12

Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере"

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Практический пример реализации простого http-сервиса средствами 1С Предприятие 8.3. Обеспечивает просмотр списка товаров и просмотр данных товара в браузере.

1 стартмани

07.12.2018    27669    dmitry1975    37    

176

Подключение к REST API через OAuth протокол из 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье описаны варианты подключения И решение граблей по подключению к REST API через протокол OAuth 2.0 из 1С. При разработке такого подключения для получения данных и загрузки в базу 1С я столкнулся с некоторыми проблемами, решил их и хочу поделиться этими наработками.

1 стартмани

06.09.2018    22036    chemezov    14    

29

HTTP Сервисы: Путь к своему сервису. Часть 1

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    187198    dsdred    45    

509

А чё это вы здесь делаете, а?

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Разработчикам тиражных обработок близка и понятна проблема обратной связи с пользователем. Много важного и полезного можно почерпнуть, зная, что делает бухгалтер, который запустил обработку. В большом мире вэба сбор статистики на сайте дело привычное и даже обязательное. Эта статья покажет практику применения инструментов сбора статистики из мира веба для обработок на платформе 1С:Предприятие.

1 стартмани

21.01.2018    25815    infosoft-v    42    

152

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Пример заполнения/создания файла XML из XSD схемы, используя XDTO

WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Добрый день, коллеги! Наконец-то дошли руки написать сию статью. Хочу поделиться своим опытом по разбору xsd схемы используя Фабрику XDTO, а также связанным с этим XML файлом. Думаю, наверняка кому-то понадобится.

1 стартмани

21.12.2017    69481    sandybaev    28    

178

Простой бесплатный DashBoard с помощью http сервиса

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Как создать свой DashBoard без дополнительных затрат и сложных технических доработок.

1 стартмани

25.11.2017    60332    dewersia    34    

292

Получение данных из Wialon Hosting через HTTP запросы (Remote API)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Россия Абонемент ($m)

Статья будет полезна для быстрого старта работы с Wialon Hosting. Здесь я опишу основные принципы работы с системой Wialon через Remote API.

1 стартмани

12.09.2017    33579    maxopik2    30    

36

Google OAuth и мобильное приложение

Мобильная разработка Внешние источники данных WEB-интеграция Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Об аутентификации для работы с сервисами google из мобильного или настольного приложения

1 стартмани

29.08.2017    12442    stveans@gmail.com    3    

11

Заполнение ОГРН с использованием Инструментов разработчика

Обработка справочников WEB-интеграция Платформа 1С v8.3 Россия Абонемент ($m)

Вот и до нашей организации добралось требование указывать в отчетности для ГлавКонтроля ОГРН контрагента. Как всегда, задача возникла внезапно, и решить ее нужно было "вчера".

1 стартмани

14.04.2017    6981    vsuh    0    

9

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Передача большого количества объектов через Web-сервисы

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Один из вариантов передачи большого количества объектов при использовании Web-сервисов.

1 стартмани

31.01.2017    17118    SinglCOOLer    14    

47

Использование SoapUi для работы с веб-сервисами. Часть1

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Как работать с SoapUi для тестирования веб-сервисов .

1 стартмани

30.09.2016    146658    kiv1c    32    

150

Передача больших пакетов через веб-сервисы

WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Реализация механизма передачи больших пакетов через веб-сервисы. С его помощью передать файл размером в несколько гигабайт не составит проблем.

06.12.2015    74616    Infostart    19    

171

Демо связи веб сервисов 1С и php

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Демонстрация обращения к веб сервису 1С из php. Пример простейший, уровня hello world. Дана одна страница и информационная база 1С с одним справочником и одним веб сервисом. Веб сервис выдаёт содержимое справочника по запросу странички.

1 стартмани

19.07.2013    33368    Трактор    20    

28

Примеры пользования web сервисов 1С из браузера

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Даны примеры реализации доступа к web сервисам 1С из браузера. Примеры web сервисов, а также javascript'ы для доступа к этим сервисам. AJAX доступ к 1С.

1 стартмани

29.06.2008    159623    Трактор    233    

326