![]() |
![]() |
|
v8: Работа с Web сервисом | ☑ | ||
---|---|---|---|---|
0
November
26.11.12
✎
15:59
|
Дорогие форумчане, помогите, пожалуйста, разобраться, как правильно получить данные от созданного мной web-сервиса.
Скажу сразу, что, к сожалению, пока не имею достаточного опыта в программировании, и web сервисами в 1с мне заниматься явно рано, лучше было бы больше времени потратить на изучение ООП и вообще основ основ. Но я был поставлен в такие обстоятельсва, что времени очень мало и нужно получить хотя бы какой-то маленький результат. Так что могу очень сильно косячить, за что прошу не бить и не сильно ругать :) 1. Создал веб сервис "Сотрудники", в нем метод (операция) "ПолучитьСотрудников" с таким кодом: Функция ПолучитьСотрудников() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Сотрудники.Имя, | Сотрудники.Фамилия |ИЗ | Справочник.Сотрудники КАК Сотрудники"; СотрудникТип = ФабрикаXDTO.Тип("http://localhost/sotrud", "Сотрудник"); СписокСотрудниковТип = ФабрикаXDTO.Тип("http://localhost/sotrud", "СотрудникСписок"); СписокСотрудников = ФабрикаXDTO.Создать(СписокСотрудниковТип); Выборка = Запрос.Выполнить().Выбрать(); Сотрудник = ФабрикаXDTO.Создать(СотрудникТип); Пока Выборка.Следующий() Цикл Сотрудник = ФабрикаXDTO.Создать(СотрудникТип); Сотрудник.Имя = Выборка.Имя; Сотрудник.Фамилия = Выборка.Фамилия; СписокСотрудников.Сотрудник.Добавить(Сотрудник); КонецЦикла; Возврат СписокСотрудников КонецФункции Пакет XDTO http://localhost/sotrud: Тип объекта "Сотрудник" со стринговыми св-вами Имя и Фамилия, тип объекта "СотрудникСписок" со св-вом Сотрудник (тип "Сотрудник") - мин. кол-во = 0, макс кол-во = -1. <xs:complexType name="Сотрудник"> <xs:sequence> <xs:element name="Имя" type="xs:string"/> <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> Все вышеописанное сделано по примеру из статьи "Веб-сервисы 1С из браузера" отсюда: http://inq-brc.ru/index.php/files/218-file-1c-obuch и вроде бы должно работать.... 2. Веб сервис опубликовал, после чего написал обработку в 1С для того, чтобы получить результат выполнения метода ПолучитьСотрудников() в таблицу на форме. &НаКлиенте Процедура КнопкаВыполнитьНажатие(Кнопка) Прокси = WSСсылки.WSСотрудники.СоздатьWSПрокси( "http://localhost/sotrud", "Сотрудники", "СотрудникиSoap"); Список = Прокси.ПолучитьСотрудников(); Для ии=0 по 1 Цикл НоваяСтрокаТС = ТаблицаСотрудников.Добавить(); НоваяСтрокаТС.Фамилия = Список.Сотрудник.Фамилия; НоваяСтрокаТС.Имя = Список.Сотрудник.Имя КонецЦикла; КонецПроцедуры Ругается на {Обработка.СписокСотрудников.Форма.Форма(24)}: Поле объекта не обнаружено (Имя) НоваяСтрокаТС.Фамилия = Список.Сотрудник.Фамилия Подскажите, правильно ли я обращаюсь к своему методу...Буду очень благодарен! |
|||
1
Serginio1
26.11.12
✎
16:03
|
Для каждого стр из Список.Сотрудник Цикл
НоваяСтрокаТС = ТаблицаСотрудников.Добавить(); НоваяСтрокаТС.Фамилия = Стр.Фамилия; НоваяСтрокаТС.Имя = Стр.Имя КонецЦикла Смотри данные в отладчике |
|||
2
November
26.11.12
✎
16:13
|
Спасибо большое! Ураа, работает :) Данные вывел!
Еще раз спасибо!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |