Функция ПолучитьКатегории(Запрос)
Попытка
Ответ = Новый HTTPСервисОтвет(); // Статус код для успешного ответа Ответ.Заголовки.Вставить("", ""); // Заголовок для JSON
МассивКатегорий = Новый Массив;
ЗапросКатегорий = Новый Запрос;
ЗапросКатегорий.Текст =
"ВЫБРАТЬ
| Категории.Ссылка,
| Категории.Код,
| Категории.Наименование
|ИЗ
| Справочник.Категории КАК Категории
|ГДЕ
| // Условие для исключения групп | И НЕ Категории.ПометкаУдаления";
РезультатЗапроса = ЗапросКатегорий.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Категория = Новый Структура;
Категория.Вставить("id", Строка(Выборка.Ссылка.УникальныйИдентификатор()));
Категория.Вставить("", ); // Поле code Категория.Вставить("", ); // Поле name
МассивКатегорий.Добавить(Категория);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, МассивКатегорий);
Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
Возврат Ответ;
Исключение
Ответ = Новый HTTPСервисОтвет(); // Код внутренней ошибки Ответ.Заголовки.Вставить("Content-Type", "application/json");
СтруктураОшибки = Новый Структура;
СтруктураОшибки.Вставить("error", "Внутренняя ошибка сервера");
СтруктураОшибки.Вставить("message", ОписаниеОшибки());
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СтруктураОшибки);
Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
Возврат Ответ;
КонецПопытки;
КонецФункции