Введение
Привет, программисты 1С! В этом уроке мы разберём, как построить backend‑сервис в 1С, который будет отдавать номенклатуру в формате JSON с пагинацией по 4 позиции. Это первый шаг к созданию полноценного мобильного приложения, которое в дальнейшем будет использовать Vue‑фреймворк и интегрироваться в 1С.
Создание HTTP‑сервиса в 1С
В 1С можно реализовать HTTP‑сервис, используя встроенные объекты HTTPСервис и HTTPЗапрос. Сервис будет обрабатывать запросы к эндпоинту, например, /nomenklatura, и возвращать данные в JSON‑формате.
Возврат номенклатуры в JSON
Для формирования ответа в JSON используйте объект JSON (или JSONПакет в старых версиях). Пример:
Номенклатура = Новый СписокЗначений();
// Заполняем список данными из справочника
Для Каждого Запись Из Справочник.Номенклатура.Выбрать() Цикл
Номенклатура.Добавить(Запись.ПолучитьЗначения());
КонецЦикла;
Ответ = Новый JSON();
Ответ.УстановитьЗначение("items", Номенклатура);
Ответ.УстановитьЗначение("count", Номенклатура.Количество());
HTTPОтвет.УстановитьТело(Ответ.ПолучитьJSON());
HTTPОтвет.УстановитьКодСтатуса(200);
HTTPОтвет.УстановитьТипКонтента("application/json");
Пагинация по 4 позиции
Пагинацию реализуем через параметры page и size в запросе. По умолчанию size = 4. Внутри сервиса вычисляем смещение и берём нужный диапазон записей:
Параметры = HTTPЗапрос.ПолучитьПараметры();
Страница = Параметры.Получить("page", 1);
Размер = Параметры.Получить("size", 4);
Смещение = (Страница - 1) * Размер;
// Получаем только нужный диапазон
Номенклатура = Новый СписокЗначений();
Для Каждого Запись Из Справочник.Номенклатура.Выбрать() Цикл
Если Смещение < 0 Тогда
Смещение = Смещение + 1;
Продолжить;
КонецЕсли;
Если Размер = 0 Тогда
Прервать;
КонецЕсли;
Номенклатура.Добавить(Запись.ПолучитьЗначения());
Размер = Размер - 1;
КонецЦикла;
Следующие шаги
В следующих уроках мы разберём:
- Разработку фронтенда на Vue, который будет запрашивать данные с нашего HTTP‑сервиса.
- Интеграцию Vue‑приложения в мобильное приложение 1С.
- Оптимизацию загрузки данных (lazy‑loading) и работу с большим объёмом номенклатуры.
Исходные коды урока доступны в статье на сайте: Скачать исходники.
Если вам интересна более глубокая интеграция 1С с современными веб‑технологиями, обратите внимание на курс по разработке личного кабинета контрагента на NuxtJS для 1С: Курс NuxtJS для 1С.
Иллюстрация

Готовы приступить к работе? Следуйте шагам, описанным выше, и создайте свой первый HTTP‑сервис в 1С, готовый к использованию в мобильном приложении.