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

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

Разработка - Системная интеграция - Интеграция с 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С.

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

Отклик веб-сервиса

[more]

Проект 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 =
    '' +
    '<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/">' +
    '' +
    '' +
    '     '' +
    '' +
    '';

    $.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().

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

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

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

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

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

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

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

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 = '

  • ' + item.synonym + '

';
        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 аналогичным для остальных браузеров методом.

Ошибка при доступе через Internet Explorer

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

Authorization: Basic 0JHQsNGF0YjQuNC10LLQn9CYICjRgNGD0LrQvtCy0L7QtNC40YLQtdC70YwpOg==

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

Выводы

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

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

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

// //

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

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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Asmody 16.07.13 10:44 Сейчас в теме
часть кода после
var soapRequest =
парсер пожрал?
3. Elisy 936 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 416 16.07.13 17:44 Сейчас в теме
(3)

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


В статью вставляйте картинкой, а для тех, кому нужен исходник - давайте ссылку на сниппет, который можно разместить либо на http://gist.github.com либо на http://pastebin.com
2. detro 16.07.13 11:03 Сейчас в теме
Есть ли оценки производительности 1С при выдаче результатов по SOAP, какая возможная интенсивность работы ?
4. sikuda 649 16.07.13 12:06 Сейчас в теме
username: ,
password: , в IE не работают на русском(Пришлось делать пользователей на английском). Причина и решение самому интересна.
8. Elisy 936 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 134 17.07.13 08:36 Сейчас в теме
Если кто-нибудь знает причину и как обойти, пожалуйста, напишите в комментариях.

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

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

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

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

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

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

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

Но позиция нашей команды - это бережное отношение к пользователю и уделение большого внимания к интерфейсу и юзабилити, и здесь решений "из коробки" часто не хватает.
mdSerg; Elisy; +2 Ответить
31. Elisy 936 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 936 19.07.13 12:33 Сейчас в теме
(13) AllexSoft,
Elisy, просьба, ну то же самое только с прицелом на PHP, было бы гораздо полезнее... почему имено JS ?

Я работал в рамках поставленной задачи. Здесь делюсь результатами исследований. PHP не входил в поставленную задачу. Да и статьи на тему PHP + 1C были: в (18) пример одной из них.
Лично я не сторонник веб-сервисов вообще, а сторонник альтернативного подхода, где работа ведется по веб-протоколу 1С. Связано это с тем, что веб-сервисы пока не доступны в облаках, а их реализация не является универсальной.
15. Johny_v 134 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 134 19.07.13 08:23 Сейчас в теме
(17) AllexSoft,
Нет, он вроде объяснил что хочется обойтись без PHP. Может в его случае это как-то оправданно.
21. AllexSoft 19.07.13 10:31 Сейчас в теме
(20) Johny_v, ну если это считать объяснением...

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


Хм, а проект расчитан для ларьков? Насколько я понял подобная модульная система (с веб мордой) будет охватывать всю деятельность предприятия, тогда зачем говорить о простых задачах и наивно полагать что хватит JS ?)
28. Elisy 936 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 936 19.07.13 20:08 Сейчас в теме
(17) AllexSoft,
(15) Johny_v, (16) badboychik, помоему автор игнорирует все вопросы о Web-сервисы + PHP ((

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

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

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

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

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


Вот я про это, в чем не универсальность веб сервисов платформы?
33. Elisy 936 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 936 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есик 47 08.08.13 15:57 Сейчас в теме
Я обычный XMLHttpRequest использовал, то у меня авторизируется обоими способами.
Только в IE заметил разницу что при авторизации не через хедеры при неправильных данных не появляется стандартное окно авторизации в браузере.

И при использовании русских символов либо в пароле либо в пользователе авторизация неработает даже в стандартных окошках авторизации в браузере (пробовал хром,мозилу,експлорер)
38. i.kovtun 168 25.08.13 19:13 Сейчас в теме
(37) 6есик,
А в какой кодировке отправляете реквизиты авторизации? Подозреваю 1С UTF-8 ожидает...
39. Elisy 936 26.08.13 14:15 Сейчас в теме
(38) i.kovtun,
На странице выставлен meta для utf-8. Хорошо бы было, если бы браузер ее и использовал :)
40. 6есик 47 27.08.13 12:21 Сейчас в теме
(38) i.kovtun,
Да по разному пробовал уже. И через encodeURIComponent() пробовал авторизационные данные пропускать, но ничего не помогло. Даже надоело пробовать - но если у кого-то получиться то было бы очень интересно увидеть.
42. i.kovtun 168 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 108 08.04.15 12:11 Сейчас в теме
А как всё-таки составлять SOAP-запросы из веб-клиента к веб-серверу 1С?
44. AllexSoft 08.04.15 12:25 Сейчас в теме
(43) prodines, точнее проблему озвучьте, в чем сложность то? примеров использования SoapClient на PHP полно, там 3 строки кода.. ну а собственно вызов из вашего клиентского приложения веб сервиса на 1С или на чем то другом одинаков, там все равно ответы в формате XML вам будут приходить. Ну а как парсить ответы это уже другая тема =)
46. prodines 108 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 936 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 108 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 936 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 936 08.04.15 12:39 Сейчас в теме
(43) Веб-клиент имеется ввиду 1С?
Оставьте свое сообщение

См. также

Внешняя печатная форма для проверки контрагентов с помощью Контур.Фокус Промо

WEB v8 1cv8.cf Абонемент ($m)

Помогает быстро найти сведения по контрагенту: Реквизиты, информацию по учредителю, данные ЕГРЮЛ / ЕГРИП, запрос на выписку, финансовые данные, госконтракты, арбитражные дела, список связанных организаций

1 стартмани

17.03.2013    27054    167    kstukov    21    

Сводный отчет по пробегу техники по маршрутам из ВИАЛОН и НИМБАСА

Управленческие WEB v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

Сводный отчет по пробегу техники по маршрутам, который формируется на основе данных, полученных по API из системы ВИАЛОН и НИМБАС.

2 стартмани

04.12.2020    978    0    artemua    0    

Яндекс.Переводчик (API)

Пользователю системы WEB v8 1cv8.cf Абонемент ($m)

Простой переводчик, использующий сервис Яндекс для перевода.

1 стартмани

23.03.2020    5325    0    kaliuzhnyi    8    

Получение списка совпадающих адресов при наборе адреса (Яндекс-карты) (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка позволяет получить список адресов при его наборе в Яндекс API (обычные и управляемые формы).

2 стартмани

03.03.2020    2382    3    Denr83    0    

Адресная книга. 1С: ЗУП 3

WEB Управление персоналом (HRM) v8 ЗУП3.x Абонемент ($m)

Адресная книга позволяет компании без настройки прав пользователей и в удобном веб интерфейсе предоставить контактную информацию сотрудников во внутрикорпоративное пользование.

1 стартмани

22.01.2020    2521    3    Alex_ww    5    

Поиск местоположения объекта на карте по координатам

Универсальные обработки WEB v8 1cv8.cf Россия Абонемент ($m)

Карта с использованием WebKit. При открытии обработки сразу указывается местоположение на карте.

2 стартмани

17.01.2020    3064    1    Margo462    1    

"Морские контейнерные грузоперевозки" с возможностью трекинга (отслеживания маршрута) движения контейнеров из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3

WEB Управление услугами и сервисом v8 БП3.0 Абонемент ($m)

Расширение конфигурации Бухгалтерия предприятия, редакция 3.0 (при минимальных изменениях любой типовой конфигурации), позволяющее вести историю данных по морским контейнерным грузоперевозкам. Бонусом поставляется внешняя обработка, способная загружать данные отслеживания контейнеров из открытых источников в интернет.

1 стартмани

13.01.2020    5539    10    capitan    6    

Интеграция Yandex Maps в 1С на примере УТ 10.3

WEB v8 v8::ОУ УТ10 Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

На основание документов Реализация товаров и услуг, поля "Адрес доставки", создание маршрутов на основе Yandex API.

1 стартмани

25.12.2019    4896    14    tamerlan922    4    

Расчет расстояния от МКАД

WEB v8 Россия Абонемент ($m)

Расчет расстояния от МКАД до адреса с использованием API Яндекс.Карт.

1 стартмани

19.09.2019    5274    13    anton.fly7    4    

Подсистема Яндекс.Деньги

WEB Финансовый учет и бюджетирование (FRP) Финансовый учет и бюджетирование (FRP) v8 1cv8.cf Домашние учет и финансы УУ Абонемент ($m)

Подсистема полноценного учёта денежных средств для яндекс кошелька.

2 стартмани

09.09.2019    5451    3    CeHbKA    6    

Чат на управляемых формах

Практика программирования WEB v8 v8::УФ Абонемент ($m)

Чат для 1С на управляемых формах, для работы в браузере. Возможности: Есть общая комната Можно создавать открытые и закрытые комнаты Переписка между двумя пользователями (беседа) Протестировано на платформе 8.3.12.1714.

2 стартмани

14.12.2018    7419    12    panihinnv    14    

Загрузка данных о торгах с сайта finam.ru

WEB v8::УФ Финансовые услуги, инвестиции Россия Абонемент ($m)

В данной конфигурации реализована загрузка информации о торгах на ММВБ с сайта finam.ru с возможностью построения графика цены финансового инструмента (используется сервис Google.Graph).

1 стартмани

04.12.2018    4432    9    UncleLu    3    

Загрузка и анализ открытых государственных данных, предоставляемых Федеральной Налоговой службой (ФНС России)

WEB v8 Россия Абонемент ($m)

Конфигурация для загрузки и анализа некоторых наиболее важных наборов данных из списка https://www.nalog.ru/rn77/Opendata/

1 стартмани

26.10.2018    6029    13    o.kovalev    0    

Телефонный справочник

Управление персоналом (HRM) WEB Обработка справочников Управление персоналом (HRM) v8 ЗУП3.x Абонемент ($m)

Телефонный справочник сотрудников организации, интегрированный с 1C ЗУП 3.1.7.87 (веб форма).

3 стартмани

18.09.2018    4857    10    mrGREYka    16    

Показ карты яндекс в документе Задание на перевозку (расширение для УТ 11)

WEB Оптовая торговля Оптовая торговля v8::ОУ УТ11 Россия УУ Абонемент ($m)

Расширение для конфигурации УТ 11, добавляющее в документ Задание на перевозку яндекс карту с точками и маршрутом.

1 стартмани

04.09.2018    9175    40    FreeArcher    10    

Линия тренда в диаграмме на графике "Биржевая свеча"

Практика программирования WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Отчет демонстрирует, как можно отразить линию тренда на биржевом графике типа "свеча" средствами 1С.

1 стартмани

11.08.2018    7935    21    Scop    3    

Информация о треках с отображением маршрута на карте Google

WEB Оптовая торговля Оптовая торговля v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Простая программа для загрузки треков в формате .tcx, с возможностью просмотра итогов за период и маршрутов на Картах Google.

2 стартмани

30.07.2018    9599    6    echo77    5    

Проверка контрагентов на наличие в реестре коммерческих организаций с повышенным риском совершения правонарушений РБ

WEB v8 БП1.6 Беларусь Абонемент ($m)

Обработка проверит, не включен ли контрагент в реестр правонарушений в экономической сфере.

1 стартмани

12.07.2018    5038    2    keyn5565`    0    

Проверка билетов на сайте ФИФА на чемпионат мира 2018

WEB v8::УФ Развлечения, искусство, спорт Абонемент ($m)

Увидел на сайте https://tjournal.ru/72929-kak-ya-kupil-bilety-na-chm-2018-i-ne-umer как можно получить количество свободных билетов на сайте. Решил все перенести на язык 1С )) Платформа 1С 8.3.6 и выше.

1 стартмани

29.06.2018    7507    6    MSK_Step    6    

Подписка на билеты на ЧМ по футболу 2018

WEB v8 Развлечения, искусство, спорт Абонемент ($m)

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

3 стартмани

12.06.2018    5374    4    veretennikoff    0    

Яндекс.Карты (маршруты) API 1.1

WEB Универсальные обработки v8 1cv8.cf Россия Абонемент ($m)

Обработка для создания маршрутов с помощью Яндекс карты API 1.1 и дальнейшей обработки полученной информации в 1С

1 стартмани

30.04.2018    5336    33    Jack_off    6    

Карта цен моделей Яндекс Маркета

Ценообразование, прайсы WEB Ценообразование, анализ цен Ценообразование, анализ цен v8 1cv8.cf Россия Абонемент ($m)

Монитор-карта цен для моделей Яндекс Маркета. Позволяет наглядно оценить ценовые предложения по регионам России в виде карты раскрашенных областей.

2 стартмани

30.03.2018    8636    6    onec.developer    0    

Работа с Яндекс картой

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Предлагаю простенький пример работы с яндекс-картой под управляемыми формами. Реализована установка меток средствами 1С.

1 стартмани

08.02.2018    7998    22    pupkinSana    0    

Сервис проверки контрагента - Эскорт.Контрагент

WEB v8 1cv8.cf Россия Абонемент ($m)

Быстрая проверка контрагента по ЕГРЮЛ, Росстат.

1 стартмани

02.12.2017    9869    30    a.kapustin    17    

Биржа WEX: получение данных в 1С

WEB v8 v8::УФ 1cv8.cf Финансовые услуги, инвестиции Абонемент ($m)

Внешний отчет для получения данных с биржи WEX в режиме реального времени.

1 стартмани

16.10.2017    7946    3    Scop    0    

Запрос необработанных ТТН

Обработка документов Оптовая торговля WEB Оптовая торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия БУ Абонемент ($m)

Обработка позволяет запрашивать необработанные ТТН в соответствии с документацией ЕГАИС, пункт 1.24 и запрашивать ТТН повторно в соответствии с документацией ЕГАИС, пункт 1.19. Обработка должна работать на любых конфигурациях 8.2 обычные формы. Тестировал на конфигурации Комплексная автоматизация, редакция 1.1 (1.1.34.1)

2 стартмани

07.08.2017    13353    17    vasilev2015    7    

Парсер БК

Игры WEB v8 Домашние учет и финансы Россия Абонемент ($m)

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

1 стартмани

21.07.2017    19641    15    Hitchenson91    11    

Расчет стоимости доставки DPD, СДЭК, Деловые линии, ЕМС, ПЭК, ЖДЭ

Ценообразование, прайсы WEB Оптовая торговля Оптовая торговля v8 1cv8.cf Россия УУ Абонемент ($m)

Обработка позволяет получать расчет стоимости доставки по компаниям DPD, СДЭК, Деловые линии, ЕМС, ПЭК, ЖДЭ

1 стартмани

31.03.2017    12034    40    windsurf    3    

Яндекс.Метрики

WEB v8 1cv8.cf Россия Абонемент ($m)

Отчет по данным Яндекс.Метрики. Данный отчет можно использовать, например, для дальнейшего анализа интернет-заказов.

1 стартмани

22.03.2017    8061    29    morik44    1    

Загрузка шаблонов отчетности Статистики

Статистические Закрытие периода WEB Закрытие периода v8 ERP2 Россия БУ Абонемент ($m)

Обработка, позволяющая автоматически обновлять шаблоны отчетов статистики.

1 стартмани

08.02.2017    19410    11    unmensch    0    

Статистика аккаунтов Instagram

WEB v8 Абонемент ($m)

Конфигурация для сбора статистики по Instagram аккаунтам

1 стартмани

14.12.2016    7051    18    GAMLET    4    

Запрос QueryBarcode в ЕГАИС 1.5 для Розницы 2.2.6

Ценники Розничная торговля WEB Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Россия УУ Абонемент ($m)

Обработка решает проблему с нечитаемой маркой на крепком алкоголе.

2 стартмани

19.09.2016    17911    123    coolseo    43    

Чтение публикаций на Инфостарте

WEB v8 Абонемент ($m)

Конфигурация для чтения публикаций на Инфостарте. Десятилетнему юбилею посвящается

1 стартмани

18.01.2016    11095    16    Fox-trot    9    

Подключение к Web-сервису ECOD для обмена документами в формате EDI (провайдер Корус)

WEB v8 УТ10 Абонемент ($m)

Подробное описание подключения из 1С 8.2 к Web-сервису ECOD для одностороннего обмена электронными документами в формате EDI (провайдер Корус).

1 стартмани

06.06.2013    27291    74    shvo65    26