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

27.09.09

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Статья.rar
.1214750768 392,05Kb
5964 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

WEB-интеграция Разработчик Аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    7771    35    4    

35

Сайты и интернет-магазины WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

42700 руб.

03.08.2020    25843    42    26    

30

WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStars разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.

20740 руб.

13.05.2025    3089    6    0    

8

WEB-интеграция Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Управленческий учет Платные (руб)

Хорошая основа вашего решения импорта данных статистики Яндекс.Метрики в информационную базу 1С. Получение счетчиков, запрос статистики, получение данных - все в одной обработке.

5094 руб.

21.06.2022    11426    12    0    

12

WEB-интеграция Загрузка и выгрузка в Excel Разработчик Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    3767    7    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cs25 81 30.06.08 10:11 Сейчас в теме
Интересная статья. И примеры тоже. Плюс.
garim1965; +1 – Ответить
2. coder1cv8 3487 30.06.08 10:35 Сейчас в теме
Спасибо! Очень интересно почитать...
3. polygrafin 01.07.08 15:54 Сейчас в теме
Еще не смотрел, но походу, весчь интересная
4. Evgen_5 02.07.08 09:23 Сейчас в теме
Очень интересная и полезная статья
5. GSoft 2345 02.07.08 10:39 Сейчас в теме
хорошая статья
но вот бы еще ее аналог для 7ки почитать (да раритет, но надо))))
6. luidgy 02.07.08 12:08 Сейчас в теме
Спасибо за статью
7. Sergey K 65 03.07.08 08:30 Сейчас в теме
+
примеры не смотрел
но jqGrid - очень понравилась :)
8. Asmody 04.07.08 13:14 Сейчас в теме
а зачем в архиве и .doc и .odt с одинаковым содержанием?
9. Трактор 1297 06.07.08 21:48 Сейчас в теме
а зачем в архиве и .doc и .odt с одинаковым содержанием?
Оригинал в odt. А doc для того чтобы могли прочесть и счастливые владельцы мс офиса.
.
GSoft, для 7-ки есть пример интернет-магазина на этом сайте. 7-ка не заточена для непосредственной работы с web, нужны сторонние приблуды.
10. tango 553 09.07.08 18:49 Сейчас в теме
"Опубликуем html файл на нашем web сервере под именем, например, preved.htm. "
букофка l важна?
11. Трактор 1297 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. Трактор 1297 12.11.08 14:34 Сейчас в теме
Я вижу только заготовок страницы с описанием ошибки, но самого описания ошибки нет.
Прокрути дальше и покажи что написано после тега <body>
Ты установил модуль web сервисов в IIS?
C:\Program Files\1cv81\bin\wsinst.exe -IIS
14. RomDron 21.11.08 08:56 Сейчас в теме
А продолжение будет??? Как с авторизацией быть?
197. abtat 1 26.06.13 15:24 Сейчас в теме
Спасибо за всю информацию, Трактор. В создании сервисов в демонстрационных конфигурациях ПоставщикWSDemo - ПолучательWSDemo я разобрался и свои ошибки нашел. Ваши демонстрационные сервисы и свой сервис по анализу серийных номеров приборов исправно работают как при вызове из другого 1С, так и при вызове из браузеров IE и Opera. Перенес пакеты ХДТО и сервисы в файловую копию рабочей системы и не могу справиться с аутентификацией. Сделал специального пользователя "UserWS" с паролем "аа" и дал ему роли пользователя, администратора и полные права.
Для вызова из другой 1С ввел его имя и пароль в конструктор «Новый WSОпределения(…)» вызывающей 1С, как указано в хелпе, и получаю ответ:

{Обработка.ПроверкаVEGAНомера.Форма.Форма.Форма(14)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения("http://localhost/WebServicesDemo/ws/TestVegaSN.1cws? wsdl","UserWS","aa");

по причине:

Аутентификация пользователя не выполнена.

Для вызова из браузера добавил имя тестового пользователя и пароль в строку ib по образцу Вашего текста файла default.vrd из сообщения №105. Несмотря на это, у меня требуется пароль. Запрос приложил. Пытался вводить на нем как тестового пользователя с паролем, так и свое имя со своим паролем, а у меня все права и на компьютере, и в 1С, и в сети - все равно получаю ответ "Аутентификация пользователя не выполнена".

Все экземпляры 1С и браузеры расположены на одной машине, поэтому сетевых проблем быть не должно. Что делать?
Прикрепленные файлы:
199. Трактор 1297 02.07.13 23:50 Сейчас в теме
(197) С файловой базой вечно проблемы. Проверь наличие прав на каталог 1С у пользователя, под которым работает веб сервер. Если права есть, то попробуй переложить базу на сетевой диск или на диск с fat32. Должно помочь.
206. Manticor 66 06.09.13 12:27 Сейчас в теме
(199) никак не могу разобраться, воссоздавая Ваш пример по шагам)
1с 8.2, публикую веб сервис- скрин прилагаю) вы пишите, что файлик preved.1cws должен находиться в одной папке, но при стандартной публикации - его почему то там нет. И выезает ошибка на первом шаге Вашего руководства:

{"#exception":"{http://v8.1c.ru/8.1/data/core}Exception","exception":{"clsid":"9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3","descr":"Файл не обнаружен 'v8res://mngsrv/tr_preved.htm'","data":"77u/ew0KezlkYjFmYTM3LWI0NTUtNGYzZi1iOGRkLTdkZTBlYTdkNmRhMyw­i0KTQ\r\nsNC50Lsg0L3QtSDQvtCx0L3QsNGA0YPQttC10L0gJ3Y4cmVzOi8­vbW5nc3J2L3Ry\r\nX3ByZXZlZC5odG0nIn0sMSwNCnsidjhyZXM6Ly9tbmd­zcnYvdHJfcHJldmVkLmh0\r\nbSIsMH0NCn0="}}

Что нужно поменять?
15. Трактор 1297 21.11.08 09:57 Сейчас в теме
>> А продолжение будет??? Как с авторизацией быть?
А надо? Какие-то наработки ещё есть, но они не представляют собой качественного изменения. Только развитие изложенной идеи.
Среди обнаруженных ограничений нашёл что средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл. Поэтому если требуется добавлять/читать файлы, то лучше использовать серверный язык, например PHP.

С авторизацией немного разобрался.
1. После танцев с бубном боги сказали что если база файловая, то ей лучше лежать на fat32. Тогда проблем с авторизацией средствами 1С нет.
Для файловой базы на NTFS авторизацию средствами 1С запустить не удалось, зато хорошо работает доменная авторизация.
Если к 1С обращаться серверным языком, то можно всегда это делать под одним пользователем с доменной авторизацией. Это не слишком безопасно, но работоспособно.
2. В клиент-серверной версии проблем с авторизацией нет. Прекрасно катит авторизация средствами 1С.
17. tango 553 10.12.08 13:54 Сейчас в теме
(15) "средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл"
Извините, в чем проблема?
речь идет об обмене файлами между IIS и 1С
или между клиентом и сервером?
16. Трактор 1297 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";"/>

Если теги покоцаются, то я не виноват.
aparinp; WiseSnake; +2 – Ответить
18. Трактор 1297 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 553 10.12.08 16:59 Сейчас в теме
в порт-фолио две задачи по веб-доступу, обе без "сервисов", чисто СОМ-объект,
в модуле внешнего соединения формирую текст для asp-response, при этом файл на сервере
указывается просто как <A href="file">
а получаю из формы обыкновенным POSTом
единственное, на что наткнулся - и то - не грабли - просто не в лоб решается - удаление файла на сервере, 1ска во внешнем соединении этого не может
20. tango 553 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 553 10.12.08 17:09 Сейчас в теме
to support, фигня какая-то со слешами
22. Трактор 1297 10.12.08 17:36 Сейчас в теме
Пользовать com объекты тоже хорошее решение. Правда только для windows+IIS.
Файлы на сервере надо будет удалять ASP'ом после отдачи их их клиенту или после завершения сессии. Но тут я не силён.
23. tango 553 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. Трактор 1297 11.12.08 12:43 Сейчас в теме
ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE.
Если предполагается использовать только ИЕ, то да, твоё решение прокатит.
.
>> фишка еще в том, что ком есть и для 77
Базару нет. Для 77 предложенный тобой способ единственный. Иначе вживую к базе не достучаться. Для 8-ки он тоже хорош, серьёзных минусов назвать не возьмусь.
Но я бы отдал построение страниц web серверу, а из 1С отдавал только данные. Как говорится каждому своё.
28. tango 553 26.01.09 14:56 Сейчас в теме
(24) "ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE."
в IIS, да? до IE этот код, в общем-то не доходит, ранэтсервер, так сказать... :)
25. 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 664 25.01.09 19:52 Сейчас в теме
я искал в гугле по строке "inurl:"asmx?wsdl"" сервисы и их юзал
27. Трактор 1297 26.01.09 09:09 Сейчас в теме
25 Модуль web сервиса ЗдоровенькиБулы выглядит так:


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

Такая ошибка может выдаваться если
1. ты ничего не написал после слова Возврат.
Или
2. В свойствах метода ПриветХлопцы не указал тип возвращаемого значения string (http://www.w3.org/2001/XMLSchema)
29. Трактор 1297 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. Трактор 1297 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 254 13.02.09 06:18 Сейчас в теме
Подскажите, пожалуйста, как можно вызвать операцию из строки браузера?

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

Окружение: Apache 2.2, 1C 8.1.13, Win 2003
33. bme 254 13.02.09 09:14 Сейчас в теме
Разобрался, есть хороший инструмент для отладки web сервисов - SoapUI
34. Loshko_WR 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 05.03.09 14:53 Сейчас в теме
Сделал как в 31 ссылка http://localhost/preved.1cws?wsdl теперь ссылка есть.
Но при нажатии кнопки пишет ошибка доступа к файлу \\Ste\Base1c8\EnterpriseTE\1Сv8.cdn, а уменя его (1Сv8.cdn) в базе 1С по сетевому пути нет.
36. Трактор 1297 05.03.09 15:52 Сейчас в теме
(35) Это значит что ты пользуешь файловую 1Сину и в базе есть пользователи. Как бороть я уже писал. Либо снеси всех пользователей либо переведи базу в клиент-серверный вариант либо переложи на диск на с FAT32.
37. Loshko_WR 31.03.09 07:46 Сейчас в теме
По выложенному примеру сделал вывод списка платежек.
Но не знаю как передать параметры в вызов процедуры, чтобы можно было задать период выборки и, например, подразделение.
И еще как тут на форуме свои разработки выкладывать, а то мож кому пригодится.
38. Трактор 1297 31.03.09 09:44 Сейчас в теме
Отписался на странице разработки http://infostart.ru/projects/3748/
39. 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. Трактор 1297 22.04.09 21:37 Сейчас в теме
Я ничего толкового про эту ошибку сказать не могу.
Рекомендую обратиться к Славе Гилёву.
У него описаны способы лечения. http://www.gilev.ru/1c/81/error54/
41. Трактор 1297 22.04.09 21:43 Сейчас в теме
1С при обращении просит логи технологического журнала и дампы аварийного завершения. Если решишься обращаться в 1С, то укажи в logcfg.xml каталог для дампов:
<dump location="C:\Program Files\1cv81\dumps" create="1" type="3"/>

В технологический журнал пиши всё. Потом всё что получишь высылай в 1С может помогут.
42. 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. Трактор 1297 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. Трактор 1297 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. Трактор 1297 18.05.09 22:53 Сейчас в теме
имя пользователя inet без пароля
49. Arabo_xv 5 20.05.09 12:28 Сейчас в теме
Наличие базы в файловом режиме на разделе NTFS не создаёт проблемм с авторизацией. Там 3 уровня авторизации.
1 - Веб сервер
2 - Права доступа на файлы (в том числе и для файлов базы) для пользователя под которым запускается веб сервис.
3 - Авторизация в информационной базе.

В 99% случаях вы упираетесь в 2 пункт. Решение этой проблеммы простая настройка права доступа к вайлам.
50. fantasy2 03.06.09 17:34 Сейчас в теме
1с 8.1 файловая так работает?
51. fantasy2 03.06.09 17:54 Сейчас в теме
http://localhost/preved.htm
после загрузки этой страницы
видим кнопку "Поприветствовать web сервис"
при нажатии
или ошибка на весь экран
Запрос завершился неудачно Отвер сервера
<DOC TIPE HTMLPUBLIC DTD HTML 3.2 FINAL>
или кнопка меняет надпись на "ждем ответа" и все.
52. Трактор 1297 03.06.09 19:14 Сейчас в теме
(51) Ответ сервера похож на заголовок ошибки. Скорей всего причина в том что не подключён модуль wsap22.so (wsapch2.so, wsap22.dll, wsapch2.dll, wsisapi.dll) к web серверу. Проверь что возвращает http://localhost/preved.1cws
Если к фирефоксу подключишь firebug, то сможешь видеть запросы, ушедшие на сервер и полученные браузером. Они должны быть похожи на запросы, приведёные в статье.
Почитай обсуждение. Тут много писалось. Повторять не хочется.
53. ValentinV 24.06.09 10:10 Сейчас в теме
Здорово!
А в качестве сервера SOAP что-то другое, кроме 1с, использовать?
54. ValentinV 24.06.09 11:59 Сейчас в теме
Очень хорошо с методической точки зрения написано.
Я такого стиля очень давно не видал.
Огромное спасибо.
55. megatrend 132 15.09.09 15:58 Сейчас в теме
Путь к документации в doc-файле теперь должен быть такой : file:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634
56. mc2 22 31.10.09 11:54 Сейчас в теме
Может кто подскажет, почему не работает с 8.2?
Если указываю относительный путь в Open, то запрос не отсылается, если полный - статус ответа 0. Пытался такой же скрипт на 1С смоделировать - там возвращается ошибка 500. Что не так делаю?
57. Трактор 1297 31.10.09 21:22 Сейчас в теме
8.2 ещё не пробовал. Что браузер говорит при открытии http://localhost/preved.1cws ?
58. marsohod 123 05.12.09 02:57 Сейчас в теме
+
Мне тоже нравится SciTE ... :)
59. pk_xD 10.06.10 00:56 Сейчас в теме
кто нить подключал веб сервисы в асп, почему то когда вызываю метод сервиса пишет: There is an error in XML document (7, 4).
60. Трактор 1297 10.06.10 09:40 Сейчас в теме
(59) Сграбь снифером (сетевым монитором) ответ web сервиса и дай его сюда. Не видя xml документа трудно сказать что не так в четвёртом символе седьмой строки.
61. pk_xD 10.06.10 10:22 Сейчас в теме
омг... кажеться понял в чем ошибка, тип возвращаемого значения ф-ии был не тот...
теперь проблеема как в асп описать тип возвращаемого значения... ))
62. assan 11.07.10 22:07 Сейчас в теме
под IIS всё работало , поставил Apache, IIS убрал
вызовы .....xxxx.1cws и .....xxxx.1cws?wsdl возврвщают одно и тоже - содержимое файла xxxx.1cws
и, видимо поэтому, 1с не могу импортировать wsdl , получить ws ссылку.
63. Трактор 1297 11.07.10 22:14 Сейчас в теме
(62) Модуль 1С не подгружен в апач. Ты точно добавил в httpd.conf такую строку ?
LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsap22.dll"
64. 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. Трактор 1297 12.07.10 11:45 Сейчас в теме
(64) Странно. С таким не сталкивался.
Версия модуля 1С совпадает с версией апача? Если апач 2.0, то надо писАть так LoadModule _1cws_module "C:\Program Files\1cv81\bin\wsapch2.dll"
66. assan 12.07.10 12:18 Сейчас в теме
версии соответствуют.
есть версия apache , которая проверена и работает? (а апач 2.2.15 скачивал с ихнего сайта, последняя версия, мож глючит)
и папка conf в которой есть изменения ?
скинь на мыло, может я чё в конфиге не то делаю.
67. Трактор 1297 12.07.10 14:08 Сейчас в теме
(66) lyay собака яндэкс точка ру пришли httpd.conf
69. Трактор 1297 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>
Показать
68. 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) - работает......
наверно я что-то не так настраиваю....
70. assan 12.07.10 15:16 Сейчас в теме
ТРАКТОРУ - УРА!!!!!!
для IIS рекомендую инструкцию Настройка IIS
75. assan 17.09.10 15:34 Сейчас в теме
ппробуй поставить IIS (70)
71. wonrims85 15.09.10 19:36 Сейчас в теме
Запускаю сервис, требует аутентификацию. Если ввести пароль и имя пользователя из 1с, то возвращает Ошибка соединения с информационной базой. Что за черт, уже всю голову сломал, в инструкции ничего про это нет. У меня apache 2.2?
72. Трактор 1297 15.09.10 20:28 Сейчас в теме
(71) почитай обсуждение. Этот вопрос задавался многажды. У пользователя под которым работает апач нет прав на файл базы 1С.
73. wonrims85 17.09.10 00:07 Сейчас в теме
(72) Дело не в этом, когда я удаляю всех пользователей из конфигуратора, то все работает, если добавить хотя бы одного, то при запуске веб-сервиса требует аутентификацию, причем пароль из 1с не подходит, у пользователя стоят полные права
74. Трактор 1297 17.09.10 07:48 Сейчас в теме
(73) Перейди на клиент-серверную версию. Это точно поможет.
76. DSirius 53 05.02.11 19:54 Сейчас в теме
Очень полезная и нужная статья.
А как реализовать загрузку в 1с измененных данныйх. На пример, изменили фамилию на сайте и эти изменения отразились в базе. Очень нужно реализовать именно такое взаимодействие и причем онлайн. На платформе 8.2
77. DimaP 64 15.04.11 09:12 Сейчас в теме
в 8.2 вообще файлы .1cws не публикуются :(
Как надо настраивать IIS для этого случая и каким образом делать обращение к веб-сервису?
Пока что экспериментирую на "Здоровеньки булы".

У меня задача такая: по переданному коду 1с должна возвратить таблицу с данными.
78. Трактор 1297 25.04.11 21:50 Сейчас в теме
(77)Что-то перестали приходить уведомления. В 8.2 обычно публикуются файлы default.vrd
79. vitalya24 239 09.09.11 03:15 Сейчас в теме
полезная весчь эти веб сервисы, реализовал при их помощи связь с тсд)))
80. 1cvirus 14 10.09.11 12:03 Сейчас в теме
Супер - наконец-то я хоть немного понял.
81. tartalia 26.09.11 12:18 Сейчас в теме
Мне удалось реализовать подключение для разработки таких WEB-интерфесов, почему-то 1С это не очень широко рассказывает.
82. kxl 07.10.11 11:46 Сейчас в теме
Примеры помогли в свое время
83. mehalyna 16.10.11 19:05 Сейчас в теме
Спасибо, пригодилось.
84. Gasdrubal 19.10.11 06:12 Сейчас в теме
Не работает под IIS? подскажите как нстроить? в чем различия? Может быть я пути неверно прописываю?
85. Трактор 1297 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/
86. пользователь 19.10.11 10:01
Сообщение было скрыто модератором.
...
88. Трактор 1297 19.10.11 10:10 Сейчас в теме
(86) Всё верно написал. Так всё и есть. Или править настройки безопасности браузера, как это делает 1С, или работать php. Примеры даны на яваскрипте только для лучшего понимания внутренностей обмена меж браузером и веб сервером.
tango тебя тут врядли услышит.
87. пользователь 19.10.11 10:08
Сообщение было скрыто модератором.
...
89. ntvg 01.11.11 18:55 Сейчас в теме
Спасибо! Очень интересная статья
90. Oleg51 06.11.11 09:45 Сейчас в теме
при публикации веб-сервиса в папке с веб доступом появляется *.vrd, а не *.1cws
ошибка 405 после отправки данных на сервак, соответственно ответа нет.
91. Трактор 1297 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 Сейчас в теме
Это точно, пример очень нужный
95. zastep 17.11.11 15:45 Сейчас в теме
Интересно, надо попробовать [+]
96. Kaperang 99 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. Трактор 1297 22.11.11 17:38 Сейчас в теме
(96) Такой ошибки я не встречал, но путь приведён внутри 1С. Значит опубликовано верно. Похоже что криво объединил.
98. Kaperang 99 22.11.11 17:50 Сейчас в теме
(97) Создал пустую базу (платформа 8.2, клиент-серверный вариант, MS SQL 2005).
Загрузил в нее конфигурацию из примера, опубликовал

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

Получаю ту же ошибку: "Файл не обнаружен 'v8res://mngsrv/preved.1cws' "
99. Трактор 1297 22.11.11 17:53 Сейчас в теме
(98) Сейчас не с руки подымать весь пример, извини.
Я IIS не пользовал. Только апач. С ним проблем не было.
100. Kaperang 99 25.11.11 16:33 Сейчас в теме
снес IIS, поставил Апач. Все один в один.
Если на установку и натсройку IIS было потрачено пару часов вдумчивого чтения мануалов, настройка Апача заняла 15 минут. Это пока единственное замеченное преимущество. Из недостатков - один фиг не работает, причем симптоматика один в один.
Непонятно, как у Апача в плане информационной безопасности, IIS как то посерьзнее кажется.
101. Трактор 1297 25.11.11 16:38 Сейчас в теме
(100) В порядке танцев с бубном могу предлагаю попробовать запустить web сервис на другой базе. Путь внутри 1С, ошибка, похоже тоже там. Или коцаная конфигурация или платформа 1С криво работает.
Попробуй тестирование исправление, затем другую базу.
102. Kaperang 99 25.11.11 17:16 Сейчас в теме
1. Опубликовал средствами 1С на Апаче Web-сервис "ЗдоровенькиБулы" в папку "с:/IISTest" под виртуальным именем "IISTest" - имя файла публикации "preved.1ws"
В папке "с:/IISTest" при этом создался файл 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="/IISTest"
		ib="Srvr="Srv1C:1641";Ref="IISTest";"
		enable="false">
	<ws>
		<point name="ЗдоровенькиБулы"
				alias="preved.1cws"/>
		<point name="Сотрудники"
				alias="sotrudniki.1cws"
				enable="false"/>
	</ws>
</point>
Показать

Как я понял, при обращении к файлу "preved.1cws" запрос перенаправляется на Web-сервис "ЗдоровенькиБулы".
Самого файла "preved.1cws" при этом в природе не существует.
2.Создал папку "c:/ws", выложил в нее файлы preved.htm и preved.js
3.В файле preved.js переписал путь к "preved.1cws"
было
xmlhttp.open('POST', 'preved.1cws', true)
стало
xmlhttp.open('POST', '/./IISTest/preved.1cws', true)

4. опубликовал папку "c:/ws" под именем "WS", добавив в конец конфигурационного файла Апача httpd.conf следующие строчки
Alias "/ws" "C:/ws/"
<Directory "C:/ws/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

5. ввожу в браузере "http://localhost/ws/preved.htm" - появляется окошко с плашкой, жму по ней, вываливается ошибка:
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" 
href="/redirect.php?url=aHR0cDovL2xvY2FsaG9zdC9JSVNUZXN0L2UxY3N5cy92cnNjb3JlL2V4Y2VwdGlvbi54c2x0P3N5c3Zlcj04LjIuMTMuMjE5"?>
<exception 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" 
xsi:type="Exception" clsid="580392e6-ba49-4280-ac67-fcd6f2180121" reason="405">
<descr xmlns="http://v8.1c.ru/8.1/data/core">
HTTP: Method not allowed 
Ошибка при выполнении запроса POST к ресурсу /preved.1cws:</descr></exception>
Показать
104. Трактор 1297 25.11.11 17:26 Сейчас в теме
(102) Надо добиться чтобы ссылка http://localhost/IISTest/ws/preved.1cws?1cws давала описание wsdl. Что она даёт сейчас?
106. Kaperang 99 25.11.11 17:55 Сейчас в теме
(104) адрес http://localhost/IISTest/ws/preved.1cws?1cws сейчас выдает окно с ссылкой http://localhost/IISTest/ws/preved.1cws.
кликаю по ней - выдается, я так понимаю описание
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.sample-package.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.sample-package.org" name="ЗдоровенькиБулы" targetNamespace="http://www.sample-package.org">
- <types>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="http://www.sample-package.org" targetNamespace="http://www.sample-package.org" attributeFormDefault="unqualified" elementFormDefault="qualified">
- <xs:complexType name="Сотрудник">
- <xs:sequence>
<xs:element name="Код" type="xs:string" />
<xs:element name="Наименование" type="xs:string" nillable="true" />
<xs:element name="ДатаРождения" type="xs:date" nillable="true" />
<xs:element name="ИНН" type="xs:string" nillable="true" />
<xs:element name="Пол" type="xs:string" nillable="true" />
<xs:element name="Ссылка" type="xs:string" />
</xs:sequence>
</xs:complexType>
- <xs:complexType name="СписокСотрудников">
- <xs:sequence>
<xs:element name="Сотрудник" type="tns:Сотрудник" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
- <xs:element name="ПриветХлопцы">
- <xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
- <xs:element name="ПриветХлопцыResponse">
- <xs:complexType>
- <xs:sequence>
<xs:element name="return" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
- <message name="ПриветХлопцыRequestMessage">
<part name="parameters" element="tns:ПриветХлопцы" />
</message>
- <message name="ПриветХлопцыResponseMessage">
<part name="parameters" element="tns:ПриветХлопцыResponse" />
</message>
- <portType name="ЗдоровенькиБулыPortType">
- <operation name="ПриветХлопцы">
<input message="tns:ПриветХлопцыRequestMessage" />
<output message="tns:ПриветХлопцыResponseMessage" />
</operation>
</portType>
- <binding name="ЗдоровенькиБулыSoapBinding" type="tns:ЗдоровенькиБулыPortType">
<soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="ПриветХлопцы">
<soapbind:operation style="document" />
- <input>
<soapbind:body use="literal" />
</input>
- <output>
<soapbind:body use="literal" />
</output>
</operation>
</binding>
- <binding name="ЗдоровенькиБулыSoap12Binding" type="tns:ЗдоровенькиБулыPortType">
<soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="ПриветХлопцы">
<soap12bind:operation style="document" />
- <input>
<soap12bind:body use="literal" />
</input>
- <output>
<soap12bind:body use="literal" />
</output>
</operation>
</binding>
- <service name="ЗдоровенькиБулы">
- <port name="ЗдоровенькиБулыSoap" binding="tns:ЗдоровенькиБулыSoapBinding">
- <documentation>
<wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1" />
</documentation>
<soapbind:address location="http://localhost/IISTest/ws/preved.1cws" />
</port>
- <port name="ЗдоровенькиБулыSoap12" binding="tns:ЗдоровенькиБулыSoap12Binding">
<soap12bind:address location="http://localhost/IISTest/ws/preved.1cws" />
</port>
</service>
</definitions>
Показать
109. Трактор 1297 25.11.11 18:02 Сейчас в теме
(106) Прекрасно! Значит 1С с апачем снюхались. Теперь отправляй POST запрос по адресу http://localhost/IISTest/ws/preved.1cws?1cws и должно быть счастье.
(107) Не знал. Спасибо.
111. Kaperang 99 25.11.11 18:04 Сейчас в теме
(109)Мммммм.........коллега, я с java как-бы только второй день общаюсь. Не подскажете, как это сделать?
112. Трактор 1297 25.11.11 18:05 Сейчас в теме
(111) xmlhttp.open('POST', 'http://localhost/IISTest/ws/preved.1cws?1cws', true)
103. Kaperang 99 25.11.11 17:26 Сейчас в теме
А сейчас выдал сообщение:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>1C:Enterprise 8 application error</title>
</head><body><h2>1C:Enterprise 8 application error:</h2>
HTTP: Not found
Ошибка при работе с ресурсом /IISTest/preved.1cws</html>
105. Трактор 1297 25.11.11 17:34 Сейчас в теме
(103) что-то у тебя в файле default.vrd написано enable="false". Это неправильно. Попробуй изменить файл так:

<?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="/IISTest"
      ib="Srvr="Srv1C:1641";Ref="IISTest";Usr="POLZOVATEL";Pwd="PAROL";">
   <ws>
      <point name="ЗдоровенькиБулы"
            alias="preved.1cws"/>
      <point name="Сотрудники"
            alias="sotrudniki.1cws"/>
   </ws>
</point>
Показать


Я добавил Usr="POLZOVATEL";Pwd="PAROL"; , чтобы 1С пароль не спрашивала.
107. Kaperang 99 25.11.11 17:58 Сейчас в теме
(105) параметр enable="false"/> устанавливает использование/отключение Web-клиента,
в <ws ... /ws> данный параметр отвечает за включение/выключение конкретного web-сервиса
108. Kaperang 99 25.11.11 18:01 Сейчас в теме
Заново опубликовал базу средствами 1С на Апаче:
выставил галочку "Использовать тонкий клиент и web-клиент"
выставил галочки обоих сервисов: "ЗдоровенькиБулы" и "Сотрудники"
содержимое файла 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="/IISTest"
		ib="Srvr="Srv1C:1641";Ref="IISTest";">
	<ws>
		<point name="ЗдоровенькиБулы"
				alias="preved.1cws"/>
		<point name="Сотрудники"
				alias="sotrudniki.1cws"/>
	</ws>
</point>
Показать
110. Kaperang 99 25.11.11 18:02 Сейчас в теме
ппо строке "http://localhost/IISTest/" успешно открывается web-клиент
113. Kaperang 99 25.11.11 18:07 Сейчас в теме
Яхуууууу!!!!!!!
Поменял в preved.xml
было
xmlhttp.open('POST', '/./IISTest/preved.1cws', true)
стало
xmlhttp.open('POST', '/./IISTest/ws/preved.1cws', true) 
130. Banzai79 13.03.12 12:47 Сейчас в теме
(113) Kaperang, оооо в этого мне и не хватало
114. Kaperang 99 25.11.11 18:22 Сейчас в теме
Выложил в папку ""c:/ws" файлы sotrudniki.js и sotrudniki.html, рестартовал Апач

Изменил в sotrudniki.js
было
xmlhttp.open('POST', 'sotrudniki.1cws', true)
стало
xmlhttp.open('POST', '/./IISTest/ws/sotrudniki.1cws', true)


Поправил конфигурацию базы - создал там справочники "Сотрудники" и "ФизическиеЛица", чтобы было откуда 1С-ным запросом данные выдергивать.

Все работает: и "ЗдоровенькиБулы" и "Сотрудники"!!!
115. Kaperang 99 25.11.11 18:39 Сейчас в теме
цепанулись смартфоном к внутренней wi-fi сети, открыли ссылку в браузере, порадовались )))
собственно, под это все и пишется - внесение данных в 1С-ку из любой точки здания, не отходя от клиента, так сказать ... :)
116. Трактор 1297 25.11.11 18:42 Сейчас в теме
(115) Я так и не нашёл wsdl клиента на яваскрипте. Получается что легче всего с 1С работать php'ом, а яваскрипт использовать минимально.
117. Kaperang 99 25.11.11 18:52 Сейчас в теме
положил в папку ""c:/ws" файлы третьего примера,изменил путь вызова Web-сервиса в sotrudnikiJQ.js, так же как в предыдущих двух примерах (добавил "'/./IISTest/ws/"), рестартовал Апач

все работает

Респект и уважуха за статью, коллега !!!

Конечно, она писалась под 8.1, а там немного все по другому, но после легкой доработки напильником все прекрасно заработало и на 8.2
118. slavik27 129 28.11.11 12:41 Сейчас в теме
Нужная информация, главное вовремя! СпасибО!
119. Kaperang 99 30.11.11 17:06 Сейчас в теме
Коллега, помогите пожалуйста:

Переписал немного ваш файл sotrudniki.js под свои цели.
Пользователь заполняет несколько полей на экранной форме, по кнопке "Записать" через параметры эти значения передаются Web-сервису
Отладчик IE показывает, что ошибка в следующей строке
xmlhttp.send('<?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"> '
+document.getElementById('Пользователь').value+' </m:Пользователь> '+
'<m:Дата xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('Дата').value+' </m:Дата> '+
'<m:Действие xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('Действие').value+' </m:Действие> '+
'<m:Контрагент xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('Контрагент').value+' </m:Контрагент> '+
'<m:Модель xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('Модель').value+' </m:Модель> '+
'<m:ВремяЗвонка xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('ВремяЗвонка').value+' </m:ВремяЗвонка> '+
'<m:ВремяПрихода xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('ВремяПрихода').value+' </m:ВремяПрихода> '+
'<m:ТестДрайв xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('ТестДрайв').value+' </m:ТестДрайв> '+
'<m:ТойотаБанк xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('ТойотаБанк').value+' </m:ТойотаБанк> '+
'<m:КонтактнаяИнформация xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('КонтактнаяИнформация').value+' </m:КонтактнаяИнформация> '+
'<m:Комментарий xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('Комментарий').value+' </m:Комментарий> '+
'<m:ПервичныйКлиент xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> '
+document.getElementById('ПервичныйКлиент').value+' </m:ПервичныйКлиент> ' +
'</m:ПолучитьДанныеКонтакта> </soap:Body> </soap:Envelope>')
Показать


Никак не могу понять, где поправить
120. a_mironov 11.12.11 03:47 Сейчас в теме
Интеграция с сайтом - тема нынче моднаяю Спасибо за труды
121. pako_amadi 14.12.11 11:30 Сейчас в теме
122. raym0n 16.12.11 16:49 Сейчас в теме
Спасибо за интересную информацию!
Приходилось решать похожие задачи. Подключение внешних клиентов к нашей информационной базе.

Использовал Бесплантый Апач, который прекрасно работает как под Виндой, так и в Линуксе.

Огромное спасибо!
123. ][p 3 26.12.11 13:12 Сейчас в теме
сейчас правда можно уже пользоваться внешними источниками данных в дереве конфигурации.
124. ntvg 27.12.11 12:03 Сейчас в теме
Очень интересная и полезная статья. Спасибо автору за проделанную работу. Очень помогла с разработкой веб сервисов, так как маловато информации на эту тему
125. simpal 27.12.11 13:53 Сейчас в теме
Здравствуйте!
подскажите, можно ли с помощью web-сервиса организовать возможность делать sql запросы к базе 1с из php или js ?
126. Трактор 1297 27.12.11 14:03 Сейчас в теме
(125) не sql, но можно. Делаешь сервис 1С, который принимает в один параметр текст запроса, а в другой параметр список параметров запроса и возвращает некую таблицу. Текст запроса должен быть на языке запросов 1С. Обработка запроса web сервиса делается на языке 1С, поэтому изучения 1С или общения с 1Сниками тебе не избежать.
127. 24061985@list.ru 15.01.12 23:52 Сейчас в теме
Всем привет!
Сначала хочу выразить огромное спасибо автору за данную статью!!!
Тестировал ранее на 8.1 проблем не было.
Сейчас на 8.2 Здоровеньки работают, а вот по Сотрудникам выдаёт
подключение прервано (Ошибка 101 (net::ERR_CONNECTION_RESET): Соединение сброшено).
В 1С не силён. кто подскажет в чём может проблема?! Уже всё перепробовал...
128. Трактор 1297 16.01.12 10:29 Сейчас в теме
(127) Не видя твоей конфы трудно что-то сказать. Возможные причины:
1. Ошибка в коде или в данных, которая валит 1С. Эта причина более вероятна, если ЗдоровенькиБулы работают в этой же базе 1С. Может помочь тестирование и исправление базы данных. Если не поможет - надо смотреть код.
2. Ошибка в настройках веб сервера. Тут я не силён.
129. igo-osetro 24.01.12 20:04 Сейчас в теме
Давлено таки интересная статья. Автор молодец что не поленился и написал эту статью. Полезная штука веб сервесы. Спасибо автору
131. gn@mik 62 06.04.12 22:28 Сейчас в теме
Полезная статья, мне очень помогла
132. orehova123 20.04.12 15:37 Сейчас в теме
спасибо! ищем как раз материал на эту тему
133. KroVladS 35 05.05.12 17:52 Сейчас в теме
Надо наконецто попробовать эти ваши WEB-сервисы...
134. KroVladS 35 08.05.12 17:05 Сейчас в теме
3 дня спамил форум общялся на форуме чтобы, заработать рейтинг, чтобы скачать :)
Оно того стоило.
Спасибо, как раз то, что искал.
135. TRansgen 14.11.12 14:32 Сейчас в теме
Статья норм! Как раз занимаюсь разработкой веб сервиса. Помогает!!
136. cs25 81 04.12.12 10:49 Сейчас в теме
Пробую опубликовать web-сервис опираясь на данные Вашей статьи http://infostart.ru/public/16001/

Установил Апач (сборка Denwer). Сделал всё как описано в скаченном архиве. При запуске в IE ссылок: http://hello/ или http://sotrudniki/ - на форме появляются кнопки. Но при нажатии на них

ничего не происходит. При нажатии кнопки "Получить список сотрудников" на http://sotrudniki/ на кнопке выводится "Найдено 0 человек" ... При нажатии на "Поприветствовать web сервис"

ничего не происходит ...


Не совсем понятно что делать на 4.4 шаге (и далее) Вашего описания для получения на экране приветствия "Здоровеньки булы, друзи!".

Огромная просьба помочь (для тех кто в танке). Ну или выслать более полное описание для публикации простого Поприветствовать web сервис и чуть более сложного Получить список

сотрудников. Заранее благодарен


С web-сервисами только-только начинаю экспериментировать. В идеале хочу получить выгруженный файлик txt с реестром документов (РеализацияТоваров) за период (просто идущие друг за

другом строки (string (http://www.w3.org/2001/XMLSchema)) являющиеся реквизитами документа (например Дата, Номер, Контрагент, Номенклатура1,Номеклатура2, ..., НоменклатураN,

СуммаДокумента, и т.д.))


p.s. Windows XP, файловый вариант базы, платформа 8.1, конфа "Бухгалтерия предприятия" редакция 2.0 (2.0.16.1) ,пользователей из базы удалил (чтоб не было проблемм с авторизацией).
В каталоге установленной 1С 8.1 файлы wsap22.dll и wsapch2.dll присутсвуют,т.е адаптер веб - сервисов 1С 8.1 установлен.
137. Трактор 1297 04.12.12 11:19 Сейчас в теме
(136)
1. Читаем обсуждение. Эти вопросы уже обсуждались.
2. Выясняем имя базы в файлике default.vrd в параметре base="/ИмяБазы1С"
3. Переходим http://localhost/ИмяБазы1С/ws/preved.1cws?1cws
Если видим описание wsdl Тогда
1С состыкована с Апачем правильно.
Иначе
приводим здесь файлики default.vrd и httpd.conf
КонецЕсли;
138. Spas12 04.12.12 11:25 Сейчас в теме
Интересно с IIS (может не в тему можете скинуть мануал IIS) не работал ни разу Appach менее проблемный
139. Трактор 1297 04.12.12 11:41 Сейчас в теме
140. cs25 81 04.12.12 13:02 Сейчас в теме
Вот конфигурационные файлы : ссылка.

Файл default.vrd не нашёл ... нету его походу ...
Установлен Апач, сборка Денвер ссылка
141. Трактор 1297 04.12.12 14:27 Сейчас в теме
(140) У тебя 1С 8.2? В 8.1 публикация выполняется иначе.

Для 8.2
Вариант 1:
1. У тебя не подключен модуль 1С. В прикреплении файл httpd.conf, где я для примера прописал подключение модуля и публикацию базы. Мои правки в конце файла. Обязательно поправь пути в нём.
2. В папку C:/Common/Apache/htdocs/moyabaza нужно положить файл default.vrd из прикрепления
Чтобы получить vrd файл нужно в конфигураторе выбрать пункт меню администрирование -> Публикация на веб-сервере

Вариант 2:
В конфигураторе 1С выбираешь пункт меню Администрирование -> Публикация на веб-сервере
Прикрепленные файлы:
httpd.conf
default.vrd
142. cs25 81 04.12.12 16:02 Сейчас в теме
143. Трактор 1297 04.12.12 16:11 Сейчас в теме
(142) Честно говоря я уже подзабыл 8.1. Там есть файлик C:\Program Files\1cv81\bin\wsinst.exe. Он умеет настраивать Апач. Попользуй его. Затем прочти комментарии (15), (16) и (63).
145. DennyPhilord 66 06.12.12 20:58 Сейчас в теме
(143) промулчася целый день - подключил 1с к апачу, т.е. http://localhost/ИмяБазы1С/ws/preved.1cws?1cws выдает описание (кстати, не ИмяБазы1С, а названия алиаса, например, Alias "/WebService", т.е WebService). Проблема в том, что зависает - нет ответа от 1С, метод не отрабатывает xmlhttp.open(... Раньше ошибка была теперь просто висит. с чем это может быть связано?
144. Zas1402 06.12.12 12:14 Сейчас в теме
146. DennyPhilord 66 06.12.12 21:11 Сейчас в теме
Может быть нужно какое-нибудь расширение подключить? у меня apache из Open Server'а, из-за этого много проблем было с установкой..
148. Трактор 1297 06.12.12 21:19 Сейчас в теме
(146) Лучше всего давай сюда свой httpd.conf и default.vrd
147. Трактор 1297 06.12.12 21:17 Сейчас в теме
Может быть нужно какое-нибудь расширение подключить?

Именно! У тебя не подключен модуль 1С.
Вот такой фрагмент надо вставить в httpd.conf:

LoadModule _1cws_module /opt/1C/v8.3/x86_64/wsap22.so

# 1c publication^M
Alias "/veles" "/var/www/veles/"
<Directory "/var/www/veles/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/veles/default.vrd"
</Directory>
Показать

Пути в примере указаны для Линукса, Переделай на виндовые. И проверь права Апача на чтение/запуск файлов в 1Сном каталоге.
149. DennyPhilord 66 07.12.12 12:11 Сейчас в теме
(147) модуль подключал
LoadModule _1cws_module "C:/Program Files (x86)/1cv82/8.2.15.318/bin/wsap22.dll"


# 1c publication
Alias "/WebService" "D:/serv/domains/WebService/"
<Directory "D:/serv/domains/WebService/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/serv/domains/WebService/default.vrd"
</Directory>
Показать
Прикрепленные файлы:
Apache-2.2.23_server.conf
default.vrd
150. Трактор 1297 07.12.12 12:23 Сейчас в теме
(149) Должно работать. Вроде всё верно. Попробуй убрать имя пользователя и пароль из файла default.vrd. Тогда при обращении http://localhost/WebService/ws/preved.1cws?wsdl у тебя должно спрашивать имя пользователя и пароль. Если этого нет, то может быть Апач пользует не Apache-2.2.23_server.conf, а другой файл?

В качестве шаманских действий можно попробовать грузить модуль 1С последним, после всех остальных. Сейчас он у тебя грузится первым.
152. DennyPhilord 66 07.12.12 12:34 Сейчас в теме
(150) последним модулем загрузка тоже не помогла
153. Трактор 1297 07.12.12 12:38 Сейчас в теме
если убрать из default.vrd пароль, то начинает спрашивать

(152)Значит модуль 1С подключился к апачу.
Теперь берёшь soapui http://sourceforge.net/projects/soapui/files/soapui/3.6.1/ скармиливаешь ему ссылку на wsdl и пробуешь работать с сервисом из soapui http://localhost/WebService/ws/preved.1cws?wsdl
156. DennyPhilord 66 07.12.12 17:07 Сейчас в теме
(153) скачал проверил, норм все. Потом попробывал в хроме - все норм. Мазила что-то не отработал...
157. Трактор 1297 07.12.12 17:12 Сейчас в теме
(156) Тут я ничего не скажу. Почти 4 года прошло. Мозила могла измениться. Что-то криво в яваскрипте. Может быть у тебя NoScript стоит.
158. DennyPhilord 66 07.12.12 17:35 Сейчас в теме
(157) скрипты вроде разрешены, обновил Мазилу - не помогло. Ответ не приходит никакой по запросу - xmlhttp.onreadystatechange = function() {ПриОтветеВебСервиса(xmlhttp)} - вот этот код не отрабатывает.. Попробую попозже решить этот вопрос. Спасибо.
151. DennyPhilord 66 07.12.12 12:32 Сейчас в теме
пароль не спрашивает, если убрать из default.vrd пароль, то начинает спрашивать, но при вводе еще раз спрашивает - все равно правильный или нет. Файл тот, т.к. если убрать из него строки с 1С - сразу ошибки соответствующие. Еще проинсталирован 2й апач, но не стартован, просто без инсталяции не взлетало. При опубликации из 1С прописывались конф файлы проинсталированного апача, от туда я переносил в ОпенСервер в Apache-2.2.23_server.conf
154. DennyPhilord 66 07.12.12 12:45 Сейчас в теме
Вот эта картинка висит

155. Трактор 1297 07.12.12 15:02 Сейчас в теме
(154) SoapUI как раз позволит отладить сервис. 1С и Апач у тебя работают. Ошибка может быть как в коде в 1С так и в яваскрипте. В ответе, что получит SoapUI, есть шанс увидеть ошибку или подтвердить что 1С рабоает верно. Только бери SoapUI версии 3.6. Четвёртая не работает с сервисами 1С.
159. DennyPhilord 66 07.12.12 18:21 Сейчас в теме
Просто ФайрФокс17 оказался - для него также как в ФайрФокс3.
function определитьБраузер(){
	var userAgent = navigator.userAgent.toLowerCase();
	// Определим используемый браузер
	browser = {
		version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
		safari: /webkit/.test( userAgent ),
		opera: /opera/.test( userAgent ),
		msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
		firefox17: /firefox\/17/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ),
		firefox3: /firefox\/3/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ),
		firefox2: /firefox\/2/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ),
		firefox1: /firefox\/1/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
	}
}
Показать
Трактор; +1 – Ответить
160. evrakylon 08.12.12 10:59 Сейчас в теме
Спасибо за публикацию. Однако, на 1С 8.2 проделать это не удалось. Есть ли положительный результат? В частности интересует web-сервис на IIS и отправка POST запроса. В библиотеке preved.js есть строка HTTP запроса:
xmlhttp.open('POST', 'preved.1cws', true)(с комментарием // файл preved.1cws располежен в том же каталоге, что и страница preved.htm. Путь может быть и другим, например, таким: '/./ws/preved.1cws'). Перепробовал множество вариантов, но не нашел, как адаптировать этот вызов под 8.2.
161. Трактор 1297 08.12.12 13:16 Сейчас в теме
(160) Прочитай предыдущее обсуждение. На 8.2 и 8.3 всё работает.
Что видишь тут? http://ИмяСервера/ИмяБазы1С/ws/preved.1cws?1cws
162. evrakylon 08.12.12 20:02 Сейчас в теме
При вводе "http://localhost/ws/preved?wsdl" вижу схему сервиса
<definitions name="preved" targetNamespace="http://localhost">
<types><xs:schema targetNamespace="http://localhost" elementFormDefault="qualified">
<xs:element name="preved">
и тд.
При вводе http://localhost/preved/ws/preved.1cws?1cws ошибка - "Файл не обнаружен 'v8res://mngsrv/preved_ws_preved.1cws'"
При вводе http://localhost/ws/preved.1cws?wsdl - Ошибка - Сервис не найден
Ведь нет в 8.2 файла с расширением ".1cws", как это было в 8.1. Все WS прописаны внутри файла default.vrd. На ИТС описывается, что к веб-сервисам обращаемся по имени, например "ws/preved" (как я и делаю http://localhost/ws/preved?wsdl)
163. Трактор 1297 08.12.12 20:44 Сейчас в теме
(162) Сообщение "Файл не обнаружен 'v8res://mngsrv/preved_ws_preved.1cws'" говорит о проблемах внутри 1С. То ли кэш конфы кривой, толи сама конфа кривая.
8.2 поддерживает все формы обращения к веб сервисам версии 8.1. Даже если публикация выполнена не vrd файлом, а файлом 1cws, то работать будет. Проверено.
164. evrakylon 08.12.12 22:53 Сейчас в теме
Это интересное наблюдение, проверю. То есть 8.2 наследует сервисы, опубликованные в 8.1? Тем не менее пока не получилось отправить POST запрос - xmlhttp.open('POST', 'preved.1cws', true)
169. Sheff 13.12.12 14:38 Сейчас в теме
(164) evrakylon,
Тем не менее пока не получилось отправить POST запрос - xmlhttp.open('POST', 'preved.1cws', true)

Попробуй отправить как xmlhttp.open('POST', 'http://localhost/ИмяПубликацииНаСервере/ws/preved.1cws', true)

В 8.2 у меня только так и получилось
165. evrakylon 09.12.12 02:48 Сейчас в теме
Получилось выполнить web-сервис средствами 1С. И тут есть нюанс, может, кому понадобится на будущее: пространство имен не обязательно должно реально существовать, как пишут некоторые. Но оно должно быть оформлено корректно: "//localhost" и "1c" не сработали, зато подошло "http://www.sample-package.org".
На счет xmlhttp.open('POST', 'preved.1cws', true) пока нет продвижения.
P.S. убил apache и поднял на IIS
166. Трактор 1297 10.12.12 23:42 Сейчас в теме
(165) evrakylon,
На счет xmlhttp.open('POST', 'preved.1cws', true) пока нет продвижения.

Почитай (159)
167. evrakylon 11.12.12 13:02 Сейчас в теме
(166) да, я заменил эту процедуру. Пробую под всеми браузерами. Chrome пишет, что запрос завершился неудачно, FF - молчит. Играет ли роль, что отправляем тут xmlhttp.send('<?xml version="1.0" encoding="UTF-8"?>'...? Видел примеры, что отправляют просто строку.
Думаю, что проблема в пути в методе xmlhttp.open, но перепробовал кажется все комбинации. У меня IIS, файл default.vrd в папке C:\inetpub\wwwroot\preved
168. Трактор 1297 11.12.12 13:36 Сейчас в теме
(167) Примеры в статье тоже отправляют только строку.
Строка xmlhttp.send('<?xml version="1.0" encoding="UTF-8"?>'.. правильная. Это заголовок.
170. cs25 81 17.12.12 11:26 Сейчас в теме
Уважаемый Трактор !!!
Получилось опубликовать "Здоровеньки булы !" в связке IIS, 1С 8.1, Windows XP, файловый вариант базы. Возвращает строку. Вопрос:
как в конфигурации правильно создать пакеты XDTO для возврата рееестра документов ?
Нужно что-то типа такого (количество строк в ТЧ "Товары" у каждого документа своё ... как прописать в XDTO не знаю ...):

ДатаДокумента
НомерДокумента
Контрагент
Менеджер
СкладКомпании
Номенклатура1
Номенклатура2
......
НоменклатураN
СуммаДокумента
СуммаНДСДокумента
171. Трактор 1297 17.12.12 11:42 Сейчас в теме
(170)
как в конфигурации правильно создать пакеты XDTO для возврата рееестра документов ?

Так в примере же показано как формировать список. Если правильно помню, то возвращается список сотрудников.
176. cs25 81 19.12.12 16:47 Сейчас в теме
Уважаемый Трактор !!!
(171)
Так в примере же показано как формировать список. Если правильно помню, то возвращается список сотрудников.

Сделал выборку документов и их реквизитов как Вы и подсказали !!! Но ...
Как добавить данные из ТЧ документа ? Создавать ещё один тип объектов в ПакетахXDTO к уже имеющемуся типу "Документы" ?
177. Трактор 1297 19.12.12 16:59 Сейчас в теме
(176) ПакетXDTO может быть никак не связан с типами данных конфигурации. В примере картинка с примером как может быть отображён документ в xdto. Показаны поля xdto объекта и одно из полей имеет сложную структуру и может повторяться много раз - некий аналог табличной части.
Про манипуляции с данными документа я не говорю, подразумеваю что это всем известно.
Прикрепленные файлы:
172. Sheff 18.12.12 13:47 Сейчас в теме
Я правильно понимаю что в модуле веб-сервиса нельзя использовать функции общих модулей?
173. Трактор 1297 18.12.12 14:38 Сейчас в теме
(172) Понимаешь неправильно. функции общих модулей использовать можно. Но только серверные.
174. Sheff 18.12.12 14:41 Сейчас в теме
Серверные функции?
175. Трактор 1297 18.12.12 15:42 Сейчас в теме
(174) Sheff,
Серверные функции?

Серверные модули! Функции модулей, доступных на сервере.
178. cs25 81 20.12.12 14:38 Сейчас в теме
Многоуважаемый Трактор !!! Прошу подсказать как правильно сделать, если не утомил Вас расспросами.

Если например взять пакетХDTO с Вашего скрина, то нужно сделать примерно так:

сначала идёт запрос "ВыборкаДокумент", выбираем документы за период


ДокументТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "ZakazPokupatelya");
СписокДокументовТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "СписокДокументов");
СписокДокументов = ФабрикаXDTO.Создать(СписокДокументовТип);

Пока ВыборкаДокумент.Следующий() Цикл
ZakazPokupatelya = ФабрикаXDTO.Создать(ДокументТип);
ZakazPokupatelya.Data = Строка(ВыборкаДокумент.ДатаДокумента);
ZakazPokupatelya.Nomer = Строка(ВыборкаДокумент.НомерДокумента);
........


Товары = ВыборкаДокумент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Товары.Следующий() Цикл

Как тут добавить добавление строк из ТЧ "Tovary" ?
Добавлять ещё одно описание ХDTO ?

КонецЦикла;

СписокДокументов.ZakazPokupatelya.Добавить(ZakazPokupatelya);
КонецЦикла;

Возврат СписокДокументов
179. Трактор 1297 24.12.12 11:23 Сейчас в теме
(178) cs25,
>> Как тут добавить добавление строк из ТЧ "Tovary" ?
Так:
ДокументТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "ZakazPokupatelya");
ZakazPokupatelya = ФабрикаXDTO.Создать(ДокументТип);
TovaryТип = ДокументТип.Свойства.Получить("Tovary").Тип;
Пока Выборка.Следующий() Цикл
	Tovary = ФабрикаXDTO.Создать(TovaryТип);
	Tovary.Nomenklatura = ПолучитьЭлементСсылка(Выборка.Номенклатура, Строка(Выборка.Номенклатура));
	Tovary.Kolichestvo = Выборка.КоличествоТовара;
	ZakazPokupatelya.Tovary.Добавить(Tovary);
КонецЦикла;
Показать
180. eugen91 04.01.13 13:17 Сейчас в теме
как бы подключиться к веб-сервису evernote?
181. podkova 17.01.13 14:17 Сейчас в теме
сделала все по вашей статье, настроила iis по другой статье отсюда тоже, не получается ссылку получить wsdl, 2 день бьюсь-помогите.
8.1, файловая база, 1cws открывается, а на ссылку говорит внутренняя ошибка.
Перечитала все комменты, дело в настройках iis-1С, и не понимаю где это может быть...права на базу и на папку bin дала, пользователей из базы убрала, опубликовала из 1С с правами админа-что не так??
182. podkova 17.01.13 14:21 Сейчас в теме
(181) получилось, извините, спасибо за статью
183. x2z7yy 24.01.13 10:14 Сейчас в теме
<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>


Подскажите, пожалуйста, что с этим делать?

Это в ЗдоровенькиБулы
184. Трактор 1297 24.01.13 10:22 Сейчас в теме
(183) Описание wsdl открывается? Как его получить написано выше.
187. x2z7yy 24.01.13 10:47 Сейчас в теме
(184)
По запросу: "http://localhost/webbase/ws/preved.1cws?wsdl"
Выдает:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.goo7gle.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.goo7gle.com" name="ЗдоровенькиБулы" targetNamespace="http://www.goo7gle.com">
<types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="http://www.goo7gle.com" targetNamespace="http://www.goo7gle.com" elementFormDefault="qualified">
<xs:element name="ПриветХлопцы">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="ПриветХлопцыResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="ПриветХлопцыRequestMessage">
<part name="parameters" element="tns:ПриветХлопцы"/>
</message>
<message name="ПриветХлопцыResponseMessage">
<part name="parameters" element="tns:ПриветХлопцыResponse"/>
</message>
<portType name="ЗдоровенькиБулыPortType">
<operation name="ПриветХлопцы">
<input message="tns:ПриветХлопцыRequestMessage"/>
<output message="tns:ПриветХлопцыResponseMessage"/>
</operation>
</portType>
<binding name="ЗдоровенькиБулыSoapBinding" type="tns:ЗдоровенькиБулыPortType">
<soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ПриветХлопцы">
<soapbind:operation style="document" soapAction="http://www.goo7gle.com#ЗдоровенькиБулы:ПриветХлопцы"/>
<input>
<soapbind:body use="literal"/>
</input>
<output>
<soapbind:body use="literal"/>
</output>
</operation>
</binding>
<binding name="ЗдоровенькиБулыSoap12Binding" type="tns:ЗдоровенькиБулыPortType">
<soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ПриветХлопцы">
<soap12bind:operation style="document" soapAction="http://www.goo7gle.com#ЗдоровенькиБулы:ПриветХлопцы"/>
<input>
<soap12bind:body use="literal"/>
</input>
<output>
<soap12bind:body use="literal"/>
</output>
</operation>
</binding>
<service name="ЗдоровенькиБулы">
<port name="ЗдоровенькиБулыSoap" binding="tns:ЗдоровенькиБулыSoapBinding">
<documentation>
<wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1"/>
</documentation>
<soapbind:address location="http://localhost/webbase/ws/preved.1cws"/>
</port>
<port name="ЗдоровенькиБулыSoap12" binding="tns:ЗдоровенькиБулыSoap12Binding">
<soap12bind:address location="http://localhost/webbase/ws/preved.1cws"/>
</port>
</service>
</definitions>
Показать


(185) podkova,
"Поскольку мы будем оперировть только строками, то пакет XDTO нам не потребуется" цитата из документа описания.

тип у ПриветХлопцы стоит: "string (http://www.w3.org/2001/XMLSchema)"

(186) Sheff,
да вроде как на самом последнем, осталось только вывести:)

п.с. извиняюсь, как засунуть код под споллер не нашел, может быть и нет такой возможности.
189. Sheff 24.01.13 10:54 Сейчас в теме
(187) x2z7yy, ааа, ну дело значит в javaскрипте. Вы код скрипта копировали из примера?
185. podkova 24.01.13 10:28 Сейчас в теме
(183) копай в 1С в пакете XTDO и правильно присвой его веб-сервису, а если это без пакета(Здоровеньки Булы), то просто посмотри что в поле пространство имен у веб-сервиса стоит.
186. Sheff 24.01.13 10:38 Сейчас в теме
(183) x2z7yy, это у вас на каком этапе?
188. x2z7yy 24.01.13 10:52 Сейчас в теме
Отбой, нашел проблему. У меня в пространстве имен стояло "http://www.goog764127le.com"

что-то я не понял сразу, что это поле нужно нормально заполнять:) Кстати, что это такое?
190. abtat 1 21.02.13 17:40 Сейчас в теме
Трактор!
В Ваших ответах в переписке встречаются 3 варианта завершения команды POST:
...ws/preved.1cws?wsdl,
...ws/preved.1cws?1cws и
...ws/preved.1cws,

У меня WEB сервисы "Здоровеньки булы" и "Сотрудники" успешно работают при вызове из другого 1С, причем оба 1С
и апач 2.2 находятся на одном компьютере и в 1С единственный анонимный пользователь. В этих вызовах я использую следующие определения сервисов:

Определение = Новый WSОпределения("http://localhost/WebServicesDemo/ws/PrivetBoys.1cws?wsdl");
Определение = Новый WSОпределения("http://localhost/WebServicesDemo/ws/Workers.1cws?wsdl");

При вызове привета через браузер я попробовал все 3 Ваших варианта команды POST, хотя и считал, что правильна только первая:

xmlhttp.open('POST', 'http://localhost/WebServicesDemo/ws/PrivetBoys.1cws?wsdl', true)
// xmlhttp.open('POST', 'http://localhost/WebServicesDemo/ws/PrivetBoys.1cws?1cws', true)
// xmlhttp.open('POST', 'http://localhost/WebServicesDemo/ws/PrivetBoys.1cws', true)

Команда SEND полностью Ваша с заменой только имени функции "ПриветХлопцы" на английский "SalutBoys".

При первом варианте я дохожу до исполнения функции ПриОтветеВэбСервера со статусом 200 (ОК),
но ДомОтвет = NULL, при втором и третьем - запрос завершается soap:Fault c
FaultCode soap:VersionMismatch

Все в httpd.conf, требующееся для 1С учтено, файл 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="/WebServicesDemo"
ib="File="E:\ПоставщикWSDemo";"
enable="false">
<ws>
<point name="ДанныеОтгрузки"
alias="shipment.1cws"/>
<point name="ДанныеНоменклатуры"
alias="products.1cws"/>
<point name="Workers"
alias="Workers.1cws"/>
<point name="PrivetBoys"
alias="PrivetBoys.1cws"/>
</ws>
</point>
Вроде все сделал как рекомендовано, а не работает. Помогите, кто может.
191. poyson 22.02.13 15:24 Сейчас в теме
Очень полезно. спасибо.
192. xxxpb_ 17.05.13 15:07 Сейчас в теме
Здравствуйте.
У меня один вопросик, возможно немного не по теме.
есть ли возможность подключения клиентов к 1С используя "веб-клиент", но при подключении чтоб они вбивали свой логин и пароль и не ВИДЕЛИ СПИСОК ВСЕХ ПОЛЬЗОВАТЕЛЕЙ 1С!!! и если существует такая возможность ткните пожалуйста туда где мне можно почитать про это... спасибо.
193. Трактор 1297 17.05.13 15:11 Сейчас в теме
(192) В свойствах пользователя базы 1С надо для всех пользователей снять галку "Показывать в списке выбора"

Или набиваешь таким образом себе стартмани для скачивания?
194. xxxpb_ 17.05.13 15:15 Сейчас в теме
(193) Огромное спасибо!

ЗЫ =((( и в мыслях не было.
195. Sheff 17.05.13 15:20 Сейчас в теме
196. mdSerg 21.05.13 13:37 Сейчас в теме
я бы что-то сказал, но не могу скачать
198. Трактор 1297 02.07.13 23:48 Сейчас в теме
200. abtat 1 11.07.13 15:17 Сейчас в теме
Перевел тестовую базу на клиент-серверную конфигурацию. Все равно, если в конфигурации, из которой публикуются сервисы, нет пользователей, то сервисы успешно работают и при вызове из другой 1С, и при вызове из браузера IE. Если же завожу в конфигурации - поставщике сервисов хотя бы одного пользователя, то получаю ошибку при обращении к вызываемой функции сервиса. Это происходит независимо от включения логина и пароля пользователя в строку ib=... файла default.vrd, для браузерного вызова и в Прокси для 1С-ного вызова. Удаление логина и пароля из конструктора WSОпределения вызывает ошибку при обращении к конструктору. Детальные отчеты в приложениях. Что еще сделать не представляю - в дискуссии было упоминание о правах пользователя, от имени которого запущен Апач, на файл 1С, но для клиент-серверных конфигураций это вроде бы неприменимо. Посоветуйте, кто может!
Прикрепленные файлы:
Ошибка при запросе из 1С сетевого сервиса.doc
Ошибка при запросе из браузера IE серевого ВэбСервиса TestVegaSN .doc
201. abtat 1 11.07.13 17:24 Сейчас в теме
Вопрос предыдущего сообщения снимаю. Ошибка возникала из-за того, что при создании роли "Администратор" при задании прав не спустились до вызываемой функции сервиса, в данном случае до "ПроверитьСерНомер()", пытались дать право на сервисы в целом. Осталось одно - при вызове из 1С все работает нормально, при вызове из браузера IE требуется все же ввести имя и пароль пользователя UserWS в открывающемся окне "Подключение к localhost". Наличие имени пользователя и пароля в строке ib= файла default.vrd картину не меняет. Наверно все с этим встречались - подскажите куда вставить эти данные.
Прикрепленные файлы:
202. Трактор 1297 11.07.13 17:32 Сейчас в теме
(201)
Наверно все с этим встречались - подскажите куда вставить эти данные

Правильно вставляешь. Это ошибка платформы, которая периодически всплывает. В одном релизе исправят, в следующем она опять проявится. Потом исправят ещё раз. И так уже три года. Обнови платформу.
203. abtat 1 16.07.13 10:36 Сейчас в теме
У меня 8.2.14.540. А на какой из последних все работает?
204. abtat 1 16.07.13 10:39 Сейчас в теме
НУ меня сейчас платформа 8.2.14.540. А на какой последней платформе все работало?
205. Sheff 16.07.13 10:47 Сейчас в теме
(204) abtat, работает на 8.2.16, 8.2.18.61
207. poyson 13.11.13 13:51 Сейчас в теме
Спасибо . Полезно. Пробуем, пользуемся....
208. prodines 107 07.04.15 14:33 Сейчас в теме
Автору статьи: неужели нельзя было объяснить тему по-человечески - хотя бы так, чтобы всё заработало? У меня ничего не работает. Во-первых, конфу бухучета я не могу скачать - мне нечего объединять с прилагаемой cf-кой. Во-вторых - зачем отсылать читателя к жёлтым книжкам? А если у меня их нет? У меня действительно их нет. Трудно было написать статью "всё-в-одном"?

Итог - всё не работает - на самом первом простейшем примере, что не так - непонятно.

Минусую за откровенную халтуру.
209. prodines 107 07.04.15 17:12 Сейчас в теме
Я понял - статья просто устарела. У меня получилось заставить работать "Здоровеньки булы, друзи!" - под 1С 8.2.

1. Надо указать в файле preved.js

xmlhttp.open('POST', 'http://localhost/<Имя_базы_1С>/ws/preved.1cws', true)

2.
Опубликуем html файл на нашем web сервере под именем, например, preved.htm.

Это как это? Публикуем вообще-то файл preved.1cws, а не preved.htm!

3. "Здоровеньки булы, друзи!" заработали у меня в единственном броузере - IE. Ни в Mozilla FireFox, ни в Opera этот пример не заработал. Причина - в том, что если открыть файл preved.htm просто по файловому протоколу - например вот так: file:///C:/Program%20Files%20%28x86%29/Apache%20Software%20Foundation/­Apache2.2/htdocs/preved.htm , то тогда объект xmlhttp при ответе сервера вернёт статус 0 (а не 200, как положено) - потому что клиент и сервер в разныхх доменах. Для того, чтобы статус был 200 - нужно разместить файл как http://localhost/preved.htm - но в этом случае и вылетает ошибка

{"#exception":"{http://v8.1c.ru/8.1/data/core}Exception","exception":{"clsid":"9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3","descr":"Файл не обнаружен 'v8res://mngsrv/preved.htm'","data":"77u/ew0KezlkYjFmYTM3LWI0NTUtNGYzZi1iOGRkLTdkZTBlYTdkNmRhMyw­i0KTQ\r\nsNC50Lsg0L3QtSDQvtCx0L3QsNGA0YPQttC10L0gJ3Y4cmVzOi8­vbW5nc3J2L3By\r\nZXZlZC5odG0nIn0sMSwNCnsidjhyZXM6Ly9tbmdzcnY­vcHJldmVkLmh0bSIsMH0N\r\nCn0="}}


Это происходит именно в Mozilla FireFox и в Opera. А в IE всё работает, если запустить через file:///C:/Program%20Files%20%28x86%29/Apache%20Software%20Foundation/­Apache2.2/htdocs/preved.htm . Если вызвать localhost в IE, то у меня запускается веб-клиент.

Короче, заставить работать "Здоровеньки булы, друзи!" через Mozilla FireFox или Opera так и не удалось. Буду юзать IE пока.
210. prodines 107 08.04.15 09:39 Сейчас в теме
Беру назад свои слова насчёт халтуры. Но минус за статью всё равно оставляю - за то, что статья устарела, и её уже нельзя применить к практике в неизменном виде.
211. prodines 107 08.04.15 15:02 Сейчас в теме
В статье как-то слабовато рассказано про то, как, собственно, составлять SOAP-запросы из броузерного клиента к веб-серверу 1С:

6.2 Для написания запросов к web сервисам можно пользовать описание web сервиса доступное при обращении по адресу http://localhost/preved.1cws?wsdl, а можно взять за образец готовые запросы, формируемые 1С при подключении к web сервису. При подготовке этого документа использовался второй вариант. На языке 1С писалось обращение к web сервису, а затем сниффером перехватавались запросы для использования в javascript'ах. Оказалось не так просто найти сниффер, способный правильно перехватить запрос 1С. Хорошо работает и полностью перехватывает запросы 1С сниффер HttpAnalyzer компании IEInspector. К сожалению этот сниффер платный, но тестовых 15 дней вполне достаточно для получения нужных образцов запросов.


Я посмотрел - "можно пользовать описание web сервиса доступное при обращении по адресу http://localhost/preved.1cws?wsdl" - да ничего там понять невозможно, глупая эта идея. "а можно взять за образец готовые запросы, формируемые 1С при подключении к web сервису", "На языке 1С писалось обращение к web сервису, а затем сниффером перехватавались запросы для использования в javascript'ах." - автор, так просветите нас в деталях - как Вы это делаете? Ведь без этого умения вся Ваша статья теряет смысл. Да, и платный сниффер - тоже не есть хорошо.

К счастью, я нашёл другой отличный вариант написания SOAP-запросов из броузерного клиента к веб-серверу 1С - подсказали тут: http://infostart.ru/public/86791/ Смысл в том, что нужно применить программу SoapUI. Только автор публикации http://infostart.ru/public/86791/ ошибся - для наших целей с головой хватает бесплатной версии SoapUI, нет никакой нужды использовать платную SoapUI Pro, как он это делал.

Делаем так:

1. Создаём новый проект в SoapUI - жмём New Soap Project.
2. В поле Initial WSDL указываем нашу ссылку вида http://localhost/<Имя_базы_1С>/ws/preved.1cws?wsdl
3. Программа сама импортирует описание веб-сервиса из 1С, и сама строит правильный SOAP-запрос к этому сервису! Ничего не надо руками делать.
4. В окошке данных проекта выбираем Request1 - как на рисунке из http://infostart.ru/public/86791/ , жмём зелёный треугольник, и получаем XML-ответ от 1С, внутри которого уже зашито наше "Здоровеньки булы, друзи!".
5. Для примера ПолучитьСписокСотрудников делаем немного не так, как на картинке выше - а прямо в XML-коде запроса убираем знак вопроса и (опционально вместо него указываем, скажем, "петр") и жмём зелёный треугольник - как описано в http://proghouse.ru/programming/20-soapui
Таким образом, избегаем необходимости в платной версии - SoapUI Pro - как это ошибочно думал автор http://infostart.ru/public/86791/
212. Трактор 1297 09.04.15 08:50 Сейчас в теме
Смысл в том, что нужно применить программу SoapUI

(211) prodines, SoapUI упоминается в комментариях к этой статье с 2009 года (33)
213. prodines 107 10.04.15 13:09 Сейчас в теме
(212) упоминания недостаточно. Нужно step-by-step в картинках.
214. Трактор 1297 13.04.15 13:31 Сейчас в теме
Нужно step-by-step в картинках

(213) prodines, не всем оно надо. Большинство разбирается самостоятельно. Ты, смотрю, написал. Вот и хорошо.
215. prodines 107 15.04.15 17:04 Сейчас в теме
Я думаю, что в статье хорошо бы явно указать, для работы веб-сервиса нет нужды запускать 1С:Предприятие с соответствующей базой. Оказывается (и для меня это было открытие), веб-клиент (открытый в броузере HTML-файл со встроенным JavaScript) обращается к Веб-серверу (например, Апач), и далее Апач САМ лезет в рабочую 1С-базу - БЕЗ запущенного 1С:Предприятия! И как это достигается? Вообще непонятно. Остаётся домысливать, что всю работу на стороне 1С выполняет добавленная в httpd.conf строка:

LoadModule _1cws_module "C:/Program Files (x86)/1cv82/8.2.19.83/bin/wsap22.dll"

Видно, wsap22.dll принимает обращения от Апача и лезет в данные 1С, работая с ними так же, как пользователь через режим предприятия - а результат возвращает обратно Апачу.

Я-то думал поначалу, что Апач принимает обращение от броузера, затем обращается к запущенному 1С:Предприятие - и уже оно делает нужную работу. Оказалось, что нет.

Но стоит вырубить Апач на компе (для проверки) - как всё прекращается.
216. Трактор 1297 16.04.15 11:41 Сейчас в теме
далее Апач САМ лезет в рабочую 1С-базу - БЕЗ запущенного 1С:Предприятия!

(215) prodines, апач по сути запускает клиента 1С. Без визуальной части, но клиента. Это всё описано в документации 1С.


В этой публикации описано то, что было слабо документировано.
217. prodines 107 16.04.15 16:12 Сейчас в теме
Теперь не получается передать бинарный файл с веб-клиента на веб-сервер. Точнее, передать получается - сохранить на диск на веб-сервере не получается. Вот пример изменения функции:


Функция ПриветХлопцы()

ПолныйПуть = "C:\8.2\test.txt";

ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.ДобавитьСтроку("НоваяСтрока");
ТекстДок.Записать(ПолныйПуть);

Возврат "Здоровеньки булы, друзи!"

КонецФункции
Показать


Эта функция не создаст текстовый файл. И не выдаст никаких сообщений об ошибках. Тихо-молча вернётся, но файл не создаст. В то же время, в обычной внешней обработке та же функция создаёт этот текстовый файл без проблем.
218. newborn 17.04.15 00:18 Сейчас в теме
Не могу раскрутить тестовый пример. В VirtualBox создал тестовую онфигурацию: WinXP (так быстрее и меньше жрёт ресурсов), апач 2.2. Файл preved.htm не работает, возвращает всегда "Запрос завершился неудачно. Ответ сервера:" и пустота. Пробовал на Опере, в Хроме и в ИЕ.
Релиз 1С 8.3.5.1517
Обращение к preved.1cws из браузера проходит нормально. Для проверки попробовал создать обработку с обращение к веб-сервису из 1С - работает нормально. Значит можно предположить сам веб-сервис запущен.
Знакомый, знающий javascript делал отладку. В строке 52 файла preved.js всегда xmlhttp.status = 0 а xmlhttp.responseXML всегда есть NULL.
При этом снифер HttpAnalyzerStdV7 показывает, что ответ прищёл и именно такой ответ, как я ожидаю.
База файловая, называется test, опубликована в c:\test\
Прикрепленные файлы:
preved.js
default.vrd
httpd.conf
219. prodines 107 17.04.15 09:59 Сейчас в теме
(218) newborn,
возвращает всегда "Запрос завершился неудачно. Ответ сервера:" и пустота. Пробовал на Опере, в Хроме и в ИЕ.

Это происходит ввиду устарелости статьи. Раньше так работало (8.1) - а теперь уже нет (8.2). Поэтому я минус статье и поставил.
Причина пустого ответа заключается в том, что preved.htm опубликовать в 8.2 нельзя (поправьте меня, если не прав), а раньше, видимо, было можно - на момент написания статьи. Раз preved.htm опубликовать нельзя, то приходится открывать его через файловый протокол, а не через http. Проще говоря, preved.htm открывается в броузере со ссылкой file://C:/test/preved.htm - а наш веб-сервер крутится на http://localhost. В примере из данной статьи используется объект xmlhttp = new XMLHttpRequest();, а он не умеет работать в кросс-доменном режиме - это заблокировано по соображениям безопасности - т.е. он не может обмениваться с file:// на http:// - в этом случае он возвращает status=0 вместо status=200 - на что рассчитывает пример из статьи. Вот если бы удалось открыть http://localhost/preved.htm (а для этого нужно было бы опубликовать preved.htm) - тогда возвращалась бы не пустота, а то, что нужно - но я так и не смог добиться открытия http://localhost/preved.htm - сыпятся малопонятные ошибки.

Однако, в IE 9 у меня такое кросс-доменное взаимодействие всё-таки сработало - это единственный броузер, в котором пример из статьи сработал - ни в Mozilla Firefox, ни в Opera не получилось - тоже вернулась пустота.
Для проверки попробовал создать обработку с обращение к веб-сервису из 1С - работает нормально. Значит можно предположить сам веб-сервис запущен.

Гадать, запущен веб-сервис, или нет, нет ни малейшей нужды. Откройте в любом броузере адрес вида:

http://localhost/<Имя_базы_1С>/ws/preved.1cws?wsdl - если увидите XML-файл - веб-сервис работает нормально. Если не увидите - то, скорее всего, увидите описание ошибки.

Кстати, почти именно эту строку и надо указать в JS-файле из статьи:

xmlhttp.open('POST', 'http://localhost/<Имя_базы_1С>/ws/preved.1cws', true, '<логин_1с_если есть>', '<пароль_1с_если есть>')

Читайте также мой ответ 211 - в комментариях к этой статье.
220. newborn 17.04.15 10:25 Сейчас в теме
(219) prodines,
Значит локально я проверить не смогу? Блин... три дня бился башкойапстену... А как можно наладить тестовую систему? У людей-то получилось...
221. Трактор 1297 17.04.15 13:16 Сейчас в теме
Значит локально я проверить не смогу?

(220) newborn, сможешь. Ставишь апач, подключашь к нему модуль 1С, обращаешься к нему по 127.0.0.1 и счастье рядом.
223. newborn 17.04.15 14:31 Сейчас в теме
(221)
Спасибо, но я опять чего-то не доганяю.
Вызываю в браузере.
http://127.0.0.1/test/preved.htm
Ответ
{"#exception":"{http://v8.1c.ru/8.2/virtual-resource-system}Exception","exception":{"clsid":"580392e6-ba49-4280-ac67-fcd6f2180121","reason":404,"descr":"HTTP: Not found\nОшибка при выполнении запроса GET к ресурсу /preved.htm:"}}
233. ptica-voron 17.11.16 13:46 Сейчас в теме
(223) (232) lehaer, Я столкнулся с той же проблемой. Удалил публикацию, перезагрузил сервер, добавил публикацию снова, перезагрузил сервер (вручную) - и все работает.
224. prodines 107 17.04.15 15:24 Сейчас в теме
(220) newborn,
Значит локально я проверить не смогу?

Почему, сможете. Я же говорю - в IE 9 это работает.
А как можно наладить тестовую систему? У людей-то получилось...

Либо через IE 9, либо так, как описано в моем комментарии № 211 к этой статье.

Это неправильно. Видно, Вы с Апачем вообще никогда дела не имели.
Неожиданно у меня получилось с Opera 28.0.
Я положил preved.htm в папку C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs - это и есть localhost (он же http://127.0.0.1) по умолчанию - и ввёл там ссылку: http://localhost/preved.htm . Всё сработало - прямо как в статье. При этом веб-сервис опубликован в совсем другой папке. Раньше с Оперой почему-то не получалось - и вдруг получилось. В IE 9 так тоже работает. В Mozilla Firefox 28 пока не получается.

Т.е. в Опере 28:
Вот так получаем пустой ответ от сервера:
file:///C:/Program%20Files%20(x86)/Apache%20Software%20Foundation/Apache2.2/htdocs/preved.htm
из-за кросс-доменной блокировки безопасности.
А вот так - всё работает:
http://localhost/preved.htm
причём это один и тот же файл preved.htm.
222. DoctorRoza 17.04.15 13:32 Сейчас в теме
Отмечусь, пригодится! :)
225. prodines 107 17.04.15 15:48 Сейчас в теме
Маленькая, но важная деталь: для публикации веб-сервисов из Конфигуратора 1С нужны админские права на компьютере. Поэтому для тех, у кого их нет, запускайте Конфигуратор под администратором - для публикации веб-сервисов.
226. newborn 17.04.15 16:40 Сейчас в теме
Конечно, я с веб-серверами раньше дела не имел. Спасибо за все советы, вечером буду пробовать
227. newborn 18.04.15 01:12 Сейчас в теме
228. prodines 107 24.04.15 17:17 Сейчас в теме
По поводу пересылки файлов:

У меня была задача переслать файл через SOAP c веб-клиента (SoapUI) на веб-сервер (1C). Переслать удалось довольно легко - в SoapUI оказался встроенный инструмент кодирования файлов в Base64 и вставки закодированного результата в узлы отправляемого XML.

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

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

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

Это, кстати, типовая схема в некоторых стандартных конфигурациях 1С.
229. Трактор 1297 27.04.15 17:52 Сейчас в теме
(228) Странное ты пишешь. 1С нормально работает с файлами на сервере. Вот тут есть пример передачи с сервера на сайт http://infostart.ru/public/59207/
Я передавал и с сайта в 1С, но сходу пример не вспомню.
230. bezplana 28.10.15 16:24 Сейчас в теме
Сделал веб-сервис на 1С. Добавил операцию, указал у нее входного параметра тип (Structure (http://v8.1c.ru/8.1/data/core)). Теперь пытаюсь вызвать эту операцию с веб-странички на PHP. Если передавать из PHP , например, строку, то все ок. А со структурой возникает проблема, преобразовать ее у меня получается, но при этом внутри нет элементов. Каким образом правильно делать вызов к операции из PHP?
231. Трактор 1297 28.10.15 17:01 Сейчас в теме
(230) структуру передавать не пробовал. Создавал XDTO-пакет и там описывал структуру передаваемых данных. Вот тут http://infostart.ru/public/59207/ более-менее сложные данные передаются из php в 1С
232. lehaer 27.03.16 22:51 Сейчас в теме
{"#exception":"{http://v8.1c.ru/8.2/virtual-resource-system}Exception","exception":{"clsid":"580392e6-ba49-4280-ac67-fcd6f2180121","reason":405,"descr":"HTTP: Method not allowed\nОшибка при выполнении запроса POST к ресурсу /***/admin/hs/***/***/***/***:"}}

подскажите, в чём может быть дело?
234. пользователь 17.11.16 14:30
Сообщение было скрыто модератором.
...
235. Miracle180882 9 21.06.19 07:19 Сейчас в теме
Добрый день, Трактор.
Скачал, адаптировал скрипты под свои нужды.
А каким образом авторизоваться при вызове функции?
База серверная. Опубликована корректно, при вызове в браузере соответствующей строчки просит логин пароль и выводит XML. В отладке показывает ошибку функции send ошибка авторизации.
236. Трактор 1297 21.06.19 10:44 Сейчас в теме
(235) вот что говорит поиск по словам "javascript http авторизация"
http://qaru.site/questions/1240865/basic-authentication-using-javascript
Для отправки сообщения требуется регистрация/авторизация