Имя: Пароль:
IT
Веб-мастеринг
запрос из веб-сервиса - как отобразить в с#
, ,
0 Anna-Ain
 
17.12.12
02:41
Вот вопросик:

Сам XDTO-пакет
Заказы
URI пространства имен http://localhost/MyOrders
Типы объектов
Заказы
 Номер
 Контрагент
 Менеджер
 ДополнительнаяИнформация

Веб-сервис СтраницаЗаказы
//у параметра КодЗаказа тип значения string (http://www.w3.org/2001/XMLSchema)

Функция Получить(КодЗаказа)


   Запрос = Новый Запрос;
   Запрос.Текст =      
       
     "ВЫБРАТЬ
    |    ЗаказКлиента.Номер,
    |    ЗаказКлиента.Контрагент,
    |    ЗаказКлиента.Менеджер,
    |    ЗаказКлиента.ДополнительнаяИнформация как         ДополнительнаяИнформация
    |ИЗ
    |    Документ.ЗаказКлиента КАК ЗаказКлиента
    |ГДЕ
    |    ЗаказКлиента.Номер = &Номер";
   
   Запрос.УстановитьПараметр("Номер", КодЗаказа);
   
 
  ЗаказТип = ФабрикаXDTO.Тип("http://localhost/MyOrders", "Заказы");

  Выборка = Запрос.Выполнить().Выбрать();
   
   
 
   Пока Выборка.Следующий() Цикл    
       
       Заказы = ФабрикаXDTO.Создать(ЗаказТип);
       Заказы.Номер  = Выборка.Номер;
       Заказы.Контрагент = Выборка.Контрагент;
       Заказы.Менеджер = Выборка.Менеджер;
       Заказы.ДополнительнаяИнформация  = Выборка.ДополнительнаяИнформация;
                   
   КонецЦикла;

   Возврат Заказы;
   
КонецФункции;

в с# когда на веб-страничку выводилась только одна запись из запроса, к примеру, ДополнительныеДанные, все срабатывало, что нужно, чтобы выводилась вся информация запроса?
если просто пытаюсь передать параметр
string s = Заказ.Получить("СБЦУ-000004");
TextBox1.Text = s;

ошибка
Ошибка сервера в приложении '/'.
Неверный формат.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.Web.Services.Protocols.SoapException: Неверный формат.
1 Anna-Ain
 
17.12.12
02:54
в с# когда на веб-страничку выводилась только одна запись из запроса, к примеру, ДополнительныеДанные, все срабатывало - без использования XDTO-пакета
2 Anna-Ain
 
17.12.12
10:44
))
3 Serginio1
 
17.12.12
10:47
(0) Так ты передавай список а не запись
v8: веб-сервис
4 alexhtn
 
17.12.12
11:01
(0) В свойствах функции поняла возвращаемый тип?
5 Serginio1
 
17.12.12
11:03
6 Serginio1
 
17.12.12
11:20
7 Anna-Ain
 
17.12.12
12:40
(4) не до конца - думаю, созданный тип объекта «Заказы» из пакета
КодЗаказа
тип значения Заказы (http://localhost/MyOrders)

(5)да, читала, тип мой - структура, правильно? поэтому и нужен пакет
(6) спасибо,гляжу
8 Anna-Ain
 
17.12.12
13:12
не, про тип не то написала...
9 Serginio1
 
17.12.12
13:49
Тебе нужен тип например ЗаказыСТоварами
Сделай его последовательным.
Добавь свойство например ЭлементыЗаказа
Сделай минимальное количество 1, а максимальное количество -1 и тип Заказы
10 Anna-Ain
 
17.12.12
13:55
Да,еще так понимаю, мне с контрагентами и номенклатурой тоже просто  так не разделаться - они ведь берутся в док Заказы как справочник.ссылка
11 Serginio1
 
17.12.12
14:04
Почитай про СериализаторXDTO, СхемаXDTO, Экспор XML схемы конфигурации итд.
12 Gepard
 
17.12.12
14:06
(0) судя по коду - будет только последний заказ)
13 Gepard
 
17.12.12
14:08
(12)+ C# или нет - тут роли не играет)

string s = Заказ.Получить("СБЦУ-000004"); а здесь сразу неявное преобразование в строку... а возвращается то объект)
14 alexhtn
 
18.12.12
16:44
(11) Не стоит усложнять схемами и сериализаторами, сделать поля типов string и decimal. Так будет проще работать из C#.

Пример рабочего кода:
DBRef.Товар Tovar = new DBRef.Товар();
Tovar = WS_Connection.Товар_НайтиПоАртикулу(e.Data);
tbPartNumber.Text = Tovar.Артикул;
lbDescription.Text = Tovar.Наименование;
15 Serginio1
 
18.12.12
16:52
(14) Не совем. Для передачи ссылки нужно получить Guid этой ссылки через XMlСтрока(Товар.Ссылка) как ключ.
Либо если есть артикул то передавать его. Но разобраться как работает сериализация, объектыXDTO и прочее стоит. Во первых так как сама 1С эту сериализацию использует при передаче между клиентом и сервером, так можно и передавать данные между различными БД и сайтами.
Программист всегда исправляет последнюю ошибку.