Универсальное расширение которое предоставляет доступ к конфигурации через запросы. Позволяет выполнять любой код в конфигурации и получать данные запросов 1с. Код и запросы 1с либо вводятся прямо в базе, либо передаются в запросе http. Для того чтобы включить возможность выполнять любой код извне необходимо включить настройку в расширении.
Добавить расширение в конфигурацию
Добавляете расширение в конфигурацию с помощью пункта меню Расширения.
Опубликовать конфигурацию на веб сервере
Для того чтобы опубликовать сервис, необходимо установить галку "Публиковать HTTP сервисы расширений по умолчанию"
Рис. 1. Публикация сервиса
Заполнить настройки
Для этого зайти в соответствующий справочник и нажать кнопку заполнить. Если желаете чтобы текст запросов 1с и кода мог быть передан извне (дырка в безопасности), то установите константу "Разрешить выполнять произвольный код" в Да. Сделано через справочник чтобы уменьшить требования к релизу платформы.
Добавить алгоритмы и запросы 1с
Для этого зайти в справочник Алгоритмы и добавить нужные алгоритмы и запросы 1с.
Протестировать что все получилось
Для этого можно воспользоваться обработкой Тестирование HTTP сервиса
API расширения
После публикации расширения по пути к примеру http://localhost/test
Вызывать сервис нужно под пользователем с ролью расширения: ТсОсновная
Информация о базе:
http://localhost/test/hs/TsExchange/Info
Возвращает информацию о базе
Выполнение запроса 1с
http://localhost/test/hs/TsExchange/RunQuery
Возвращаемое значение: массив структур строк в формате JSON. Обратите внимание что в запросе нельзя в качестве полей указывать ссылочные.
Выполнение кода 1с
http://localhost/test/hs/TsExchange/RunCode
Возвращаемое значение: Значение переменной "ЗначениеВозврата". Если данная переменная не изменяется в теле кода, то будет возвращено Неопределено.
Для просмотра возвращаемых значений можно использовать обработку: Редактирование и просмотр JSON
Тело методов RunCode и RunQuery
Используется JSON.
2 варианта вызова:
1. Используя справочник Алгоритмы
В теле запроса тогда передается имя алгоритма
{
"Имя": "ЗначениеПоляИмяСправочникаАлгоритмы"
}
2. Передавая непосредственно код запроса 1с или код 1с в функцию (для вызова таким способом необходимо явно установить настройку Разрешить выполнять произвольный код)
{
"Текст": "исходный текст запроса или исходный код"
}
к примеру вызов произвольного кода:
Путь:
http://localhost/test/hs/TsExchange/RunCode
Тело:
{
"Текст": "ЗначениеВозврата=Метаданные.Представление()"
}
Тестировалось на версии 8.3.11.