Работа с системой взаимодействия из программного кода

Программная работа с системой взаимодействия

Во встроенном языке мы реализовали объектную модель для работы с системой взаимодействия. Она, в общем, проста и понятна.

С помощью свойства глобального контекста СистемаВзаимодействия вы получаете МенеджерСистемыВзаимодействия, и дальше действуете в зависимости от того, что вам нужно.

МенеджерСистемыВзаимодействия платформы 1С

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

Если говорить более подробно, то вы можете зарегистрировать информационную базу в сервере взаимодействия, или отменить регистрацию. Можете создать обсуждение и сообщение. Можете получить существующие обсуждения по некоторому отбору. Можете получить оповещения, адресованные текущему пользователю и так далее. В этом нет ничего сложного.

Зато в объектной модели есть одна интересная особенность, о которой хочется рассказать подробнее. Теперь, помимо учётной записи пользователя в информационной базе, появляется ещё одна его учётная запись в системе взаимодействия.

Учётная запись в информационной базе представляется объектом встроенного языка ПользовательИнформационнойБазы. А учётная запись в системе взаимодействия представляется объектом встроенного языка ПользовательСистемыВзаимодействия. И тот и другой объекты указывают на одного и того же пользователя (человека). Более того, эти объекты всегда однозначно связаны друг с другом и, зная один из них, вы всегда можете получить другой.

Поэтому теперь, когда вам нужен какой-то пользователь из имеющихся, или текущий пользователь, вы получаете его в одном или другом механизме, в зависимости от своей задачи.

Например, учётную запись текущего пользователя (человека) в информационной базе вы можете получить так:

ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();

А учётную запись того же самого пользователя (человека) в системе взаимодействия, так: 
IDТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
ТекущийПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDТекущегоПользователя);

Зная учётную запись пользователя (человека) в информационной базе, вы  можете получить соответствующую ей учётную запись этого пользователя  (человека) в системе взаимодействия: 
IDПользователяСВ = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ТекущийПользовательИБ.УникальныйИдентификатор);
ПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDПользователяСВ);

И наоборот:

IDПользователяСВ = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
IDПользователяИБ = СистемаВзаимодействия.ПолучитьИдентификаторПользователяИнформационнойБазы(IDПользователяСВ);
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(IDПользователяИБ);

Физически это выглядит следующим образом.

Работа системы взаимодействия из программного кода

Когда пользователь (человек) аутентифицируется (вводит логин/пароль, или другими способами) в 1С:Предприятии, он сопоставляет себя с некоторой учётной записью, имеющейся в информационной базе. Дальше запускается сеанс. Если это первый запуск сеанса этого пользователя после того, как информационная база была зарегистрирована в сервере взаимодействия, то платформа автоматически создаёт для этого пользователя информационной базы учётную запись в сервере взаимодействия. Таким образом получается, что эти записи жёстко связаны друг с другом и указывают на одного и того же пользователя (человека).

Архитектура системы

Система взаимодействия реализована в клиент-серверной архитектуре. Она состоит из двух частей. Клиентская часть реализована в 1С:Предприятии. Серверная часть представляет собой отдельный программный продукт 1С:Предприятие — Сервер взаимодействия, который может быть развернут в Интернете, или в локальной сети организации.

Архитектура системы взаимодействия

Использовать систему взаимодействия могут пользователи информационных баз 1С:Предприятия. Для этого информационная база должна быть зарегистрирована в сервере взаимодействия. Авторизацию осуществляет сервер 1С:Предпрития. Всё остальное платформа выполняет автоматически.

На момент написания этой статьи сервер взаимодействия не поставляется в виде отдельного продукта. Но для того, чтобы вы могли пользоваться новым механизмом, в Интернете, на аппаратных мощностях фирмы «1С», мы развернули экземпляр этого сервера, носящий название 1С:Диалог. В данный момент это публичный сервер, которым могут пользоваться все желающие. Мы планируем поддерживать его и в дальнейшем, но условия использования могут быть изменены.

Связь между клиентскими приложениями и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол может использовать как открытую, так и защищённую передачу данных, поэтому взаимодействие, как через Интернет, так и в локальной сети, является достаточно безопасным.

Другие статьи раздела «Вопросы и ответы»