Во встроенном языке мы реализовали объектную модель для работы с системой взаимодействия. Она, в общем, проста и понятна.
С помощью свойства глобального контекста СистемаВзаимодействия вы получаете МенеджерСистемыВзаимодействия, и дальше действуете в зависимости от того, что вам нужно.
Основным направлением использования этой объектной модели мы считаем тесную интеграцию системы взаимодействия с бизнес-процессами предприятия. Например, генерацию сообщений в зависимости от каких-то событий, которые происходят с данными в информационной базе.
Если говорить более подробно, то вы можете зарегистрировать информационную базу в сервере взаимодействия, или отменить регистрацию. Можете создать обсуждение и сообщение. Можете получить существующие обсуждения по некоторому отбору. Можете получить оповещения, адресованные текущему пользователю и так далее. В этом нет ничего сложного.
Зато в объектной модели есть одна интересная особенность, о которой хочется рассказать подробнее. Теперь, помимо учётной записи пользователя в информационной базе, появляется ещё одна его учётная запись в системе взаимодействия.
Учётная запись в информационной базе представляется объектом встроенного языка ПользовательИнформационнойБазы. А учётная запись в системе взаимодействия представляется объектом встроенного языка ПользовательСистемыВзаимодействия. И тот и другой объекты указывают на одного и того же пользователя (человека). Более того, эти объекты всегда однозначно связаны друг с другом и, зная один из них, вы всегда можете получить другой.
Поэтому теперь, когда вам нужен какой-то пользователь из имеющихся, или текущий пользователь, вы получаете его в одном или другом механизме, в зависимости от своей задачи.
Например, учётную запись текущего пользователя (человека) в информационной базе вы можете получить так:
ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); А учётную запись того же самого пользователя (человека) в системе взаимодействия, так:
IDТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); ТекущийПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDТекущегоПользователя); Зная учётную запись пользователя (человека) в информационной базе, вы можете получить соответствующую ей учётную запись этого пользователя (человека) в системе взаимодействия:
IDПользователяСВ = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ТекущийПользовательИБ.УникальныйИдентификатор); ПользовательСВ = СистемаВзаимодействия.ПолучитьПользователя(IDПользователяСВ);
И наоборот:
IDПользователяСВ = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); IDПользователяИБ = СистемаВзаимодействия.ПолучитьИдентификаторПользователяИнформационнойБазы(IDПользователяСВ); ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(IDПользователяИБ);
Физически это выглядит следующим образом.
Когда пользователь (человек) аутентифицируется (вводит логин/пароль, или другими способами) в 1С:Предприятии, он сопоставляет себя с некоторой учётной записью, имеющейся в информационной базе. Дальше запускается сеанс. Если это первый запуск сеанса этого пользователя после того, как информационная база была зарегистрирована в сервере взаимодействия, то платформа автоматически создаёт для этого пользователя информационной базы учётную запись в сервере взаимодействия. Таким образом получается, что эти записи жёстко связаны друг с другом и указывают на одного и того же пользователя (человека).
Система взаимодействия реализована в клиент-серверной архитектуре. Она состоит из двух частей. Клиентская часть реализована в 1С:Предприятии. Серверная часть представляет собой отдельный программный продукт 1С:Предприятие — Сервер взаимодействия, который может быть развернут в Интернете, или в локальной сети организации.
Использовать систему взаимодействия могут пользователи информационных баз 1С:Предприятия. Для этого информационная база должна быть зарегистрирована в сервере взаимодействия. Авторизацию осуществляет сервер 1С:Предпрития. Всё остальное платформа выполняет автоматически.
На момент написания этой статьи сервер взаимодействия не поставляется в виде отдельного продукта. Но для того, чтобы вы могли пользоваться новым механизмом, в Интернете, на аппаратных мощностях фирмы «1С», мы развернули экземпляр этого сервера, носящий название 1С:Диалог. В данный момент это публичный сервер, которым могут пользоваться все желающие. Мы планируем поддерживать его и в дальнейшем, но условия использования могут быть изменены.
Связь между клиентскими приложениями и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол может использовать как открытую, так и защищённую передачу данных, поэтому взаимодействие, как через Интернет, так и в локальной сети, является достаточно безопасным.