Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:29

Список информационных баз

Автор lekaon, 27 июн 2014, 12:01

0 Пользователей и 1 гость просматривают эту тему.

lekaon

Добрый день.
Подскажите как реализовать, чтобы он подхватывал список информационных баз через "Интернет-сервис". Как реализовать этот "интернет-сервис".

1c-brigita


lekaon

платформа 8.2
базы на PostrgeSQL

1c-brigita

Выдержка с ИТС:

Получение через Web-сервис

Для получения списка общих информационных баз через Web-сервис необходимо опубликовать специальный Web-сервис, который будет возвращать этот список. Рассмотрим работу этого Web-сервиса более подробно.

Описание функционирования

Интерактивная программа запуска (1cv8s) может получить список общих баз, как из локальной сети, так и через Интернет. Получение списка баз через Интернет выполняется только в случае интерактивного запуска и если указан адрес для получения списка общих информационных баз (параметр InternetService или WebCommonInfoBases файла 1cestart.cfg).

Для нормального функционирования, механизм получения списка общих информационных баз должен удовлетворять следующим требованиям:

● Вызов метода WebCommonInfoBases.CheckInfoBases() должен быть анонимным;

● Вызов метода WebCommonInfoBases.GetInfoBases() должен выполнять с аутентификацией;

● Информационная база, которая возвращает списки общих баз, должна содержать список пользователей, которые могут обращаться к ней за списком баз.

Первым шагом осуществляется вызов метода WebCommonInfoBases.CheckInfoBases() (анонимно). Если для этого компьютера и для этого пользователя интерактивная программа запуска вызывается впервые, то в качестве параметров ClientID и InfoBaseCheckCode передается значение 00000000-0000-0000-0000-000000000000. Если вызов не первый, то в качестве параметров передаются код клиента и код, идентифицирующий текущий список общих информационных баз. Метод Web-сервиса должен определить, нужно обновлять список общих информационных баз для данного клиента или нет. Если такая необходимость есть – то выходной параметр InfoBasesChanged должен получить значение Истина, а параметр URL должен содержать адрес Web-сервиса, в котором реализован метод WebCommonInfoBases.GetInfoBases() (требует аутентификации). В противном случае параметр InfoBasesChanged должен получить значение Ложь, а параметр URL должен содержать пустую строку.

Алгоритм, используемый для проверки неизменности списка общих информационных баз, не регламентируется и может быть произвольным. Необходимо понимать, что интерактивная программа запуска не занимается расчетом значения кода, идентифицирующего список общих информационных баз, а просто хранит значение, которое было передано при предыдущем вызове Web-сервиса.

Если вызов метода WebCommonInfoBases.CheckInfoBases() указал на необходимость обновления списка, интерактивная программа запуска вызывает метод Web-сервиса WebCommonInfoBases.GetInfoBases(). Web-сервис расположен по адресу, который вернула функция WebCommonInfoBases.CheckInfoBases() в параметре URL. Метод GetInfoBases() должен сопоставить пользователя, от имени которого выполнена аутентификация Web-сервиса с каким-либо кодом клиента. Сопоставление может быть «персональным» – пользователь идентифицирует себя своим персональным именем пользователя и паролем и получает свой, персональный список общих информационных баз. Также сопоставление может быть «ролевым» – пользователь идентифицирует свою принадлежность к некоторой роли, например Оператор, Кладовщик и т. д., и получает список общих информационных баз, который общий для всех пользователей, выполняющих одну роль. При этом необходимо понимать, что в первом случае информационная база, реализующая метод GetInfoBases(), должна содержать список всех пользователей, которые могут запускать интерактивную программу запуска (1cv8s), подключенную в Web-сервису. Во втором случае в списке пользователей достаточно завести имена ролей.

Метод GetInfoBases() должен вернуть три значения:

● Код клиента (если он не задан);

● Список общих информационных баз в формате v8i (см. здесь);

● Значение кода, идентифицирующий переданный список общих информационных баз. Это значение будет передано в метод WebCommonInfoBases.CheckInfoBases() при следующей проверке необходимости обновления списка общих информационных баз.

Если список общих информационных баз получается впервые, то код клиента (параметр ClientID) будет равно значению 00000000-0000-0000-0000-000000000000.

Также следует понимать следующие особенности:

● Информационная база, в которой реализуется Web-сервис WebCommonInfoBases, должна публиковаться в две разные публикации – это вытекает из необходимости обеспечить разный уровень аутентификации для вызова метода CheckInfoBases() и GetIndoBases().

● Организация анонимного доступа выполняется с помощью явного указания пользователя, от имени которого выполняется доступ, в файл default.vrd.

● Пользователь, от имени которого организуется анонимный доступ, не должен иметь возможность вызывать метод получения списка информационных баз, а только указывать, изменился список для переданного значения ClientID или нет.

● Ни одна публикация, обслуживающая Web-сервис WebCommonInfoBases, не должна предоставлять возможность работать с помощью веб-клиента.

lekaon

можно ли подтянуть список баз по http- протоколу?

1c-brigita

Цитата: lekaon от 27 июн 2014, 13:29
можно ли подтянуть список баз по http- протоколу?
Интерактивная программа запуска (1cv8s) может получить список общих баз, как из локальной сети, так и через Интернет. Получение списка баз через Интернет выполняется только в случае интерактивного запуска и если указан адрес для получения списка общих информационных баз (параметр InternetService или WebCommonInfoBases файла 1cestart.cfg).

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск