Перейти к содержимому

Перейти
Перейти

помогите исправить ошибку


  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1   Enot_tut

Enot_tut

      Рядовой

    • Пользователи
    • Сообщений: 1
    • Регистрация: 20-July 15

Отправлено 20 July 2015 - 13:59

{ОбщаяКоманда.Обмен.МодульКоманды(37)}: Ошибка при вызове метода контекста (ВыполнитьОбмен)
ДанныеОбмена = Прокси.ВыполнитьОбмен(КодМобильногоКомпьютера, СформироватьПакетОбмена(ЦентральныйУзелОбмена));
по причине:
Ошибка вызова операции сервиса:  {http://localhost/ws1...ыполнитьОбмен()
по причине:
Ошибка SOAP сервера:  Неизвестная ошибка. {WebСервис.WebОбмен.Модуль(34)}: Метод объекта не обнаружен (НачатьЧтение)
по причине:
{WebСервис.WebОбмен.Модуль(34)}: Метод объекта не обнаружен (НачатьЧтение)
 
 
 
жалуется на эту строку
 
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
 
 
 
вот полностью скрипт
Процедура ЗарегистрироватьИзмененияДанных(УзелОбмена) Экспорт
СоставПланОбмена = УзелОбмена.Метаданные().Состав;
Для Каждого ЭлементСоставаПланаОбмена Из СоставПланОбмена Цикл
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена,ЭлементСоставаПланаОбмена.Метаданные);
КонецЦикла;
КонецПроцедуры

Функция ВыполнитьОбмен(КодУстройства, ДанныеУстройства)
УстановитьПривилегированныйРежим(Истина);

УзелОбмена = ПланыОбмена.Мобильные.ЭтотУзел().ПолучитьОбъект();
Если НЕ ЗначениеЗаполнено(УзелОбмена.Код) Тогда
УзелОбмена.Код="001";
УзелОбмена.Наименование="Центральный";
УзелОбмена.Записать();
КонецЕсли;

УзелОбмена = ПланыОбмена.Мобильные.НайтиПоКоду(КодУстройства);
Если УзелОбмена.Пустая()тогда
НовыйУзел = ПланыОбмена.Мобильные.СоздатьУзел();
НовыйУзел.Код = КодУстройства;
НовыйУзел.Наименование = КодУстройства;
НовыйУзел.Записать();
ЗарегистрироватьИзмененияДанных(НовыйУзел.Ссылка);
УзелОбмена = НовыйУзел.Ссылка;
КонецЕсли;

//для мобильных получение данных
УзелОбмена = ПланыОбмена.Мобильные.НайтиПоКоду(КодУстройства);
Сообщить (КодУстройства);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ДанныеУстройства.Получить());
ЧтениеСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправителя,ЧтениеСообщения.НомерПринятого);
НачатьТранзакцию();
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML);
Если НЕ Данные = Неопределено Тогда
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.записаь();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
ЧтениеСообщения.ЗакочитьЧтение();
ЧтениеXML.Закрыть();

//выгрузка данных
УзелОбмена = ПланыОбмена.Мобильные.НайтиПоКоду(КодУстройства);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъевлениеXML();
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML,УзелОбмена);
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi","http://www.w3.org/20...ema-instance");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data");
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий()Цикл
Данные = ВыборкаИзменений.Получить();
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(), Новый СжатиеДанных(9));
КонецФункции
 
 
 
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОбработкаКомандыСервер();
КонецПроцедуры

&НаСервере
Процедура ОбработкаКомандыСервер()
Адрес ="http://192.168.0.212...ws1.1cws?wsdl";
Определения = Новый WSОпределения(Адрес);
URI = "http://localhost/ws1";
Прокси = Новый WSПрокси(Определения, URI, "WebОбмен","WebОбменSoap");

СисИнфо = Новый СистемнаяИнформация;
КодМобильногоКомпьютера = Строка(СисИнфо.ИдентификаторКлиента);

//инциализация

Узел = ПланыОбмена.Мобильные.ЭтотУзел();
Если НЕ ЗначениеЗаполнено(Узел.Код)
ИЛИ Узел.Код <> КодМобильногоКомпьютера тогда
ОбъектУзла = Узел.ПолучитьОбъект();
ОбъектУзла.Код = КодМобильногоКомпьютера;
ОбъектУзла.Наименование = КодМобильногоКомпьютера;
ОбъектУзла.Записать();
КонецЕсли;

ЦентральныйУзелОбмена = ПланыОбмена.Мобильные.НайтиПоКоду("001");
Если ЦентральныйУзелОбмена.Пустая() Тогда
НовыйУзел = ПланыОбмена.Мобильные.СоздатьУзел();
НовыйУзел.Код = "001";
НовыйУзел.Наименование = "Центральный";
НовыйУзел.Записать();
ЦентральныйУзелОбмена = НовыйУзел.Ссылка;
КонецЕсли;


ДанныеОбмена = Прокси.ВыполнитьОбмен(КодМобильногоКомпьютера, СформироватьПакетОбмена(ЦентральныйУзелОбмена));


ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ДанныеОбмена.Получить());
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель.ЧтениеСообщения.НомерПринятого);
НачатьТранзакцию();
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML);
Если НЕ Данные = Неопределено Тогда
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
КонецПроцедуры

функция СформироватьПакетОбмена(УзелОбмена) Экспорт
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/20...ema-instance");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data");
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.следующий() Цикл
Данные = ВыборкаИзменений.Получить();
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(),Новый СжатиеДанных(9));
КонецФункции
 
 
 

  • 1

#2   Den007

Den007

      Рядовой

    • Пользователи
    • Сообщений: 2
    • Регистрация: 03-September 15

Отправлено 13 October 2015 - 14:24

Ну так  ЧтениеСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); - нужно СоздатьЧтениеСообщения()

 

  • 2

#3   dimongol

dimongol

      Рядовой

    • Пользователи
    • Сообщений: 3
    • Регистрация: 10-November 15

Отправлено 10 November 2015 - 08:54

Ну так  ЧтениеСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); - нужно СоздатьЧтениеСообщения()

все верно


  • 1



Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных