Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Получить данные о конкретном сотруднике
Дальше: Информация о ценах на товары
Удалить данные о конкретном сотруднике

В этом примере, чтобы иметь возможность удалить данные о конкретном сотруднике, мы добавим еще один метод для ранее созданного шаблона URL Сотрудник нашего HTTP-сервиса.

Итак, добавим этому шаблону еще один подчиненный метод DELETE, в качестве HTTP-метода выберем значение DELETE. Далее создадим обработчик этого метода.

В модуле нашего HTTP-сервиса будет создан шаблон функции-обработчика СотрудникDELETE(). Заполним эту функцию следующим образом (листинг 1.66).

Листинг 1.66. Функция «СотрудникDELETE»

Функция СотрудникDELETE(Запрос)

 

// Сформировать ответ (без тела), возвращаемый HTTP-сервисом.

Ответ = Новый HTTPСервисОтвет(204);

 

// Получить из запроса параметр URL Код.

Код = Запрос.ПараметрыURL.Получить("Код");

Если Код = Неопределено Тогда

Ответ = Новый HTTPСервисОтвет(400);

Ответ.УстановитьТелоИзСтроки("Не задан параметр Код");

Ответ.Заголовки.Вставить("Content-type", "application/json");

Возврат Ответ;

КонецЕсли;

 

// Найти сотрудника в справочнике по полученному параметру Код.

СотрудникСсылка = Справочники.Сотрудники.НайтиПоКоду(Код);

Если СотрудникСсылка = Справочники.Сотрудники.ПустаяСсылка() Тогда

Ответ = Новый HTTPСервисОтвет(404);

Ответ.УстановитьТелоИзСтроки("Сотрудник не найден");

Ответ.Заголовки.Вставить("Content-type", "application/json");

Возврат Ответ;

КонецЕсли;

 

// Установить найденному сотруднику пометку удаления.

Сотрудник = СотрудникСсылка.ПолучитьОбъект();

Сотрудник.УстановитьПометкуУдаления(Истина);

Сотрудник.Записать();

 

Возврат Ответ;

 

КонецФункции

Поиск сотрудника по значению параметра URL запроса аналогичен поиску в обработчике СотрудникGET() из предыдущего примера (см. листинг 1.63). Затем от ссылки на найденного сотрудника мы получаем объект и устанавливаем ему пометку удаления.

И в заключение возвращаем ответ HTTP-сервиса с кодом состояния 204, который также свидетельствует об успешном выполнении операции на сервере, но сообщает клиенту, что сервер не посылал в ответ никаких данных в теле запроса.

Испытать наш запрос в браузере не получится, так как из браузера отправляются только запросы на чтение (методом GET) данных из информационной базы. Чтобы посмотреть результат работы HTTP-сервиса по удалению данных о конкретном сотруднике в прикладном решении, надо обратиться к нему с помощью собственного HTTP-запроса и выполнить на сервере метод DELETE. Этот пример будет рассмотрен в следующем разделе «».

Назад: Получить данные о конкретном сотруднике
Дальше: Информация о ценах на товары