Ошибка soap сервера обязательное возвращаемое значение не задано

Ошбика веб-сервисе: Обязательное возвращаемое значение не задано

Я
   YVGroshkov

24.12.12 — 16:44

Функция test()

   ПеременнаяМассив = Новый Массив(4);

   ПеременнаяМассив.Вставить(0, «Нулевой»);

   ПеременнаяМассив.Вставить(1, «Первый»);

   ПеременнаяМассив.Вставить(2, «Второй»);

   ПеременнаяМассив.Вставить(3, «Третий»);

   Возврат ПеременнаяМассив;

КонецФункции

XDTO http://v8.1c.ru/8.1/data/core

тип Array

Где я ошибся?

   На стороне добра

1 — 24.12.12 — 17:06

Как воспроизвести ситуацию?

   YVGroshkov

2 — 24.12.12 — 17:10

Создать веб сервис с операцией test
код модуля веб-сервиса приведён выше

в xdto веб-сервиса нужно указать http://v8.1c.ru/8.1/data/core

Потом из скрипта обратиться вот так:

$client = new SoapClient(‘http://192.168.0.98/bb/ws/bb?wsdl’,

                                        array(
                                                'login' => "user", 
                                                'password' => "pass",
                                                'trace' => 1,
                                                'exeption' => 1
                                            )
                                    );
            
            try { 
                echo "<pre>n";
                    VarDumper::dump($client->test());
                echo "n</pre>n";
            } catch (SoapFault $exception) {
                echo $exception;
            }

            echo "<hr />";
            echo "<pre>";
            echo "Запрос :n".htmlspecialchars($client->__getLastRequest()) ."n"; 
            echo "Ответ:n".htmlspecialchars($client->__getLastResponse())."n";
            echo "</pre>";
   YVGroshkov

3 — 24.12.12 — 17:13

блин, что-то форма ссылки уродует :(

   Serginio1

4 — 24.12.12 — 17:14

Ну есть два подхода
XmlСтрока(ПеременнаяМассив);

Тип=ФабрикаXDTO.Тип(ИмяПространстваИмен,"Array");

Тип=ФабрикаXDTO.Создать(Тип,ПеременнаяМассив);
   Serginio1

5 — 24.12.12 — 17:17

СериализаторXDTO.ЗаписатьXDTO(ПеременнаяМассив)

   Serginio1

6 — 24.12.12 — 17:26

Кстати если ты посмотришь ПеременнаяМассив.Количество() то увидишь 8 элеменов.
Либо используй 
ПеременнаяМассив.[0]="Нулевой";

Либо просто 
ПеременнаяМассив = Новый Массив();
    ПеременнаяМассив.Добавить("Нулевой");
   Serginio1

7 — 24.12.12 — 17:30

Есть еще вариант
 
СписокОбъектов = Фабрика.Создать(Фабрика.Тип("http://v8.1c.ru/8.1/data/core", "Array"));
 ТипЗначения=Фабрика.Тип("http://v8.1c.ru/8.1/data/core","ValueListItemType");
 ТипСтрока=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","string");
 Стр=Фабрика.Создать(ТипСтрока,"Мама мыла раму");
СписокОбъектов.value.Добавить(стр);
   YVGroshkov

8 — 24.12.12 — 18:03

Блин, зачитался и забыл, что нужно обязательно возвращать XML для веб-сервисов.

   YVGroshkov

9 — 24.12.12 — 18:26

Serginio1, спасибо.

   Serginio1

10 — 24.12.12 — 18:27

(8) Не XML, а ОбъектXDTO, который потом сериализуется

  

Serginio1

11 — 24.12.12 — 18:27

10+ Поэтому XmlСтрока это ошибка. Каюсь.

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

доброго времени суток всем! у меня возникла следующая проблема при создании WS-ссылки: в конфигураторе создается, но при проверке в режиме исполнения выдает ошибку: {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове метода контекста (СоздатьWSПрокси)     ПроксиСервер = WSСсылки.WSСсылка2.СоздатьWSПрокси( «;, «WebService», » WebServiceSoap» ); по причине: Порт не найден. {: WebServiceSoap прочитала кучу статей на форумах, в том числе и здесь, проверила регистр, с ним все нормально. подскажите, пожалуйста,а то руководитель меня морально съест(

точка с запятой там точно надо?

«;,  там нет точки с запятой ни в конфигураторе,ни в ошибке

видно, в сообщении при отправке автоматом прибавляется

в версии 8.3 синтаксис: СоздатьWSПрокси(<URIПространстваИменСервиса>, <ИмяСервиса>, <ИмяПорта>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>)

первые три параметра являются обязательными

здравствуйте еще раз. в процессе создания WSпрокси возник следующий вопрос: {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове конструктора (WSОпределения) Определения = Новый WSОпределения(«;, «Системный администратор», «»); по причине: При создании описания сервиса произошла ошибка.

Сделай пользователя без пробела.

попробовала,выдает ту же ошибку

ну, про точку с запятой, уже говорили?

и кавычки внутри кавычек.

«WebServiceSoap», там пробел был лишний…извиняюсь за свой чудовищный затуп(( кстати,кавычки добавляются сами при копировании сюда кода

теперь сообщает,что {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Обмен) РезультатыИмпорта = Прокси.Обмен; по причине: Ошибка вызова операции сервиса:  {:Обмен по причине: Ошибка SOAP сервера:  Обязательное возвращаемое значение не задано:  :Обмен

Н так воспользовался бы ссылкой из 4. Так дай описании :  :Обмен Проверь что возвращает функция например в SoapUI

в соапе при вводе ссылки просит атентификацию, при вводе данных выдает ошибку и не создает проект, пишет Error loading []: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected element: CDAT

WSDLException (at /html): faultCode=INVALID_WSDL: Expected element ‘{‘. — стабильно выдает соап после аутентификации

Ты бы хоть WSDL выложил. Тут ясновидцев мало

— проверяю эту вс-ссылку в соапе, выдает приведенную выше ошибку. в браузере сообщает: This XML file does not appear to have any style information associated with it. The document tree is shown below. <faultstring> Операция не найдена: {:Обмен </faultstring> по-видимому,косяк в функции Обмен , только непонятно,какой, код я сверяла со статьей,по которой делала

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

Посмотри в Оладчике, что тебе Прокси выдает. Какие методы.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Введение

Для создания самого простого веб-сервиса необходимо:

  1. создать в дереве метаданных объект Web-Сервис;

  2. указать его URI пространства имен;
  3. создать необходимую операцию, если нужно указать ее параметры и тип возвращаемого значения;
  4. написать обработчик вызываемой операции;
  5. опубликовать веб-сервис.

После этих действий веб-сервисом можно будет пользоваться. Таким образом будет создан веб-сервис, который сможет оперировать только простыми типами данных. 

Итак начнем.

Откройте конфигурацию и в дереве метаданных найдите ветку «Общие — Web-сервисы». Нажмите правой кнопкой и добавьте новый элемент.

Реализация веб-сервиса в 1с

Введите имя создаваемого веб-сервиса.

Имя веб-сервиса можно задать русское. И платформа его сохранит и опубликует, но рекомендую использовать латиницу в названиях веб-сервисов,  ws-операций, параметров ws-операций. Например, chrome не смог отобразить wsdl файл веб-сервиса с русским именем.
Перейдите на вкладку  «Прочее» и укажите параметр «URI пространство имен».

Реализация веб-сервиса в 1с

В документации об этом параметре написано чуть больше чем ничего, примерно то, что это поле служит для идентификации вашего веб-сервиса. Когда я делал свой первый веб-сервис, мне казалось что это ссылка на сайт, на котором я публикую свой веб-сервис и все наименования буду получаться через запрос к этому сайту. На самом деле «URI пространство имен» не что иное как строка определяющая название набора ваших имен (названий веб-сервиса, операций, параметров, типов данных и т.д.). То есть если вы объявите свой тип «integer» то xml-парсер не будет ругаться, так как этот тип принадлежит вашему пространству имен. Мало того если «URI пространство имен» будет содержать русские символы и не будет соответствовать стандарту как формат URI, платформа все равно опубликует такой веб-сервис, и он будет работать. Но по стандартам рекомендуется использовать URI ссылку. Я советую того же самого.
Простое и понятное объяснение пространства имен можно прочитать тут.

Поле «Пакеты XDTO» не обязательное. Оно определяет набор пакетов XDTO в которых вы можете оказать свои типы значений. Это не обязательное поле, по умолчанию вам всегда доступны типы пространства имен «http://www.w3.org/2001/XMLSchema». О пакетах XDTO я расскажу чуть позже.

«Имя файла публикации», это имя файла, в котором хранятся настройки веб-сервиса для Apache(путь к базе и другие) после публикации. Папка, в которой находится этот файл, определяется при публикации. О публикации на веб-сервере будет рассказано позже.

Веб-сервис создан, но еще нет ни одной функции которую он мог бы исполнить. Надо добавить операцию. Для этого добавьте в созданный веб-сервис операцию. Нажмите не веб-веб-сервис правой кнопкой и выберите «Добавить-Операция». Она будет к вашему операнду прибавлять 2 и возвращать значение. Давайте назовем ее «Plus2». Можно указать и русское название, многие клиенты его обработают, но все же могут возникнуть проблемы. 

Реализация веб-сервиса в 1с

«Тип возвращаемого значения» это тип описанный в указанном вами пакете XDTO или же тип из пространства имен «http://www.w3.org/2001/XMLSchema». Именно в этом типе веб сервис будет возвращать значение.
«Возможно пустое значение» признак что ws-операция может не вернуть значение(nillabletrue«).
«В транзакции» указывает что код веб-сервиса будет выполняться в транзакции. А «Режим управления блокировкой данных» определяет тип блокировки данных при транзакции по умолчанию.

Установим тип возвращаемого значения в int. В поле «Имя метода» укажем имя «Plus2» для нового метода, который будет выполнять обработку. При нажатии на лупу метод будет автоматом создан в модуле веб-сервиса.
Напишем простой код.


Функция Plus2(Параметр)
Возврат Параметр+2;
КонецФункции

Вы заметили что на входе функции у нас есть параметр «Параметр». Для того что бы в метод этот параметр был передан надо добавить его в дереве метаданных. Для этого щелкните правой кнопкой по веб-операции Plus2 и выберите «Добавить-Параметр».

Реализация веб-сервиса в 1с

Давайте назовем его «Param». Названия параметров тоже можно указывать русскими, мало того  класс SoapClient языка PHP работает с ними корректно, ведь параметры передаются через массив. Желательно использовать кодировку UTF-8.

Укажем «Тип значения» int из пространства имен «http://www.w3.org/2001/XMLSchema».

Свойство «Возможно пустое» указывает что можно передать значение null в веб-операцию.

«Направление передачи» указывает по значению или по «ссылке» передается операнд в ws-операцию. Возможные значение «Входной», «Выходной», «Входной-Выходной». Таким образом если вы для параметра укажете «Выходной» или «Входной-Выходной» то сможете менять значения операнда. В результате xml сообщение-ответ дополнится строкой с новым значением операнда. Я пока не сталкивался с задачами которые можно решить только используя Выходное направление операнда, потому не могу дать какие то комментарии по этому свойству.


Вот в принципе и всё! Веб сервис создан, но существует он пока что только как описание в вашей конфигурации. Для того что бы им воспользоваться надо его опубликовать на вашем веб-сервере. Как опубликовать вы можете прочитать в статье 1С:Предприятие 8. Веб-сервисы. Публикация и тестирование.

Модуль 2. Обмен данными с мобильным приложением через веб-сервисы

Изучив второй модуль, Вы научитесь:

  • Создавать и публиковать веб-сервисы
  • Сериализовать и десериализовать данные при передаче между клиентом и сервером
  • Производить перенос справочников из одной базы в другую

Порядок обучения

329696678Скачивайте теоретические материалы в PDF и видео-формате. Рекомендуем начинать именно с изучения теории.

home-security-systems-installation-costs Выполняйте практическое задание для закрепления полученных знаний.

загруженное (5)Выполните самоконтроль, просмотрев видео-решение преподавателя.

Теоретические материалы

Итак, приступайте к изучению теоретического материала второго модуля курса.

Данный контент доступен только для зарегистрированных пользователей.
Пожалуйста, войдите на сайт (Войти), если Вы уже зарегистрированы или зарегистрируйтесь на сайте (Зарегистрироваться), чтобы получить доступ.
Регистрация занимает 1 минуту, но открывает доступ к материалам сайта.

Вопросы

Если у Вас возникли вопросы, Вы можете просто просмотреть комментарии ниже, наверняка Вы найдете ответ.

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

предыдущие-комментарии

Следующие-комментарии

Если же Вам необходима поддержка, мы с радостью ответим на Ваши вопросы в рамках Мастер-группы «Полного курса по разработке Мобильных приложений на платформе «1С:Предприятие 8».

<< Перейти к Модулю 1

Сообщение SOAP — это просто документ XML, который состоит из обязательного конверта SOAP, в конверте SOAP есть необязательный заголовок SOAP и необходимое тело SOAP.

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов. Публикация баз данных «1С: Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012 | Обращайтесь в форму связи

Типичные ошибки в «1С» 8.3 и их исправление

Любое программное обеспечение время от времени может выдавать различные сбои. Не исключено, что при работе с программными продуктами линейки «1С:Предприятие 8.3» вы можете столкнуться с ошибками.

Рассмотрим распространенные ошибки при работе с «1С» 8.3:

Перед любыми действиями с базой мы рекомендуем сделать архивную копию. Если база не открывается в режиме «Конфигуратор», скопируйте папку с базой и выполняйте все операции на копии.

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

База открывается в конфигураторе, не получается зайти в пользовательский режим

  • очистить временные файлы (путь к папке описан в пункте 3);
  • войти в систему под другим пользователем;
  • протестировать и исправить информационную базу. Для этого в конфигураторе зайдите в раздел «Администрирование –Тестирование и исправление» и поставьте галочки в зависимости от вашей ситуации;
  • выгрузить файлы в*.dt и загрузить в «чистую» базу;
  • попробовать создать нового пользователя с полными правами и зайти под этим профилем;
  • зайти в базу данных с другого ПК. Это действие позволит исключить ошибку, связанную с работой системы на определенном оборудовании.

Для проверки стоит по традиции сначала очистить кэш. Если это действие не помогло, то скорее всего ошибка в коде программы. Это особенно актуально для самописных и нетиповых программ, но иногда такая ошибка встречается и в типовых. Если ваша конфигурация нетиповая, то проблема может быть связана с неправильным обновлением системы.

Введем имя базы данных, как она будет отображаться в списке информационных баз должно быть уникальным для данного списка , тип расположения выберем На веб-сервере и нажмем Далее.

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

Обычно ошибка указывает на то, что веб-страница или запрос ресурса понятен серверу, но последний не может выполнить его по той или иной причине, или же из-за банальной перегрузки, когда не хватает ресурсов. Интеграция между 1С и 1С-Битрикс — типовые ошибки Обращайтесь в форму связи

1С. Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру

Проблема:
В клиент-серверном варианте информационной базы после изменения конфигурации сети на серверном или клиентском компьютере, например, после появления на компьютере новых локальных IP-адресов, может происходить ошибка
Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру.

Дата публикации:
2013-10-17

  1. Быстрый вариант. Остановить службу сервера, руками остановить процессы сервера 1С(rphost, ragent, rmngr) и запустить службу сервера;
  2. Предпочтительный вариант. Скачать и установить актуальную версию платформы, ведь ошибка находится в разделе « Известные ошибки версии 8.3.4, планируемые к исправлению в версии 8.3.5″ . Ошибка возникает вплоть до 8.3.10. более поздних версий пока нет)
  3. Правильный вариант решения был предложен в комментарии Константина, методом внесения изменений в файл C:WindowsSystem32Driversetchosts

Например наш сервер называется SERVER_1C, а его IP-адрес 192.168.1.22, то файл будет выглядеть так:

Какую часть дохода тратите на еду?

До 50%Больше 50%

То же самое случилось на платформе 8.3.5, значит ошибку не исправили.
Помог перезапуск сервисов rphost, ragent и rmngr.
Спасибо за информацию!

Алексей, видимо не исправили, но после обновления на 8.3.5 ошибки не получал. Может сеть успокоилась)

Может быть, но больше склоняюсь к проблеме платформы, уж очень она капризная ко всякого рода окружению.
От версии к версии разработчики не только копируют ошибки, но и создают новые.
Им нужно на что то жить, сделай все нормально ИТС продаваться не будет и сторонние програмисты от голода умрут.
У 1С весь бизнес построен на создании и борьбе с собственными ошибками

Необходимо в файл C:WindowsSystem32Driversetchosts добавить две строки

вместо IP-адрес и ИмяСервера — данные вашего сервера (напр. 192.168.1.22 SERVER)

Добавлю от себя. Ошибка иногда имеет немного другие симптомы, смотрите здесь . В той же теме указывается корень проблемы, а именно: «Задача состоит в том, чтобы добиться правильного адреса при пинге через имя».

Четыре часа бился с этой проблемой, и благодаря из последнему утверждению обнаружил, что ping сервера по имени с самого сервера выдается в формате ipv6. Т.е. комнада ping myserver из сети выдавала ipv4 ответы, а на самом myserver выдавала ipv6.

Горящие товары с бесплатной доставкой

«AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

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

UPD. 2015-07-24. Комментарий изменен Guesto. Закрыты теги)

Развертывание веб-служб с использованием WSDL, часть 2: Простой протокол доступа к объектам (SOAP) — Русские Блоги

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

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

В этом случае, для корректной работы 1С Предприятие , имя домена, на который идет обращение или IP-адрес должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm. Обращайтесь в форму связи

Часто возникающие ошибки 1С

Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:

  1. Недостаточно памяти.
  2. Ошибка доступа.
  3. Ошибка формата потока.
  4. Ошибка СУБД: Файл базы данных поврежден.
  5. Неправильное отображение блоков формы.
  6. Внутренняя ошибка компоненты dbeng.
  7. Dump при запуске.
  8. Неверный формат хранилища.
  9. Ничего не работает.

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

Недостаточно памяти

Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.

Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.

Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.

Ошибка доступа

Ошибка формата потока

Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.

Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.

Ошибка СУБД: Файл базы данных поврежден

Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:

  • Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
  • Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.

Частые ошибки программы 1С 8.3 и их исправление

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

Ошибки 1С 8.3 и их исправление

Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.

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

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

💥Принимайте участие в опросе и получайте бесплатную консультацию

I have been trying to call a bajaj webservice created in java (which is not shared to me and cannot be changed from their side) which should return response as byte array of PDF file and I want to call it through php code but it always gives me an error as follows:

Method Parameter: return cannot be null. This is BP 1.1 R2211 violation.

For calling web service I have used Soap Client and w.s.d.l link for same is as follows:

wsdl= http://webservicesdev.bajajallianz.com/docDownldWS/WebServiceImplService?wsdl

While trying to call soap->__getFunctions(), I am getting following in return:

Array
(
    [0] => anyType downloadFile(clientInfo $arg0)
    [1] => anyType getPolicyDoc(string $arg0, string $arg1)
    [2] => anyType getPolicyPdf(base64Binary $arg0, string $arg1)
 )

While trying to call soap->__getTypes() I am getting following in return:

  Array
  (
    [0] => struct clientInfo {
                           string errorCode;
                           string errorMsg;
                           string password;
                           string pdfMode;
                           string policyNum;
                           string str1;
                           string str10;
                           string str11;
                           string str12;
                           string str13;
                           string str14;
                           string str15;
                           string str2;
                           string str3;
                           string str4;
                           string str5;
                           string str6;
                           string str7;
                           string str8;
                           string str9;
                           string userId;
                       }
  )

Please help me in resolving the issue. I even have tried creating struct object but it resulted in same issue.
I have done following experiment:

<?php
      class clientInfo {
        public $errorCode='';
        public $errorMsg='';
        public $password='somepass';
        public $pdfMode='WS_POLICY_PDF';
        public $policyNum='OG-18-9906-8430-00001806';
        public $str1='';
        public $str10='';
        public $str11='';
        public $str12='';
        public $str13='';
        public $str14='';
        public $str15='';
        public $str2='';
        public $str3='';
        public $str4='';
        public $str5='';
        public $str6='';
        public $str7='';
        public $str8='';
        public $str9='';
        public $userId='itsTheirUserName@s.in';
      }
      $clientInfo = new clientInfo();
      try {
         $soap = new SoapClient($wsdl, $options);
         $data = $soap->downloadFile(array(0=>$clientInfo));
         print_r($data);die;
      }
      catch(Exception $e) {
         die($e->getMessage());          }
?>
   white_tiger

27.10.13 — 16:22

доброго времени суток всем! у меня возникла следующая проблема при создании WS-ссылки: в конфигураторе создается, но при проверке в режиме исполнения выдает ошибку:

{Обработка.пример.Форма.Форма.Форма(8)}: Ошибка при вызове метода контекста (СоздатьWSПрокси)

    ПроксиСервер = WSСсылки.WSСсылка2.СоздатьWSПрокси( «http://www.sample-package.org»;, «WebService», » WebServiceSoap» );

по причине:

Порт не найден. {http://www.sample-package.org}:WebService: WebServiceSoap

прочитала кучу статей на форумах, в том числе и здесь, проверила регистр, с ним все нормально. подскажите, пожалуйста,а то руководитель меня морально съест(

   Wobland

1 — 27.10.13 — 16:24

точка с запятой там точно надо?

   white_tiger

2 — 27.10.13 — 16:38

«http://www.sample-package.org»;,  там нет точки с запятой ни в конфигураторе,ни в ошибке

   white_tiger

3 — 27.10.13 — 16:38

видно, в сообщении при отправке автоматом прибавляется

   Serginio1

4 — 28.10.13 — 13:36

   white_tiger

5 — 30.10.13 — 13:44

в версии 8.3 синтаксис: СоздатьWSПрокси(<URIПространстваИменСервиса>, <ИмяСервиса>, <ИмяПорта>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>)

   white_tiger

6 — 30.10.13 — 13:57

первые три параметра являются обязательными

   white_tiger

7 — 04.11.13 — 21:09

здравствуйте еще раз.

в процессе создания WSпрокси возник следующий вопрос:

{Обработка.пример.Форма.Форма.Форма(15)}: Ошибка при вызове конструктора (WSОпределения)

Определения = Новый WSОпределения(«http://localhost:8080/WebServiceTest/WS/WebService?wsdl»;, «Системный администратор», «»);

по причине:

При создании описания сервиса произошла ошибка. http://Системный%20адм

   white_tiger

8 — 04.11.13 — 21:10

   white_tiger

9 — 04.11.13 — 21:11

код модуля следующий:

Процедура ИмпортВебСервис ()

    
Определения = Новый WSОпределения(«http://localhost:8080/WebServiceTest/WS/WebService?wsdl»;, «Системный администратор», «»);

Прокси = Новый WSПрокси(Определения, «http://www.sample-package.org»,»WebService»;, » WebServiceSoap»);

Прокси.Пользователь = «Системный администратор»;

Прокси.Пароль = «»;

РезультатыИмпорта = Прокси.Обмен();

КонецПроцедуры

   Serginio1

10 — 05.11.13 — 10:25

Сделай пользователя без пробела.

   white_tiger

11 — 05.11.13 — 19:55

(10) попробовала,выдает ту же ошибку

   hhhh

12 — 05.11.13 — 20:27

(11) ну, про точку с запятой, уже говорили?

   hhhh

13 — 05.11.13 — 20:28

и кавычки внутри кавычек.

   white_tiger

14 — 05.11.13 — 20:42

«WebServiceSoap», там пробел был лишний…извиняюсь за свой чудовищный затуп(( кстати,кавычки добавляются сами при копировании сюда кода

   white_tiger

15 — 05.11.13 — 20:43

теперь сообщает,что

{Обработка.пример.Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Обмен)

РезультатыИмпорта = Прокси.Обмен();

по причине:

Ошибка вызова операции сервиса:  {http://www.sample-package.org}:WebService:Обмен()

по причине:

Ошибка SOAP сервера:  Обязательное возвращаемое значение не задано:  http://www.sample-package.org}:WebServiceSoapBinding:Обмен()

   Serginio1

16 — 06.11.13 — 10:35

(14) Н так воспользовался бы ссылкой из 4.

ОпределениеТ=Новый WSОпределения(Имя_Файла_wsdl);

    WSСервис=ОпределениеТ.Сервисы[0];

    прокси=Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);

В твоем случае Имя_Файла_wsdl=»http://localhost:8080/WebServiceTest/WS/WebService?wsdl»;;

Так дай описании :  http://www.sample-package.org}:WebServiceSoapBinding:Обмен()

Проверь что возвращает функция например в SoapUI

   white_tiger

17 — 06.11.13 — 21:35

в соапе при вводе ссылки просит атентификацию, при вводе данных выдает ошибку и не создает проект, пишет

Error loading [http://localhost:8080/WebServiceTest/ws/WebService?wsdl]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected element: CDAT

   white_tiger

18 — 06.11.13 — 22:58

WSDLException (at /html): faultCode=INVALID_WSDL: Expected element ‘{http://schemas.xmlsoap.org/wsdl/}definitions’. — стабильно выдает соап после аутентификации

   Serginio1

19 — 07.11.13 — 12:51

(18) Ты бы хоть WSDL выложил. Тут ясновидцев мало

   white_tiger

20 — 07.11.13 — 17:44

http://localhost:8080/WebServiceTest/ws/WebService?wsdl — проверяю эту вс-ссылку в соапе, выдает приведенную выше ошибку. в браузере сообщает:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

<soap:Envelope xmlns:soap=»http://schemas.xmlsoap.org/soap/envelope/»>;

<soap:Header/>

<soap:Body>

<soap:Fault>

<faultcode>soap:Client</faultcode>

<faultstring>

Операция не найдена: {http://www.sample-package.org}:WebService:Обмен()

</faultstring>

<detail/>

</soap:Fault>

</soap:Body>

</soap:Envelope>

по-видимому,косяк в функции Обмен (), только непонятно,какой, код я сверяла со статьей,по которой делала

   Serginio1

21 — 07.11.13 — 17:52

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

  

Serginio1

22 — 07.11.13 — 17:54

Посмотри в Оладчике, что тебе Прокси выдает. Какие методы.

доброго времени суток всем! у меня возникла следующая проблема при создании WS-ссылки: в конфигураторе создается, но при проверке в режиме исполнения выдает ошибку: {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове метода контекста (СоздатьWSПрокси)     ПроксиСервер = WSСсылки.WSСсылка2.СоздатьWSПрокси( «;, «WebService», » WebServiceSoap» ); по причине: Порт не найден. {: WebServiceSoap прочитала кучу статей на форумах, в том числе и здесь, проверила регистр, с ним все нормально. подскажите, пожалуйста,а то руководитель меня морально съест(

точка с запятой там точно надо?

«;,  там нет точки с запятой ни в конфигураторе,ни в ошибке

видно, в сообщении при отправке автоматом прибавляется

в версии 8.3 синтаксис: СоздатьWSПрокси(<URIПространстваИменСервиса>, <ИмяСервиса>, <ИмяПорта>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>)

первые три параметра являются обязательными

здравствуйте еще раз. в процессе создания WSпрокси возник следующий вопрос: {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове конструктора (WSОпределения) Определения = Новый WSОпределения(«;, «Системный администратор», «»); по причине: При создании описания сервиса произошла ошибка.

Сделай пользователя без пробела.

попробовала,выдает ту же ошибку

ну, про точку с запятой, уже говорили?

и кавычки внутри кавычек.

«WebServiceSoap», там пробел был лишний…извиняюсь за свой чудовищный затуп(( кстати,кавычки добавляются сами при копировании сюда кода

теперь сообщает,что {Обработка.пример.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Обмен) РезультатыИмпорта = Прокси.Обмен; по причине: Ошибка вызова операции сервиса:  {:Обмен по причине: Ошибка SOAP сервера:  Обязательное возвращаемое значение не задано:  :Обмен

Н так воспользовался бы ссылкой из 4. Так дай описании :  :Обмен Проверь что возвращает функция например в SoapUI

в соапе при вводе ссылки просит атентификацию, при вводе данных выдает ошибку и не создает проект, пишет Error loading []: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected element: CDAT

WSDLException (at /html): faultCode=INVALID_WSDL: Expected element ‘{‘. — стабильно выдает соап после аутентификации

Ты бы хоть WSDL выложил. Тут ясновидцев мало

— проверяю эту вс-ссылку в соапе, выдает приведенную выше ошибку. в браузере сообщает: This XML file does not appear to have any style information associated with it. The document tree is shown below. <faultstring> Операция не найдена: {:Обмен </faultstring> по-видимому,косяк в функции Обмен , только непонятно,какой, код я сверяла со статьей,по которой делала

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

Посмотри в Оладчике, что тебе Прокси выдает. Какие методы.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Приветствую. делаю вебстраничку, которая будет общаться с 1с. У 1с на ИТС диске есть демоконфигурация Веб-сервисы. Вот там есть 2 вебсервиса «Получение номенклатуры » и еще какаято.

Я создал вебстраницу, обратился через soap протокол к этому сервису и мне 1с отдала в формате xml данные в справочнике «Номенклатура»(Наименование, цена, количество).
С этим более менее понятно.
ДАльше. Пытаюсь создать свой вебсервис и указываю URI и код на 1с языке

Функция Получить()
	Возврат "1";
КонецФункции

Я потом смотрю результат через SOAPUI Обязательное возвращаемое значение не задано: http://www.1c.ru/demos/products}:ДанныеНоменклатур…()

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

Подскажите, есть ли у вас опыт создания такого вебсервиса, желательно подробно, потому что у меня вознимают вопросы, а одинэсники ничего не могут сказать.
Гуглил инструкции. нашел habrahabr.ru/post/184540
Почему то на URI не останавливались. при создании простого URI у меня пишет, что моя функция выше на найдена в этом пространстве.

Модуль 2. Обмен данными с мобильным приложением через веб-сервисы

Изучив второй модуль, Вы научитесь:

  • Создавать и публиковать веб-сервисы
  • Сериализовать и десериализовать данные при передаче между клиентом и сервером
  • Производить перенос справочников из одной базы в другую

Порядок обучения

329696678Скачивайте теоретические материалы в PDF и видео-формате. Рекомендуем начинать именно с изучения теории.

home-security-systems-installation-costs Выполняйте практическое задание для закрепления полученных знаний.

загруженное (5)Выполните самоконтроль, просмотрев видео-решение преподавателя.

Теоретические материалы

Итак, приступайте к изучению теоретического материала второго модуля курса.

Данный контент доступен только для зарегистрированных пользователей.
Пожалуйста, войдите на сайт (Войти), если Вы уже зарегистрированы или зарегистрируйтесь на сайте (Зарегистрироваться), чтобы получить доступ.
Регистрация занимает 1 минуту, но открывает доступ к материалам сайта.

Вопросы

Если у Вас возникли вопросы, Вы можете просто просмотреть комментарии ниже, наверняка Вы найдете ответ.

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

предыдущие-комментарии

Следующие-комментарии

Если же Вам необходима поддержка, мы с радостью ответим на Ваши вопросы в рамках Мастер-группы «Полного курса по разработке Мобильных приложений на платформе «1С:Предприятие 8».

<< Перейти к Модулю 1

Понравилась статья? Поделить с друзьями:
  • Ошибка soap сервера неизвестная ошибка
  • Ошибка soap сервера 504 gateway timeout
  • Ошибка soap сервера 502 bad gateway
  • Ошибка snowshoe ea8151f как исправить
  • Ошибка snowshoe ea8151f far cry new dawn