Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б) #667274


#0 by badbob
Всем привет. Пытаюсь сделать вэб-сервис на базе 1С, который возвращал бы заказ пользователя по идентификатору заказа. Это нужно для интеграции с сайтом, написанным на java.На свой запрос получаю вот такой ответ: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> Где можно посмотреть, какая именно библиотека модулей не может быть инициализирована? Есть в 1С какие-нибудь журналы/логи, куда может попасть такая ошибка? Гугление почему-то не дало никаких результатов.
#1 by Asmody
wsdl отдается?
#2 by badbob
Да, wsdl с сервера отдаётся. Кстати, тело модуля, который должен обрабатывать этот запрос, выглядит так: Если переписать этот модуль так: то web-сервис сообщит, что обязательный выходной параметр не задан. (Или что-то вроде того...)
#3 by Jaap Vduul
# xdtoЗаказ = Заказ Это что такое?
#4 by Serginio1
Так ты возвращаешь тип. СериализаторXDTO.ЗаписатьXDTO(Заказ.ПолучитьОбъект);
#5 by badbob
# xdtoЗаказ = Заказ - это комментарий. Не исполняемый код. Serginio1, твой вариант не работает, выдаёт такую же ошибку. Однако, если написать так: то результат будет такой: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">            <soap:Text xml:lang="ru_RU">Неизвестная ошибка. {WebСервис.ДанныеЗаказа.Модуль}: Ошибка при вызове метода контекста (ПолучитьОбъект) по причине: {WebСервис.ДанныеЗаказа.Модуль}: Ошибка при вызове метода контекста (ПолучитьОбъект) по причине: Элемент не выбран!</soap:Text> Похоже, что 1С не может найти объект с кодом, который я передаю. Попробовал создать примитивный пример: В ответ получил то с чего начал: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
#6 by voinvostoka
#7 by voinvostoka
Попробуй получи просто код документа в виде строки
#8 by Asmody
во-первых, сомневаюсь, что во внешнем приложении нужен заказ целиком. правильнее описать в пакете XDTO нужный XDTO-объект, и формировать и возвращать его. во-вторых, необходимо предусмотреть что-то, что будет возвращать твой метод при отсутствии заказа.
#9 by voinvostoka
XDTO-объект навряд ли поймет Java
#10 by Serginio1
На самом деле СериализаторXDTO.ЗаписатьXDTO(Заказ.ПолучитьОбъект); Возвращает XDTO объект. Только в описании возврата функцией должен быть тип DocumentObject.ЗаказПокупателя ( Правда нужно добовить в пакет сервиса
#11 by Asmody
XDTO — это лишь одинесовская обертка XML Schema. Java поймет
#12 by badbob
Serginio1, ты абсолютно прав. После добавления в список пакетов модуля код заработал: Возвращается, конечно, пустой заказ покупателя. Но это уже хоть что-то. Однако, добавив одну строчку: получаем старую ошибку:
#13 by Serginio1
Кстати новую версию поставил? Заказ = Документы.ЗаказПокупателя.НайтиПоНомеру(Код)    Возврат СериализаторXDTO.ЗаписатьXDTOЗаказ.ПолучитьОбъект); при правильном коде. Уникальность номера непериодическая?
#14 by badbob
Serginio1, не понял вопроса. Новую версию чего нужно было поставить? Код, который передаётся в функцию Получить однозначно уникальный - другого заказа покупателя с таким идентификатором нет. Есть ли где-нибудь у 1С возможность посмотреть, что это за "Внутренняя ошибка. Ошибка инициализации библиотеки модулей"? Какая-нибудь аналогия stacktrace?
#15 by badbob
Вообще, я понял, что на самом деле использовал вместо кода "Номер". То есть, "Номер" однозначно уникальный в систем - на сколько я понимаю, это первичный ключ. Ещё интересная особенность - даже если поставить "#" перед вызовом  Документы.ЗаказПокупателя.НайтиПоНомеру(Номер) - всё-равно возникает ошибка "Внутренняя ошибка...".
#16 by Dethmont
# - это не комментарий!
#17 by zmaximka
Да не находит у тебя заказ по номеру
#18 by Serginio1
Новая версия 8.3.3. НайтиПоНомеру использует 2 параметра номер и дату документа. Бывают без периодичности в течении года итд. Уникальный это УникальныйИдентификатор
#19 by Serginio1
Да и поставт проверку в параметры проверка на все клиенты и серверы
#20 by Serginio1
И прежде чем запускать сделай проверку из 1С. Лучше все методы выносить в отдельный модуль, что бы тестировать из толстого клиента
#21 by badbob
Serginio1, ёптить, а где можно прочитать вообще обо всех функциях/методах объектов 1С? Есть какая-то документация по API типа MSDN? Проблема "Внутренняя ошибка. Ошибка инициализации библиотеки модулей" была связана с тем, что я не ставил точку с запятой в конце первой строки. Я не ожидал, что компилятор не сругнётся... Спасибо большое тебе за помощь. Уверен, что без твоих советов, я бы пропал.
#22 by Serginio1
Называется справка. Плюс Желтые книги форумы и накопленный опыт
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

В этой группе 1С