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

Опубликовал Трактор Трактор (Трактор) в раздел Программирование - Практика программирования

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

1С'ники как правило не сильны в web программировании и при возникновении потребности в web интерфейсе к 1С первая мысль, приходящая в голову «Web расширение от 1С». Применение web расширения от 1С не всегда оправдано и целесообразно. Web расширение — решето. Пользователь через панель инструментов может просмотреть чуть ли не всю базу. Web сервис гораздо более защищён. Альтернативой web расширению может служить web сервис 8.1 в сочетании с javascript.
Думаю что сочетание web сервиса и javascript не утратит актуальности и при выходе следующей версии платформы — управляемого приложения. Если в базе 8.2 предусмотрена авторизация, то не получится организовать доступ для всех даже к малейшему отчёту. Сопряжение интерфейса 8.2 с остальной частью сайта - задача не для слабонервных. Объём обмена с сервером в 8.2 разработчиком не регулируется.
Прямая работа с web сервисами даёт разработчику полное управление над оформлением и над составом данных, передаваемых клиенту. Как хочешь, так и оформляй, что хочешь, то и передавай. За это надо платить трудоёмкостью разработки.
Web сервис по сути ещё одна ступень абстракции. XDTO отвязывает нас от структуры метаданных 1С. В примере №2 и 3 информация из двух справочников представляется в виде одной таблицы. С помощью входных параметров web сервисов можно обеспечить их редактирование как одного. Не всегда пользователю нужен полнофункциональный интерфейс как в управляемом приложении, часто из 1С должен получаться или вноситься небольшой объём данных. Кроме того, управляемое приложение не решит вопрос сопряжения интерфейса с остальной частью сайта. В этом случае доступ к web сервису из браузера остаётся самым простым штатным решением.
Статья рассчитана на 1С'ников, хорошо знающих 8.1. Знания javascript не требуется, можно рассматривать эту статью как первые два урока по javascript. При воспроизведении или запуске примеров потребуется настроенный web-сервер и 1С v 8.1, установленная на том же компьютере для публикации web сервисов.

 

В статье использованы готовые XML-запросы для удобства понимания механизмов web сервиса. В практической работе лучше использовать программных клиентов. Например, в PHP есть объект SoapClient.

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

Наименование Файл Версия Размер
Статья.rar
.1214750768 392,05Kb
27.09.09
5158
.1214750768 392,05Kb 5158 Скачать

См. также

Добавить вознаграждение
Комментарии
1. cs25 (cs25) 80 30.06.08 10:11 Сейчас в теме
Интересная статья. И примеры тоже. Плюс.
garim1965; +1 Ответить
2. Андрей Скляров (coder1cv8) 3274 30.06.08 10:35 Сейчас в теме
Спасибо! Очень интересно почитать...
3. Andrew (polygrafin) 01.07.08 15:54 Сейчас в теме
Еще не смотрел, но походу, весчь интересная
4. Евгений (Evgen_5) 02.07.08 09:23 Сейчас в теме
Очень интересная и полезная статья
5. GSoft. (GSoft) 2778 02.07.08 10:39 Сейчас в теме
хорошая статья
но вот бы еще ее аналог для 7ки почитать (да раритет, но надо))))
6. luidgy (luidgy) 02.07.08 12:08 Сейчас в теме
7. Sergey (Sergey K) 65 03.07.08 08:30 Сейчас в теме
+
примеры не смотрел
но jqGrid - очень понравилась :)
8. Asmody (Asmody) 04.07.08 13:14 Сейчас в теме
а зачем в архиве и .doc и .odt с одинаковым содержанием?
9. Трактор Трактор (Трактор) 1109 06.07.08 21:48 Сейчас в теме
а зачем в архиве и .doc и .odt с одинаковым содержанием?
Оригинал в odt. А doc для того чтобы могли прочесть и счастливые владельцы мс офиса.
.
GSoft, для 7-ки есть пример интернет-магазина на этом сайте. 7-ка не заточена для непосредственной работы с web, нужны сторонние приблуды.
10. Михаил Ражиков (tango) 466 09.07.08 18:49 Сейчас в теме
"Опубликуем html файл на нашем web сервере под именем, например, preved.htm. "
букофка l важна?
11. Трактор Трактор (Трактор) 1109 09.07.08 22:19 Сейчас в теме
"Опубликуем html файл на нашем web сервере под именем, например, preved.htm. " букофка l важна?
Нет. Главное чтобы ты к этой странице обращался браузером по тому имени под каким опубликована страница.
12. Геннадий Владимирович (vgv8) 12.11.08 14:20 Сейчас в теме
В чём проблема?

После нажатия кнопки
Поприветствовать web сервис
выдаётся messagebox с текстом
---------------------------
Windows Internet Explorer
---------------------------
Запрос завершился неудачно. Ответ сервера: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<html dir=ltr>



<head>

<style> a:link {font:8pt/11pt verdana; color:FF0000} a:visited {font:8pt/11pt verdana; color:#4e4e4e}

</style>



<META NAME="ROBOTS" CONTENT="NOINDEX">



<title>￿ ￿￿￿￿￿￿￿￿ ￿￿￿itle>



<META HTTP-EQUIV="Content-Type" Content="text-html; charset=Windows-1251">

</head>



<script>

function Homepage(){

<!--

// in real bits, urls get returned to our script like this:

// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm



//For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"

DocURL=document.URL;



//this is where the http or https will be, as found by searching for :// but skipping the res://

protocolIndex=DocURL.indexOf("://",4);



//this finds the ending slash for the domain server

serverIndex=DocURL.indexOf("/",protocolIndex + 3);



//for the href, we need a valid URL to the domain. We search for the # symbol to find the begining

//of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.

//urlresult=DocURL.substring(protocolIndex - 4,serverIndex);

BeginURL=DocURL.indexOf("#",1) + 1;

urlresult=DocURL.substring(BeginURL,serverIndex);



//for display, we need to skip after http://, and go to the next slash

displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex);

InsertElementAnchor(urlresult, displayresult);

}



function HtmlEncode(text)

{

return text.replace(/&/g, '&').replace(/'/g, '"').replace(/</g, '<').replace(/>/g, '>');

}



function TagAttrib(name, value)

{

return ' '+name+'="'+HtmlEncode(value)+'"';

}



function PrintTag(tagName, needCloseTag, attrib, inner){

document.write( '<' + tagName + attrib + '>' + HtmlEncode(inner) );

if (needCloseTag) document.write( '</' + tagName +'>' );

}



function URI(href)

{

IEVer = window.navigator.appVersion;


---------------------------
ОК
---------------------------

13. Трактор Трактор (Трактор) 1109 12.11.08 14:34 Сейчас в теме
Я вижу только заготовок страницы с описанием ошибки, но самого описания ошибки нет.
Прокрути дальше и покажи что написано после тега <body>
Ты установил модуль web сервисов в IIS?
C:\Program Files\1cv81\bin\wsinst.exe -IIS
14. RomDron (RomDron) 21.11.08 08:56 Сейчас в теме
А продолжение будет??? Как с авторизацией быть?
15. Трактор Трактор (Трактор) 1109 21.11.08 09:57 Сейчас в теме
>> А продолжение будет??? Как с авторизацией быть?
А надо? Какие-то наработки ещё есть, но они не представляют собой качественного изменения. Только развитие изложенной идеи.
Среди обнаруженных ограничений нашёл что средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл. Поэтому если требуется добавлять/читать файлы, то лучше использовать серверный язык, например PHP.

С авторизацией немного разобрался.
1. После танцев с бубном боги сказали что если база файловая, то ей лучше лежать на fat32. Тогда проблем с авторизацией средствами 1С нет.
Для файловой базы на NTFS авторизацию средствами 1С запустить не удалось, зато хорошо работает доменная авторизация.
Если к 1С обращаться серверным языком, то можно всегда это делать под одним пользователем с доменной авторизацией. Это не слишком безопасно, но работоспособно.
2. В клиент-серверной версии проблем с авторизацией нет. Прекрасно катит авторизация средствами 1С.
16. Трактор Трактор (Трактор) 1109 10.12.08 11:28 Сейчас в теме
Кстати, слабодокументированная возможность - анонимный доступ к базе. Для этого в опубликованном файле *.1cws надо указать имя и пароль
Вот пример файла primer.1cws

<?xml version="1.0" encoding="UTF-8"?>
<service namespace="http://primer.ru" name="РаботаСКлиентами" connectString="Srvr="192.168.0.8";Ref="uttest";Usr="traktor";Pwd="123456";"/>

Если теги покоцаются, то я не виноват.
taishy; WiseSnake; +2 Ответить 1
17. Михаил Ражиков (tango) 466 10.12.08 13:54 Сейчас в теме
(15) "средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл"
Извините, в чем проблема?
речь идет об обмене файлами между IIS и 1С
или между клиентом и сервером?
18. Трактор Трактор (Трактор) 1109 10.12.08 16:49 Сейчас в теме
>> Извините, в чем проблема?
Речь идёт об отношениях между клиентом (браузером) и сервером (Apache, IIS).
1. При передаче файла клиенту 1C отдаёт XML файл в котором файл закодирован в base64. Браузер получает этот файл, закодированный в base64 и ничего с ним сделать не может. javascript не может записать файл на диск. Отобразить файл как картинку может только если размер файла меньше 4-х кБ.
2. При передаче файла на сервер наступаем на те же грабли, только с другого края. javascript не может прочитать файл клиента. Это ограничение безопасности. Если бы удалось обойти это ограничение, то проблем бы не было. На javascript.ru мне посоветовали отправлять файл на сервер, там PHP'ом кодировать в base64 и возвращать клиенту. Нафига это надо? Чем так легче РНР'ом сразу писать файл в web сервис 1С.
.
tango, если ты знаешь как обойти эти ограничения - подскажи. Моя благодарность не будет иметь границ в пределах разумного :-)
19. Михаил Ражиков (tango) 466 10.12.08 16:59 Сейчас в теме
в порт-фолио две задачи по веб-доступу, обе без "сервисов", чисто СОМ-объект,
в модуле внешнего соединения формирую текст для asp-response, при этом файл на сервере
указывается просто как <A href="file">
а получаю из формы обыкновенным POSTом
единственное, на что наткнулся - и то - не грабли - просто не в лоб решается - удаление файла на сервере, 1ска во внешнем соединении этого не может
20. Михаил Ражиков (tango) 466 10.12.08 17:06 Сейчас в теме
в модуле внешнего вся эта радость выглядит примерно так:
Код
// customers
Функция getCustList() Экспорт
СписокКонтрагентов = "";
Попытка
спр = Справочники.Контрагенты.Выбрать(Константы.КонтрагентыWWW.Получить());
СписокКонтрагентов = СписокКонтрагентов + "
|<table cellspacing=1 cellpadding=1 border=1 ID=Table>";
Пока спр.Следующий() Цикл
   Если SelCust.НайтиПоЗначению(спр.Ссылка)=Неопределено тогда
      Check =Ложь;
   Иначе
      Check = Истина;
   КонецЕсли;
   value = спр.Код;
СписокКонтрагентов = СписокКонтрагентов + "<tr><td><INPUT id=Check type=checkbox name=Check
|value="+value+" "+?(Check,"checked","")+">
|</td><td>"+спр.Наименование+"</td></tr>";   
КонецЦикла;
СписокКонтрагентов = СписокКонтрагентов + "</table>";
Исключение
Константы.Лог.Установить(Константы.Лог.Получить()+Символы.ПС+ОписаниеОшибки());      
КонецПопытки;
Возврат СписокКонтрагентов;
КонецФункции
Показать полностью
21. Михаил Ражиков (tango) 466 10.12.08 17:09 Сейчас в теме
to support, фигня какая-то со слешами
22. Трактор Трактор (Трактор) 1109 10.12.08 17:36 Сейчас в теме
Пользовать com объекты тоже хорошее решение. Правда только для windows+IIS.
Файлы на сервере надо будет удалять ASP'ом после отдачи их их клиенту или после завершения сессии. Но тут я не силён.
23. Михаил Ражиков (tango) 466 10.12.08 17:57 Сейчас в теме
фишка еще в том, что ком есть и для 77
удалять у меня по ходу не надо, админ удалит, ежели чё, потому и не заморачивался
но, похоже, решение на яваскрипте встроено:
Код
 var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("This is a test.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Delete();
Показать полностью

24. Трактор Трактор (Трактор) 1109 11.12.08 12:43 Сейчас в теме
ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE.
Если предполагается использовать только ИЕ, то да, твоё решение прокатит.
.
>> фишка еще в том, что ком есть и для 77
Базару нет. Для 77 предложенный тобой способ единственный. Иначе вживую к базе не достучаться. Для 8-ки он тоже хорош, серьёзных минусов назвать не возьмусь.
Но я бы отдал построение страниц web серверу, а из 1С отдавал только данные. Как говорится каждому своё.
25. Chippo (TbSasha) 25.01.09 19:31 Сейчас в теме
Подскажите пожалуйста почему у меня не получается подключиться. В apache я все прописал вроде как надо. Пытаюсь подключиться и когда в браузере набираю http://localhost/ws/preved.1cws выводит {http://www.sample-package.org}:ЗдоровенькиБулы и когда нажимаю на это то выходит:

soap:Client Ошибка вызова операции сервиса: {http://www.sample-package.org}:ЗдоровенькиБулы:getWSDL() по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор Ошибка вызова операции сервиса: {http://www.sample-package.org}:ЗдоровенькиБулы:getWSDL() по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор

В чем может быть проблема?
26. Сергей (seermak) 653 25.01.09 19:52 Сейчас в теме
я искал в гугле по строке "inurl:"asmx?wsdl"" сервисы и их юзал
27. Трактор Трактор (Трактор) 1109 26.01.09 09:09 Сейчас в теме
25 Модуль web сервиса ЗдоровенькиБулы выглядит так:


Функция ПриветХлопцы()
Возврат "Здоровеньки булы, друзи!"
КонецФункции

Такая ошибка может выдаваться если
1. ты ничего не написал после слова Возврат.
Или
2. В свойствах метода ПриветХлопцы не указал тип возвращаемого значения string (http://www.w3.org/2001/XMLSchema)
28. Михаил Ражиков (tango) 466 26.01.09 14:56 Сейчас в теме
(24) "ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE."
в IIS, да? до IE этот код, в общем-то не доходит, ранэтсервер, так сказать... :)
29. Трактор Трактор (Трактор) 1109 26.01.09 17:44 Сейчас в теме
В 27 и это была попытка выделить текст курсивом. Не получилось :-( Не обращайте на них внимания.

28 tango, или ты или я не в теме. Я всегда считал что яваскрипт не исполняется на сервере. Это клиентский язык. Неужели я ошибаюсь?
30. Сергей (zsergey) 09.02.09 12:28 Сейчас в теме
Подскажите, пожалуйста, какие настройки нужно произвести, чтобы заработало под IIS?

Сейчас при нажатии на кнопку выскакивает сообщение:

"Запрос завершился неудачно. Ответ сервера:
<?xml version="1.0" encoding="UTF-8"?>
<service namespace="http:/sample-package.org" name="ЗдоровенькиБулы" connectString="File="C:\Work\1c\WSDemo";"/>."

C:\Work\1c\WSDemo - путь по которому расположены файлы конфигурации.
31. Трактор Трактор (Трактор) 1109 10.02.09 09:53 Сейчас в теме
Такой ответ говорит о том что IIS не видит компоненты 1С, обеспечивающей работу web сервисов.
Посмотри на файл *.1cws браузером. Обращение к нему может выглядеть так http://localhost/preved.1cws
Сервер должен выдавать ссылку в этом роде:
{http:/sample-package.org}:ЗдоровенькиБулы

Под этим текстом должна быть WS ссылка на получение описания сервиса.
http://localhost/preved.1cws?wsdl

Если ты увидишь что-то вроде {http:/sample-package.org}:ЗдоровенькиБулы, то это значит что модуль web сервисов в IIS установлен верно. До получения такой ссылки базу 1С трогать не стоит, IIS к ней ещё не обращается.
32. Михаил (bme) 59 13.02.09 06:18 Сейчас в теме
Подскажите, пожалуйста, как можно вызвать операцию из строки браузера?

Например: http://localhost/preved.1cws/ПриветХлопцы

Окружение: Apache 2.2, 1C 8.1.13, Win 2003
33. Михаил (bme) 59 13.02.09 09:14 Сейчас в теме
Разобрался, есть хороший инструмент для отладки web сервисов - SoapUI
34. Владимир Лошко (Loshko_WR) 13 05.03.09 14:21 Сейчас в теме
Скачал, установил по инструкции.
При входе на http://localhost/wwwroot/www1csrv/preved.htm пишет:
Запрос завершился неудачно. Ответ сервера:<?xml version"1.0" encoding="UTF-8"?><service namespace="htto://www.sample-package.org" name="ЗдоровенькиБулы" connectString="File="\\Ste\Base1c8\EnterpriseTE&;;">
Если открываю файл preved.htm из папки или из IIS то сначала открывается страница с кнопкой, после нажатия на нее выходит та же ошибка.
WinXP Pro, 1С:Предприятие 8.1 (8.1.12.101), УПП редакция 1.2 (1.2.19.1)
WEB расширение 1.1 на этом-же ПК и с этой же базой работает
Че делать-то??? СПАСИБО заранее.
35. Владимир Лошко (Loshko_WR) 13 05.03.09 14:53 Сейчас в теме
Сделал как в 31 ссылка http://localhost/preved.1cws?wsdl теперь ссылка есть.
Но при нажатии кнопки пишет ошибка доступа к файлу \\Ste\Base1c8\EnterpriseTE\1Сv8.cdn, а уменя его (1Сv8.cdn) в базе 1С по сетевому пути нет.
36. Трактор Трактор (Трактор) 1109 05.03.09 15:52 Сейчас в теме
(35) Это значит что ты пользуешь файловую 1Сину и в базе есть пользователи. Как бороть я уже писал. Либо снеси всех пользователей либо переведи базу в клиент-серверный вариант либо переложи на диск на с FAT32.
37. Владимир Лошко (Loshko_WR) 13 31.03.09 07:46 Сейчас в теме
По выложенному примеру сделал вывод списка платежек.
Но не знаю как передать параметры в вызов процедуры, чтобы можно было задать период выборки и, например, подразделение.
И еще как тут на форуме свои разработки выкладывать, а то мож кому пригодится.
38. Трактор Трактор (Трактор) 1109 31.03.09 09:44 Сейчас в теме
39. Dmitry Zhulyabin (1dz) 22.04.09 16:33 Сейчас в теме
Здоровеньки Булы!
помогите заставить работать этот сервис, плиз
установил, пример 1 работает:
http://localhost/preved.1cws выдает:
http://www.sample-package.org}:ЗдоровенькиБулы
http://localhost/preved.1cws?wsdl выдает описание веб сервиса.

пример 2:
http://localhost/sotrudniki.1cws выдает:
{http://www.sample-package.org}:Сотрудники
http://localhost/sotrudniki.1cws?wsdl выдает:

- <ht ml>
- <head>
<title>A server error occurred.</title>
</head>
<h1>Неизвестная ошибка. server_addr=tcp://SERV1C:1562 descr=Ошибка сетевого доступа к серверу (Windows Sockets - 10054(0x00002746). An existing connection was forcibly closed by the remote host. ) line=1031 file=.\src\DataExchangeTcpClientImpl.cpp по причине: server_addr=tcp://SERV1C:1562 descr=Ошибка сетевого доступа к серверу (Windows Sockets - 10054(0x00002746). An existing connection was forcibly closed by the remote host. ) line=1031 file=.\src\DataExchangeTcpClientImpl.cpp</h1>
<hr />
An error occurred processing this request.
</html>

включен технологический журнал в дамп падает rphost
запускаем отладчик, вызываем ошибку, анализируем дамп:
In rphost__PID__952__Date__04_21_2009__Time_08_47_22PM__71__Sec­ond_Chance_Exception_C0000005.dmp the assembly instruction at backend!SCOM_Main+d180 in C:\1cv81\bin\backend.dll from 1C has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000000 on thread 5

Почему так? Жду помощи....
БД на MSSQL 2005 sp2, 1С 8.1.13.41, www -серверы были испробованы Apache2.2 и IIS6.
Может сразу в техподдержку?
40. Трактор Трактор (Трактор) 1109 22.04.09 21:37 Сейчас в теме
Я ничего толкового про эту ошибку сказать не могу.
Рекомендую обратиться к Славе Гилёву.
У него описаны способы лечения. http://www.gilev.ru/1c/81/error54/
41. Трактор Трактор (Трактор) 1109 22.04.09 21:43 Сейчас в теме
1С при обращении просит логи технологического журнала и дампы аварийного завершения. Если решишься обращаться в 1С, то укажи в logcfg.xml каталог для дампов:
<dump location="C:\Program Files\1cv81\dumps" create="1" type="3"/>

В технологический журнал пиши всё. Потом всё что получишь высылай в 1С может помогут.
42. Dmitry Zhulyabin (1dz) 23.04.09 08:14 Сейчас в теме
http://www.gilev.ru/1c/81/error54/ видел, делал как написано, переустанавливал 1с и MSSQL на другом железе, дампы 1с есть, только читать их неизвестно чем. Напишу Гилеву
43. Тимофей Галиаскаров (zorkKiy) 18.05.09 17:49 Сейчас в теме
Подскажите, пытаюсь получить список сотрудников, получаю следующее:
____________________________
Запрос завершился неудачно. Ответ сервера: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Неверный аргумент. </faultstring>
<detail>Неверный аргумент. </detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
________________________

Web-сервис подключен - дебагер вываливается на брейкпоинте в модуле внешнего соединения (1С), а в модуль Web-сервиса не попадает. Я так понимаю ошибка происходит до вызова модуля Web-соединения. Причем с Web-сервисом "ЗдоровенькиБулы" все хорошо - отрабатывает как надо. Похоже входящий параметр как-то не так обрабатывается при разборе SOAP пакета..
44. Трактор Трактор (Трактор) 1109 18.05.09 21:08 Сейчас в теме
(43) Значит дело действительно во входном аргументе (параметре). Посмотри текст запроса, который идёт в 1С. У тебя, скорей всего, нет тега СтрокаПоиска.
Добавь хоть пустой тег <m:СтрокаПоиска> </m:СтрокаПоиска>

1С при получении запроса сначала проверяет его на соответствие WSDL. А в WSDL прописан обязательный входной параметр СтрокаПоиска. Только после этого управление передаётся твоему коду в модуле web сервиса.
45. Тимофей Галиаскаров (zorkKiy) 18.05.09 22:02 Сейчас в теме
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <m:ПолучитьСписокСотрудников xmlns:m="http://www.sample-package.org"> <m:СтрокаПоиска xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">кар</m:СтрокаПоиска> </m:ПолучитьСписокСотрудников> </soap:Body> </soap:Envelope>
_________________________
Вот то, что уходит в 1С..
46. Трактор Трактор (Трактор) 1109 18.05.09 22:53 Сейчас в теме
(45) Только что проверил. Поднял заново сервис. Работает. Вот текст запроса.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://www.sample-package.org">
<soapenv:Header/>
<soapenv:Body>
<sam:ПолучитьСписокСотрудников>
<sam:СтрокаПоиска>вич</sam:СтрокаПоиска>
</sam:ПолучитьСписокСотрудников>
</soapenv:Body>
</soapenv:Envelope>

Попробуй http://83.237.194.40:180/ws/sotrudniki.1cws?wsdl
47. Трактор Трактор (Трактор) 1109 18.05.09 22:53 Сейчас в теме
имя пользователя inet без пароля
48. Трактор Трактор (Трактор) 1109 18.05.09 22:58 Сейчас в теме
49. Армен Арабханян (Arabo_xv) 4 20.05.09 12:28 Сейчас в теме
Наличие базы в файловом режиме на разделе NTFS не создаёт проблемм с авторизацией. Там 3 уровня авторизации.
1 - Веб сервер
2 - Права доступа на файлы (в том числе и для файлов базы) для пользователя под которым запускается веб сервис.
3 - Авторизация в информационной базе.

В 99% случаях вы упираетесь в 2 пункт. Решение этой проблеммы простая настройка права доступа к вайлам.
50. fantasy2 (fantasy2) 03.06.09 17:34 Сейчас в теме
1с 8.1 файловая так работает?
51. fantasy2 (fantasy2) 03.06.09 17:54 Сейчас в теме
http://localhost/preved.htm
после загрузки этой страницы
видим кнопку "Поприветствовать web сервис"
при нажатии
или ошибка на весь экран
Запрос завершился неудачно Отвер сервера
<DOC TIPE HTMLPUBLIC DTD HTML 3.2 FINAL>
или кнопка меняет надпись на "ждем ответа" и все.
52. Трактор Трактор (Трактор) 1109 03.06.09 19:14 Сейчас в теме
(51) Ответ сервера похож на заголовок ошибки. Скорей всего причина в том что не подключён модуль wsap22.so (wsapch2.so, wsap22.dll, wsapch2.dll, wsisapi.dll) к web серверу. Проверь что возвращает http://localhost/preved.1cws
Если к фирефоксу подключишь firebug, то сможешь видеть запросы, ушедшие на сервер и полученные браузером. Они должны быть похожи на запросы, приведёные в статье.
Почитай обсуждение. Тут много писалось. Повторять не хочется.
53. ValentinV (ValentinV) 24.06.09 10:10 Сейчас в теме
Здорово!
А в качестве сервера SOAP что-то другое, кроме 1с, использовать?
54. ValentinV (ValentinV) 24.06.09 11:59 Сейчас в теме
Очень хорошо с методической точки зрения написано.
Я такого стиля очень давно не видал.
Огромное спасибо.
55. megatrend - (megatrend) 112 15.09.09 15:58 Сейчас в теме
Путь к документации в doc-файле теперь должен быть такой : file:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634
56. mc2 6 31.10.09 11:54 Сейчас в теме
Может кто подскажет, почему не работает с 8.2?
Если указываю относительный путь в Open, то запрос не отсылается, если полный - статус ответа 0. Пытался такой же скрипт на 1С смоделировать - там возвращается ошибка 500. Что не так делаю?
57. Трактор Трактор (Трактор) 1109 31.10.09 21:22 Сейчас в теме
8.2 ещё не пробовал. Что браузер говорит при открытии http://localhost/preved.1cws ?
58. Вячеслав Кадацкий (marsohod) 119 05.12.09 02:57 Сейчас в теме
+
Мне тоже нравится SciTE ... :)
59. Pavel Kalegin (pk_xD) 10.06.10 00:56 Сейчас в теме
кто нить подключал веб сервисы в асп, почему то когда вызываю метод сервиса пишет: There is an error in XML document (7, 4).
60. Трактор Трактор (Трактор) 1109 10.06.10 09:40 Сейчас в теме
(59) Сграбь снифером (сетевым монитором) ответ web сервиса и дай его сюда. Не видя xml документа трудно сказать что не так в четвёртом символе седьмой строки.
61. Pavel Kalegin (pk_xD) 10.06.10 10:22 Сейчас в теме
омг... кажеться понял в чем ошибка, тип возвращаемого значения ф-ии был не тот...
теперь проблеема как в асп описать тип возвращаемого значения... ))
62. assan assan (assan) 11.07.10 22:07 Сейчас в теме
под IIS всё работало , поставил Apache, IIS убрал
вызовы .....xxxx.1cws и .....xxxx.1cws?wsdl возврвщают одно и тоже - содержимое файла xxxx.1cws
и, видимо поэтому, 1с не могу импортировать wsdl , получить ws ссылку.
63. Трактор Трактор (Трактор) 1109 11.07.10 22:14 Сейчас в теме
(62) Модуль 1С не подгружен в апач. Ты точно добавил в httpd.conf такую строку ?
LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsap22.dll"
64. assan assan (assan) 11.07.10 22:39 Сейчас в теме
LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsap22.dll"

добавил, с правами вроде нормально. Похоже, что модуль не подгружается, или ещё
ProcessMonitor пишет
Operation: QueryOpen
Result: SUCCESS
Path: C:\Program Files\1cv81\bin\wsap22.dll
65. Трактор Трактор (Трактор) 1109 12.07.10 11:45 Сейчас в теме
(64) Странно. С таким не сталкивался.
Версия модуля 1С совпадает с версией апача? Если апач 2.0, то надо писАть так LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsapch2.dll"
66. assan assan (assan) 12.07.10 12:18 Сейчас в теме
версии соответствуют.
есть версия apache , которая проверена и работает? (а апач 2.2.15 скачивал с ихнего сайта, последняя версия, мож глючит)
и папка conf в которой есть изменения ?
скинь на мыло, может я чё в конфиге не то делаю.
67. Трактор Трактор (Трактор) 1109 12.07.10 14:08 Сейчас в теме
(66) lyay собака яндэкс точка ру пришли httpd.conf
68. assan assan (assan) 12.07.10 14:17 Сейчас в теме
поставил ISS - работает.
останавливаю ISS, устанавливаю apache, (при установке пишу localhost)
в httpd вставляю
LoadModule _1cws_module "c:/Program Files/1cv81/bin/wsap22.dll"
в папку htdocs помещаю файл ***.1cws
обращаюсь http://localhosc/***.1cws и http://localhosc/***.1cws?wsdl
результат одинаковый.
останавливаю apache, запускаю IIS (http://localhost/ws/***.1cws?wsdl) - работает......
наверно я что-то не так настраиваю....
69. Трактор Трактор (Трактор) 1109 12.07.10 14:20 Сейчас в теме
(66) раскопал у себя httpd.conf от 8.1
Оказывается я уже начал забывать как она публикуется. Файлы ws надо класть в папку, указанную в алиасе. Вот полная цитата публикации:

LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsap22.dll"

Alias /ws "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ws"

<Location /ws >
    DirectorySlash Off
    SetHandler 1cws-process
    Allow from all
</Location>
...Показать Скрыть
70. assan assan (assan) 12.07.10 15:16 Сейчас в теме
ТРАКТОРУ - УРА!!!!!!
для IIS рекомендую инструкцию Настройка IIS
71. Авдеев Иван (wonrims85) 15.09.10 19:36 Сейчас в теме
Запускаю сервис, требует аутентификацию. Если ввести пароль и имя пользователя из 1с, то возвращает Ошибка соединения с информационной базой. Что за черт, уже всю голову сломал, в инструкции ничего про это нет. У меня apache 2.2?
72. Трактор Трактор (Трактор) 1109 15.09.10 20:28 Сейчас в теме
(71) почитай обсуждение. Этот вопрос задавался многажды. У пользователя под которым работает апач нет прав на файл базы 1С.
73. Авдеев Иван (wonrims85) 17.09.10 00:07 Сейчас в теме
(72) Дело не в этом, когда я удаляю всех пользователей из конфигуратора, то все работает, если добавить хотя бы одного, то при запуске веб-сервиса требует аутентификацию, причем пароль из 1с не подходит, у пользователя стоят полные права
74. Трактор Трактор (Трактор) 1109 17.09.10 07:48 Сейчас в теме
(73) Перейди на клиент-серверную версию. Это точно поможет.
75. assan assan (assan) 17.09.10 15:34 Сейчас в теме
76. Сергей Доровенко (DSirius) 54 05.02.11 19:54 Сейчас в теме
Очень полезная и нужная статья.
А как реализовать загрузку в 1с измененных данныйх. На пример, изменили фамилию на сайте и эти изменения отразились в базе. Очень нужно реализовать именно такое взаимодействие и причем онлайн. На платформе 8.2
77. Дмитрий Павлик (DimaP) 55 15.04.11 09:12 Сейчас в теме
в 8.2 вообще файлы .1cws не публикуются :(
Как надо настраивать IIS для этого случая и каким образом делать обращение к веб-сервису?
Пока что экспериментирую на "Здоровеньки булы".

У меня задача такая: по переданному коду 1с должна возвратить таблицу с данными.
78. Трактор Трактор (Трактор) 1109 25.04.11 21:50 Сейчас в теме
(77)Что-то перестали приходить уведомления. В 8.2 обычно публикуются файлы default.vrd
79. Виталий Трач (vitalya24) 201 09.09.11 03:15 Сейчас в теме
полезная весчь эти веб сервисы, реализовал при их помощи связь с тсд)))
80. Вадим Matvienko (1cvirus) 12 10.09.11 12:03 Сейчас в теме
Супер - наконец-то я хоть немного понял.
81. евгений федоров (tartalia) 26.09.11 12:18 Сейчас в теме
Мне удалось реализовать подключение для разработки таких WEB-интерфесов, почему-то 1С это не очень широко рассказывает.
82. Валерий Tester (kxl) 07.10.11 11:46 Сейчас в теме
Примеры помогли в свое время
83. me Halyna (mehalyna) 16.10.11 19:05 Сейчас в теме
84. FFFF FFF (Gasdrubal) 19.10.11 06:12 Сейчас в теме
Не работает под IIS? подскажите как нстроить? в чем различия? Может быть я пути неверно прописываю?
85. Трактор Трактор (Трактор) 1109 19.10.11 09:55 Сейчас в теме
(84) Пошаговая инструкция настройки web-сервисов для 1Сv8.1 и IIS 7.5/7.0 http://infostart.ru/public/75205/
Настройка веб-клиента 1С:Предприятие 8.2 под Windows 7 x64 и IIS http://infostart.ru/public/71480/
88. Трактор Трактор (Трактор) 1109 19.10.11 10:10 Сейчас в теме
(86) Всё верно написал. Так всё и есть. Или править настройки безопасности браузера, как это делает 1С, или работать php. Примеры даны на яваскрипте только для лучшего понимания внутренностей обмена меж браузером и веб сервером.
tango тебя тут врядли услышит.
89. Евгения (ntvg) 01.11.11 18:55 Сейчас в теме
Спасибо! Очень интересная статья
90. Олег Наумов (Oleg51) 06.11.11 09:45 Сейчас в теме
при публикации веб-сервиса в папке с веб доступом появляется *.vrd, а не *.1cws
ошибка 405 после отправки данных на сервак, соответственно ответа нет.
91. Трактор Трактор (Трактор) 1109 06.11.11 16:33 Сейчас в теме
(90) Всё верно в 1С 8.2 публикуется именно default.vrd, а обращаться надо по адресу ИмяСервиса.1cws
92. Макс Савостин (mc1c80) 09.11.11 15:44 Сейчас в теме
Не могу пока скачать файлы , но очень хочется.
Очень был бы рад, если бы кто-то выложил на другом сайте эту статью.
93. Алексей Горнеев (gorneev) 12.11.11 18:11 Сейчас в теме
Это точно, пример очень нужный
94. Трактор Трактор (Трактор) 1109 12.11.11 18:49 Сейчас в теме
95. Степан Запорный (zastep) 17.11.11 15:45 Сейчас в теме
Интересно, надо попробовать [+]
96. Леонид Мельников (Kaperang) 90 22.11.11 17:34 Сейчас в теме
Объединил свою тестовую конфигурацию с конфигурацией из примера.
Платформа 8.2.13.219

Опубликовал на IIS под именем "AlfaTest82" в папку "C:\Inetpub\wwwroot\AlfaTest82\" с установленной галкой "Использовать аутентификацию операционной системы на веб-сервере".
В папке "C:\Inetpub\wwwroot\AlfaTest82\" при публикации был создан файл default.vrd следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		base="/AlfaTest82"
		ib="Srvr="Srv1C:1641";Ref="AlfaTest82";">
	<ws>
		<point name="ЗдоровенькиБулы"
				alias="preved.1cws"/>
		<point name="Сотрудники"
				alias="sotrudniki.1cws"/>
	</ws>
</point>
...Показать Скрыть


Ввожу в браузере "http://localhost/AlfaTest82/preved.1cws"

Получаю сообщение: "Файл не обнаружен 'v8res://mngsrv/preved.1cws' "
97. Трактор Трактор (Трактор) 1109 22.11.11 17:38 Сейчас в теме
(96) Такой ошибки я не встречал, но путь приведён внутри 1С. Значит опубликовано верно. Похоже что криво объединил.
98. Леонид Мельников (Kaperang) 90 22.11.11 17:50 Сейчас в теме
(97) Создал пустую базу (платформа 8.2, клиент-серверный вариант, MS SQL 2005).
Загрузил в нее конфигурацию из примера, опубликовал

Ввожу в браузере:"http://srv1c/IISTest/preved.1cws"

Получаю ту же ошибку: "Файл не обнаружен 'v8res://mngsrv/preved.1cws' "
99. Трактор Трактор (Трактор) 1109 22.11.11 17:53 Сейчас в теме
(98) Сейчас не с руки подымать весь пример, извини.
Я IIS не пользовал. Только апач. С ним проблем не было.
100. Леонид Мельников (Kaperang) 90 25.11.11 16:33 Сейчас в теме
снес IIS, поставил Апач. Все один в один.
Если на установку и натсройку IIS было потрачено пару часов вдумчивого чтения мануалов, настройка Апача заняла 15 минут. Это пока единственное замеченное преимущество. Из недостатков - один фиг не работает, причем симптоматика один в один.
Непонятно, как у Апача в плане информационной безопасности, IIS как то посерьзнее кажется.
101. Трактор Трактор (Трактор) 1109 25.11.11 16:38 Сейчас в теме
(100) В порядке танцев с бубном могу предлагаю попробовать запустить web сервис на другой базе. Путь внутри 1С, ошибка, похоже тоже там. Или коцаная конфигурация или платформа 1С криво работает.
Попробуй тестирование исправление, затем другую базу.