Требования:
-
Платформа 1С:Предприятие 8.3 ;
-
Любая конфигурация, 1c:Spa-Салон.
-
Наличие веб-сервера (IIS, Apache) для публикации базы.
Шаг 1. Публикация базы на веб-сервере
-
В 1С запустите «Публикация на веб-сервере» (меню «Администрирование» → «Публикация на веб-сервере»);
-
Укажите имя публикации (например,
bonus_api); -
Установите флаги: «Публиковать HTTP-сервисы» и «Публиковать Web-сервисы»;
-
Нажмите «Опубликовать».
Шаг 2. Ручная правка файла default.vrd
После публикации необходимо вручную добавить описание HTTP-сервиса из расширения в файл default.vrd, который находится в каталоге публикации на веб-сервере.
Пример структуры тега <httpServices>:
xml
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://v8.1c.ru/8.2/virtual-resource-system http://v8.1c.ru/8.2/virtual-resource-system">
<httpServices>
<!-- Добавить ваш сервис из расширения -->
<service name="MAX"
rootUrl="client"
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5">
</service>
</httpServices>
<!-- Остальные теги (ws, odata и т.д.) -->
</point>
Где взять параметры:
-
name="MAX"— имя модуля HTTP-сервиса в вашем расширении; -
rootUrl="client"— произвольное имя корневого URL (будет частью адреса).
Шаг 3. Перезапуск веб-сервера
После редактирования default.vrd обязательно перезапустите веб-сервер:
-
IIS:
iisreset(или перезапустить через оснастку); -
Apache:
sudo systemctl restart apache2илиhttpd; -
Nginx:
sudo systemctl restart nginx.
Шаг 4. Настройка прав пользователя в 1С
Для выполнения запросов необходимо создать пользователя в 1С с соответствующими правами:
-
Перейдите в раздел «Администрирование» → «Настройка пользователей и прав»;
-
Создайте нового пользователя (например,
api_user); -
Установите аутентификацию «Аутентификация 1С:Предприятия»;
-
Выдайте роли:
-
Базовые права(илиПользователь); -
Роль, дающую доступ к вашему расширению (если такая есть);
-
Права на чтение регистра «БонусныеСчета» и справочника «Контрагенты».
-
Пример запроса с авторизацией (Basic Auth):
bash
curl -u api_user:password "http://localhost/bonus_api/hs/client/balance?phone=+7919999999
Пример ответа при успехе:
json
{
"success": true,
"status": 200,
"data": {
"balance": "1250.50",
"message": "Баланс успешно получен"
}
}
Пример ответа при ошибке (клиент не найден):
json
{
"success": false,
"status": 404,
"data": {
"balance": "0",
"message": "Не нашли клиента по номеру телефона. Передано: phone=79991234567"
}
}
Важно: Без этих прав запрос будет возвращать ошибку 403 (Forbidden) или пустой результат.
Шаг 5. Проверка работоспособности
После всех настроек метод будет доступен по адресу:
text
http://ваш_сервер/имя_публикации/hs/Метод1?phone=+7XXXXXXXXXX
Проверено на следующих конфигурациях и релизах:
- CRM КОРП, редакция 1.4, релизы 1.4.11.3
Вступайте в нашу телеграмм-группу Инфостарт