В предыдущих статьях мы с вами научились работать с разными веб сервисами в интернет, получали погоду и проверяли орфографию. Теперь думаю, настала пора написать свой небольшой веб сервис, который будет отдавать некую информацию любому желающему. Для создания веб сервиса нужно сделать несколько обязательных действий.
Во-первых, в нужной конфигурации создать объект конфигурации веб сервис
Во-вторых, указать веб пространство имен
В-третьих, создать операции, которые будет производить веб сервис, и указать тип параметра который принимает операция и тип ответа.
"Имя файла публикации" – название файла, в котором будут сохранены данные для Апача, файл будет находиться с папке, которую вы укажете при публикации вебсервиса.
У нас есть веб сервис, нужно создать какую-то операцию, которая будет делать что-то полезное, например, возвращать остатки на складе.
Создадим операцию Ostatki, и укажем тип возвращаемого значения.
Если вы планируете передавать параметры в операцию, то создавайте их в структуре метаданных, с указанием типов значения. После можно смело нажимать на кнопку возле поля с именем метода система создаст обработчик операции
Ми передавать параметры не будем, нам нужно просто получить все остатки.
Возвращать мы будем структуру, которая будет создана на основании XDTO – пакета из конфигурации. Таблица, которая будет состоять из массива строк, а массив строк из номенклатуры и остатка:
В функции Ostatki мы сначала создадим XDTO объекты, а потом, когда будем пробегаться по остаткам номенклатуры, присвоим им соответствующие значения смотрим код:
Функция Ostatki( ) НоменклатураТип = ФабрикаXDTO.Тип("http://localhost/wsreport", "номенклатура"); ТаблицаТип = ФабрикаXDTO.Тип("http://localhost/wsreport", "Таблица"); СтрокаОтчетаТип = ФабрикаXDTO.Тип("http://localhost/wsreport", "СтрокаОтчета"); ТаблицаОтчета = ФабрикаXDTO.Создать(ТаблицаТип); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.КоличествоОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.Счет.Код = ""201"""; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СтрокаТаблицыОтчета = ФабрикаXDTO.Создать(СтрокаОтчетаТип); Номенклатура = ФабрикаXDTO.Создать(НоменклатураТип); СтрокаТаблицыОтчета.Остаток = ВыборкаДетальныеЗаписи.КоличествоОстаток; Тип("СправочникСсылка.Номенклатура") Тогда Номенклатура.Наименование = ВыборкаДетальныеЗаписи.Субконто1.Наименование; СтрокаТаблицыОтчета.Номенклатура = Номенклатура; ТаблицаОтчета.Состав.Добавить(СтрокаТаблицыОтчета); КонецЦикла; Возврат ТаблицаОтчета;
Все просто, на 201 счету в Украине учитываются материалы. Обрабатывать ответ веб-сервиса мы уже умеем, таким чином можно наладить взаимодействие между двумя территориально отдаленными базами 1с, если нет других возможностей.