Интерактивное проведение 1с что это
Права доступа в 1С:Предприятии 8
В 1С:Предприятии различают два типа прав – основные и интерактивные.
Основные (неинтерактивные) – проверяются всегда независимо от способа обращения к объектам информационной базы.
Интерактивные – проверяются при выполнении интерактивных операций (например, операция “Установить пометку удаления”).
Нужно учитывать, что проверку интерактивных прав можно обойти, создав, например, при конфигурировании форму самостоятельно и заменив стандартные команды своими, а проверку неинтерактивных прав нельзя обойти ни при каких обстоятельствах. Неинтерактивными правами защищается характерная для объекта фундаментальная функциональность, за это отвечают, например, такие права, как: “Добавление”, “Чтение”, “Изменение”, “Удаление”.
Система 1С:Предприятие допускает проверку прав из встроенного языка. Например при добавлении команд к формам разработчик должен дополнительно позаботиться о проверке соответствующих интерактивных прав.
Пример проверки прав из языка:
При этом нужно помнить о том, что у будущего пользователя конфигурации соответствующие интерактивные и неинтерактивные права к тому или иному объекту могут различаться. Например, может быть разрешено право на “Удаление” и запрещено право “Интерактивное удаление”.
Проверка прав объектов производится только в режиме “1С:Предприятие”.
При попытке выполнить неразрешенную операцию выдается сообщение об ошибке “Нарушение прав доступа!”, и производится отмена всех начатых транзакций.
Рассмотрим проверку прав расширениями формы, табличного поля и поля ввода на примере документа:
Связанные права
Часть прав в системе 1С:Предприятия связаны друг с другом. Это означает, что основные права доступа, такие как “Чтение”, “Изменение”, “Добавление” и “Удаление” и некоторые другие могут влиять на права, отвечающие за такие операции с объектом, которые, в конечном счете, приведут к простейшим операциям. Например, нельзя разрешить право “Изменение”, не выдав право “Чтение”.
Интерактивные права напрямую зависят от их неинтерактивных аналогов, т.е. право “Интерактивное удаление” зависит от права “Удаление”. На практике при конфигурировании это выглядит так, что при разрешении интерактивных прав аналогичные им неинтерактивные будут автоматически разрешены, и, наоборот, при снятии неинтерактивных прав соответствующие им интерактивные автоматически будут сброшены. Допускается лишь установка неинтерактивного права и сброс интерактивного, но не наоборот. Например, нельзя разрешить интерактивное право “Интерактивное удаление” и запретить неинтерактивное “Удаление”.
Зависимость прав может выстраиваться в сложные цепочки, например, у объекта “Документ” право “Интерактивная отмена проведения” зависит от прав “Отмена проведения” и “Просмотр” одновременно, где первое зависит от “Изменение”, которое, в свою очередь, зависит от права “Чтение” (см. рисунок).
Ключевым является право “Чтение”, при его отсутствии автоматически пропадают любые другие права на доступ к объекту.
Система прав доступа
Система прав доступа позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности. Структура прав определяется конкретным прикладным решением.
Кроме этого, для объектов, хранящихся в базе данных (справочники, документы, регистры и т. д.) могут быть определены права доступа к отдельным полям и записям. Например, пользователь может оперировать документами (накладными, счетами и т. д.) определенных контрагентов и не иметь доступа к аналогичным документам других контрагентов.
Для реализации ограничения прав доступа в прикладных решениях предназначены специальные объекты конфигурации — Роли. Подробнее.
Интерактивные и основные права
Все права, поддерживаемые системой «1С:Предприятие 8», можно разделить на две большие группы: основные и интерактивные. Основные права описывают действия, выполняемые над элементами данных системы или над всей системой в целом, и проверяются всегда, независимо от способа обращения к данным. Интерактивные права описывают действия, которые могут быть выполнены пользователем интерактивно. Соответственно проверяются они только при выполнении интерактивных операций стандартными способами, причем в клиент-серверном варианте все проверки прав (кроме интерактивных) выполняются на сервере.
Основные и интерактивные права взаимосвязаны. Например, существует основное право Удаление, которому соответствуют два интерактивных права: Интерактивное удаление и Интерактивное удаление помеченных. Если пользователю запрещено Удаление, то и все интерактивные «удаления» также будут запрещены для него. В то же время, если пользователю разрешено Интерактивное удаление помеченных, это значит, что Удаление ему также разрешается.
Кроме того, основные права могут зависеть друг от друга. В результате образуются довольно сложные цепочки взаимосвязей, которые отслеживаются системой автоматически: как только разработчик снимает разрешение на какое-либо право, система сама снимает разрешения на все права, которые зависят от этого права. И наоборот, при установке какого-либо права разработчиком, система сама устанавливает все права, от которых это право зависит.
Например, для того, чтобы пользователь имел право Итерактивное удаление помеченных, ему необходимо обладать интерактивными правом Редактирование. Это право, в свою очередь, требует наличия интерактивного права Просмотр.
Право Интерактивное удаление помеченных требует наличия основного права Удаление. Интерактивное право Редактирование требует наличия основного права Изменение. Интерактивное право Просмотр требует наличия основного права Чтение.
Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.
Ограничение доступа к данным на уровне записей и полей
Для этих действий в процессе настройки ролей могут быть заданы дополнительные условия на данные (ограничение доступа к данным). В этом случае над конкретным объектом, хранимым в базе данных, может быть выполнено запрошенное действие только в том случае, если ограничение доступа к данным для данных этого объекта принимает значение «истина». Аналогичные условия могут быть заданы и для таблиц базы данных, не имеющих объектной природы (регистров).
Для объектных таблиц и регистров сведений могут быть заданы разные ограничения для различных полей таблицы, что позволяет определять ограничения не только на уровне записей базы данных, но и на уровне отдельных ее полей:
Для регистров накопления, бухгалтерского учета и расчета условия позволяют разграничить доступ по значениям измерений (для регистров бухгалтерского учета по балансовым измерениям), а для объектных данных и регистров сведений условия позволяют разграничивать доступ к данным по любым полям.
Условия ограничения можно ввести вручную или создать с помощью конструктора ограничений доступа к данным.
Параметры сеанса
Параметры сеанса представляют собой объекты прикладного решения, которые предназначены для использования в ограничениях доступа к данным для текущего сеанса (но могут применяться и для других целей). Их значения сохраняются в течение данного сеанса «1С:Предприятия 8». Использование параметров сеанса позволяет снизить время доступа к данным при ограничении доступа на уровне записей и полей. Подробнее.
Выполнение на сервере без проверки прав
Привилегированные модули
Существует возможность назначения привилегированных модулей. В такие модули могут быть перенесены операции, использующие данные, на которые у текущего пользователя нет прав.
Например, пользователю могут быть назначены права, позволяющие создавать новый документ. Однако никаких прав на регистр, в котором этот документ создает движения при проведении, пользователю не дано. В такой ситуации процедура проведения документа может быть вынесена в привилегированный модуль, который выполняется на сервере без проверки прав. В результате, несмотря на то, что соответствующий регистр для пользователя недоступен, пользователь все же сможет проводить созданные им документы.
Привилегированный режим исполнения программного кода
Привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей, можно включить/выключить средствами встроенного языка. Для этого в глобальном контексте предусмотрена процедура УстановитьПривилегированныйРежим (), а также функция ПривилегированныйРежим (), которая позволяет определить, включен привилегированный режим, или нет.
Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.
Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. Допустимо использовать привилегированный режим тогда, когда работа с данными от лица некоторого пользователя не нарушает установленные для этого пользователя права доступа.
Проведение документов
Рассмотрим подробно свойства документа на вкладке «Движения»
Процедура ОбработкаПроведения
Формирование новых наборов записей регистров включает в себя операции, состоящие:
Следует учитывать, что при автоматической записи движений они будут записаны с замещением, то есть старые движения документа будут замещены новыми. Фактически, платформа неявно выполнит код:
Действие данного параметра проявляется в случае, если на момент записи нового (или модифицированного) набора записей в регистре присутствуют еще записи, подчиненные данному же регистратору.
Подробнее о формировании движений
С точки зрения платформы отдельного процесса «проведение» не существует. Есть запись документа с проведением, причем в рамках одной транзакции. Таким образом, в момент выполнения обработчика события ОбработкаПроведения документ уже записан.
Свойство «Удаление движений» документа как объекта конфигурации стандартно устанавливается платформой в значение «Удалять автоматически при отмене проведения». Это значит, что при перепроведении документа движения, подчиненные данному документу, перезаписываются, а при отмене проведения движения документа автоматически удаляются.
Если разработчик захочет реализовать нестандартный вариант проведения документа и установит свойство «Удаление движений» в значение «Удалять автоматически», то при записи документа с проведением сначала будут удалены все старые движения документа. То есть на момент выполнения обработчика события ОбработкаПроведения в регистрах не будет наборов записей с движениями данного документа.
При записи с проведением система автоматически запишет выбранные и незаписанные наборы записей, находящиеся в свойстве «Движения». Отсюда следуют два важных вывода:
В случаях, если необходимо программно вызвать саму обработку проведения, инициируется запись документа с проведением. Пример программного вызова проведения документа в оперативном режиме:
Пример перепроведения документов РеализацияТоваров в интервале с ДатаНачала по ДатаОкончания :
Оперативное и неоперативное проведение
Оперативное и неоперативное проведение подразумевает, что работа пользователей может происходить в двух принципиально разных по своей сути режимах. Оперативное проведение документов пользователями выполняется в режиме «реального времени», то есть отображает изменения, факты, свершающиеся в настоящее время. Поэтому при этом способе проведения документов следует осуществлять максимум проверок, способных исключить ошибки при вводе данных пользователями.
Например, при оперативном проведении следует выполнять контроль остатков на складе списываемой номенклатуры с тем, чтобы исключить одновременную продажу одного товара несколькими продавцами. При оперативном проведении документа система, прежде всего, проверит положение даты документа относительно текущей даты сеанса. Если дата проводимого документа совпадает с текущей датой сеанса, то система будет проводить такой документ в оперативном режиме, и в обработке проведения об этом можно узнать, чтобы выстроить определенный алгоритм проведения документа.
Если дата проводимого документа меньше текущей даты сеанса, то такой документ система будет проводить в неоперативном режиме. Неоперативное проведение документов подразумевает отражение в базе данных фактов, которые свершились в прошлом или которые точно будут совершены в будущем. Поэтому задача неоперативного проведения документов — просто отразить в информационной базе данные о совершенных операциях.
При неоперативном проведении документов не имеет смысла производить целый ряд проверок, в частности контроль остатков. Подразумевается, что если в процессе неоперативного проведения документов были допущены ошибки (например, списано такое количество номенклатуры, которого не было на складе на дату проведения документа), то анализ полученного состояния базы данных является отдельной задачей, не относящейся к неоперативному проведению.
С оперативным проведением документов связано понятие оперативной отметки времени и понятие момента времени.
Понятие момента времени
Для определения положения документа на оси времени используется реквизит документа «Дата». Дата содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов?
Для обработки подобных ситуаций было введено понятие момент времени. Момент времени представляет собой совокупность даты, времени и ссылки на объект базы данных. Он позволяет однозначно идентифицировать любой объект ссылочного типа базы данных на оси событий, но имеет смысл в основном только для документов. Кроме того, момент времени позволяет идентифицировать и необъектные данные, например, записи регистров, подчиненных регистратору.
Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы. Она может не совпадать с последовательностью создания документов, и она недоступна для изменения пользователем, то есть нельзя каким-либо образом повлиять на последовательность документов внутри одной секунды или вычислить, что один документ создан раньше, а другой — позже.
Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущей даты сеанса и последней созданной оперативной отметки. Если последняя оперативная отметка меньше текущей даты сеанса, в качестве новой оперативной отметки принимается текущая дата сеанса. Если последняя оперативная отметка равна или больше текущей даты сеанса, в качестве новой оперативной отметки принимается значение на одну секунду большее, чем старая оперативная отметка времени.
Таким образом, если у объекта конфигурации Документ установлено свойство оперативного проведения, последовательность действий системы будет следующей:
Заметки из Зазеркалья
Реализовано в версии 8.3.10.2168.
Мы реализовали новый механизм, который назвали Система взаимодействия. Это платформенный механизм, передающий информацию между клиентскими приложениями и серверами 1С:Предприятия.
Система взаимодействия предназначена для автоматизации бизнес-процессов, или для помощи в осуществлении бизнес-процессов предприятия.
Взаимодействия могут быть как интерактивные, так и программные. Например, интерактивным взаимодействием может являться передача информации между пользователями при помощи сообщений, сгруппированных в обсуждения.
Система взаимодействия реализована в статусе бета-версии. Её функциональность, описанная далее, не является окончательной, а будет расширяться и совершенствоваться.
Зачем нужна система взаимодействия?
Система взаимодействия предоставляет несколько разных (по своему прикладному смыслу) видов интерактивного взаимодействия. Во-первых, вы можете создавать тематические обсуждения, посвященные какому-либо вопросу: мероприятиям, связанным с открытием нового магазина, вариантам проведения новогоднего праздника или грядущему совещанию у директора.
Во-вторых, вы можете обсуждать вопросы ведения учёта, связанные с конкретными объектами данных: накладными, товарами, поставщиками и т.д. При этом вся переписка будет отображаться в форме этих данных.
И, в-третьих, при наличии микрофона, вы можете звонить другим пользователям. А если у вас и вашего собеседника подключены веб-камеры, вы сможете ещё и видеть друг друга.
В данном случае у администратора отсутствует веб-камера, поэтому при видеозвонке отображается его аватар.
Архитектура системы
Использовать систему взаимодействия могут пользователи информационных баз 1С:Предприятия. Для этого информационная база должна быть зарегистрирована в сервере взаимодействия. Авторизацию осуществляет сервер 1С:Предпрития. Всё остальное платформа выполняет автоматически.
На момент написания этой статьи сервер взаимодействия не поставляется в виде отдельного продукта. Но для того, чтобы вы могли пользоваться новым механизмом, в Интернете, на аппаратных мощностях фирмы «1С», мы развернули экземпляр этого сервера, носящий название 1С:Диалог. В данный момент это публичный сервер, которым могут пользоваться все желающие. Мы планируем поддерживать его и в дальнейшем, но условия использования могут быть изменены.
Связь между клиентскими приложениями и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол может использовать как открытую, так и защищённую передачу данных, поэтому взаимодействие, как через Интернет, так и в локальной сети, является достаточно безопасным.
Как «включить» систему взаимодействия?
Чтобы в интерфейсе 1С:Предприятия появились элементы системы взаимодействия, нужно зарегистрировать информационную базу в сервере взаимодействия. Это делается в режиме 1С:Предприятие с помощью стандартной функции Управление системой взаимодействия.
Тут вам нужно обратить внимание на то, что эта функция присутствует только в тех информационных базах, в которых созданы пользователи. Пока в информационной базе нет ни одного пользователя, эта стандартная функция будет недоступна.
В текущей реализации эта функция представляет собой простой диалог, с помощью которого вы можете отправить запрос на подключение к сервису 1С:Диалог, получить по почте код регистрации, и ввести его в качестве подтверждения.
Начиная с этого момента каждый пользователь, подключающийся к этой информационной базе, будет видеть элементы системы взаимодействия в своём интерфейсе. Соответственно, чтобы они появились в вашем интерфейсе, или в интерфейсе пользователей, которые уже работали в базе на момент регистрации, вам нужно перезапустить свои клиентские приложения.
Небольшое замечание хочется сделать по поводу адреса электронной почты. Система взаимодействия оперирует понятием абонент. Это физическое лицо или организация, от имени которого выполняется регистрация информационной базы в сервере взаимодействия. Схожее понятие используется и в технологии 1cFresh.
У одного абонента системы взаимодействия может быть зарегистрировано несколько информационных баз. Идентификатором абонента является его адрес электронной почты. При запросе регистрации, если в сервере ещё нет абонента с таким адресом, он создаётся автоматически.
Поэтому вам важно понимать, что адрес электронной почты, который вы указываете при регистрации (интерактивной, или программной), это не «какой-то любой адрес», который можно забыть. Это ключевой идентификатор, который может понадобиться вам для общения со службой поддержки, например.
В каком месте интерфейса находится система взаимодействия?
Интерфейсная часть системы взаимодействия реализована в интерфейсе Такси в тонком клиенте, веб-клиенте и в управляемом режиме работы толстого клиента. Для пользователей система взаимодействия обозначается словом Обсуждения. О том, что в информационной базе доступны обсуждения, вы можете узнать по нескольким признакам.
Во-первых, в центре оповещений появляется команда Обсуждения.
Во-вторых, в панели открытых появляется стандартная закладка Обсуждения.
В-третьих, в заголовке формы объекта, рядом с кнопкой закрытия, появляется команда Обсуждение.
Здесь вам нужно обратить внимание на то, что последняя команда появляется только в тех формах, которые не блокируют окно владельца или весь интерфейс. Как правило, это «содержательные» формы, в которых находится большое количество информации, они обладают собственным прикладным контекстом, в них «есть что обсудить».
В отличие от них формы, блокирующие окно владельца, используются в основном для отображения и редактирования второстепенных данных, не имеющих самостоятельного прикладного значения. Поэтому в таких формах механизм обсуждений не предусмотрен. Например, в форме склада.
Как видите, все инструменты для работы пользователя с сообщениями уже встроены в платформу и появляются автоматически. От вас, как от разработчиков, не требуется никаких действий для того, чтобы пользователи начали обмениваться сообщениями.
Единственное, что могут захотеть пользователи, это указать свои реквизиты в системе взаимодействия: номер телефона и адрес электронной почты. Для этого нужно кликнуть мышью на имени пользователя в заголовке главного окна.
Здесь же, кликнув мышью на стандартном аватаре, они могут заменить его своей фотографией. Но это необязательные действия. Обсуждения будут работать и без этого.
Типичные сценарии использования
Как мы уже рассказывали в самом начале статьи, есть несколько разных видов общения. Теперь мы остановимся на каждом из них подробнее.
Неконтекстное обсуждение
Любой пользователь информационной базы может создать несколько неконтекстных обсуждений. Каждое такое обсуждение является приватным. Это значит, что читать переписку и отправлять сообщения могут только участники данного обсуждения. Остальным пользователям информационной базы данное обсуждение недоступно.
Все неконтекстные обсуждения, в которых участвует пользователь, находятся в основной форме системы взаимодействия. Открыть эту форму можно либо кликнув на закладке Обсуждения в панели открытых, либо по команде Обсуждения из центра оповещений.
По команде +Новое создаётся новое обсуждение. Например, администратор может создать обсуждение, чтобы напомнить пользователям о грядущем совещании, и узнать их планы по участию в этом совещании.
Желательно (но не обязательно) указать тему обсуждения, и обязательно нужно выбрать участников. Подбор участников выполняется с помощью поиска, поэтому достаточно ввести фрагмент имени пользователя, а затем выбрать мышью подходящего. Когда все участники обсуждения указаны, нужно нажать кнопку Создать обсуждение.
Теперь можно вести переписку в этом обсуждении. Вы можете написать сообщение, и отправить его нажатием Enter. Также для отправки сообщения можно использовать кнопку Отправить в нижнем правом углу формы.
В результате каждый участник обсуждения получит оповещение. Оно, как и оповещения пользователя, будет отображено в правом нижнем углу экрана, а кроме этого оно попадёт в центр оповещений.
Если пользователь (в данном случае менеджер по продажам) находится за компьютером и готов принять участие в обсуждении, он может кликнуть по оповещению, и в основной форме системы взаимодействия написать своё сообщение.
В результате администратор, инициировавший это обсуждение, через некоторое время (по мере ответа пользователей) увидит такую переписку:
Аналогичным образом переписка будет выглядеть и у других участников этого обсуждения. Разница будет только в том, какие сообщения выделены цветом. Потому что цветом выделяются собственные сообщения пользователя.
Кликнув на имени пользователя у любого сообщения, можно увидеть реквизиты пользователя и его увеличенный аватар. Зелёная точка означает, что в данный момент пользователь подключён к информационной базе.
Контекстное обсуждение
Контекстные обсуждения, в отличие от рассмотренных выше, являются публичными. На них накладываются ограничения, соответствующие правам доступа на объект данных. То есть все пользователи информационной базы, которым система прав разрешает доступ к данному объекту данных, могут полноценно участвовать в его обсуждении.
Для каждого объекта данных предусмотрено единственное обсуждение. Поэтому ничего создавать не надо, достаточно просто открыть панель обсуждения в форме нужного объекта.
В ней можно написать сообщение, и отправить его клавишей Enter.
Это сообщение сможет прочитать любой пользователь, которому доступен товар Валенки. Но, во-первых, как «любой пользователь» узнает, что тут кто-то что-то написал? А во-вторых, менеджер по закупкам, очевидно, хочет обсудить валенки с конкретным пользователем, с продавцом. Поэтому, прежде чем отправить сообщение, он в поле Кому выбирает того пользователя, которого хочет оповестить о своём сообщении.
Дальше всё происходит так же, как и в предыдущем примере. Продавец получит оповещение. Если он рядом с компьютером, он отреагирует на него. Если же он в данный момент отсутствует, то оповещение исчезнет с экрана. Но, вернувшись к компьютеру, продавец увидит, что в центре оповещений есть новая информация.
По клику на оповещение платформа откроет ему форму того объекта, к которому относится данное оповещение.
Продавец нажмёт кнопку Ответить, напишет ответ, и отправит его. В результате менеджер по закупкам увидит такую переписку:
Отвечая в контекстном обсуждении в поле Кому можно подобрать нескольких пользователей, которых нужно оповестить о своём сообщении.
Как правило, обсуждение происходит в постоянном кругу участников. Поэтому, чтобы не подбирать каждый раз пользователей вручную, можно нажимать на кнопки Ответить и Ответить всем. В этом случае платформа будет автоматически подставлять в поле Кому пользователей из выбранного сообщения.
Как мы уже говорили, на контекстные обсуждения накладываются ограничения, соответствующие правам доступа на объект данных. Читать и писать могут все, кому системой прав разрешён доступ к этому объекту.
А раз так, то один из возможных сценариев работы заключается в том, что пользователь не принимает активного участия в обсуждении, но должен быть в курсе того, «что происходит с объектом». Как ему быть в этом случае? Постоянно открывать форму объекта и смотреть, не появилось ли там что-то новое и важное?
Специально для такого случая мы предусмотрели режим наблюдения. Этот режим включается кликом на колокольчик в заголовке обсуждения.
В режиме наблюдения пользователь автоматически будет получать оповещения о каждом новом сообщении в этом обсуждении. Даже в том случае, если он не указан среди тех, кого автор сообщения хотел оповестить.
Также нужно заметить, что отвечая в контекстном обсуждении, можно ничего не указывать в поле Кому. В этом случае сообщение появится в обсуждении, но никто из пользователей (кроме тех, кто наблюдает за этим обсуждением) не будет извещён об этом. Этот способ можно использовать в тех случаях, когда в прикладном решении уже существует собственная система оповещения, например, по электронной почте. Тогда пользователи, для реагирования на изменения, будут использовать привычную им бизнес-логику, а вот сам текст сообщений (который раньше каким-то образом хранился в информационной базе и отображался в форме) будет теперь храниться и показываться в форме средствами системы взаимодействия.
Видеозвонок
При наличии микрофонов, видеозвонки позволяют общаться голосом «один на один» с любым пользователем информационной базы. А при наличии веб-камер, собеседники могут ещё и видеть друг друга.
Видеозвонок можно выполнить, кликнув на имени пользователя в любом обсуждении и выбрав видеозвонок. В этом случае платформа сразу же начнёт установку соединения с выбранным пользователем.
Также видеозвонок можно выполнить из любого обсуждения, неконтекстного или контекстного. В этом случае нужно будет выбрать пользователя, которому адресован звонок.
В процессе установки соединения в окне видеозвонка отображается аватар пользователя. А в нижней части окна указывается ссылка на обсуждение. Она добавляется автоматически, каким бы образом звонок ни инициировался. В данном случае указана ссылка на обсуждение совещания у директора.
На стороне собеседника появляется входящий звонок. В нём, кроме вызывающего пользователя, также указана ссылка на обсуждение. Таким образом собеседник, если есть необходимость, (после ответа на звонок) может быстро открыть контекст разговора и познакомиться с ним.
После ответа на входящий звонок происходит общение голосом, при этом в окне звонка показывается изображение с веб-камеры собеседника. В примере ниже, как вы уже знаете, у администратора веб-камера не установлена, поэтому менеджер по закупкам видит только его аватар.
Если вызываемый собеседник отсутствует на рабочем месте и не может принять входящий звонок, то через некоторое время вызов будет автоматически прекращён, и у него появится оповещение о пропущенном звонке.
Если видеозвонок выполняется из обсуждения, то платформа автоматически предлагает выбрать собеседника из тех пользователей, которые в этом обсуждении участвуют. В данном случае это единственный пользователь, продавец. Но это не препятствует тому, чтобы в качестве собеседника вручную выбрать любого другого пользователя информационной базы, например, менеджера по продажам.
В заключение нужно сделать пояснение, касающееся бета-версии системы взаимодействия. В ней по-умолчанию функциональность видеозвонков автоматически не включается после регистрации информационной базы в сервере 1С:Диалог. Это связано с тем, что видеозвонки находятся в той стадии разработки, когда мы ещё не можем предоставлять их всем желающим без ограничений. Если вам необходима функциональность видеозвонков, мы можем включить её для вашей базы (баз) по индивидуальному запросу, но не безусловно, а исходя из имеющихся у нас возможностей и технических ограничений.
Область уведомлений
При работе тонкого клиента в Windows после установки соединения с сервером взаимодействия в области уведомлений Windows (system tray) отображается значок клиентского приложения. При получении нового уведомления картинка значка изменяется.
При двойном нажатии на значок активизируется главное окно клиентского приложения и, если есть уведомления, открывается центр уведомлений.
Неполадки
Поскольку сервер взаимодействия является внешним элементом архитектуры по отношению к информационной базе и клиентским приложениям, не исключена ситуация, когда он оказывается неработоспособным, или связь с ним нарушается. В этом случае элементы интерфейса, связанные с обсуждениями, никуда не исчезают, они остаются. А о том, что связь с сервером взаимодействия потеряна, сигнализирует красный треугольник на закладке Обсуждения в панели открытых.
Программная работа с системой взаимодействия
Во встроенном языке мы реализовали объектную модель для работы с системой взаимодействия. Она, в общем, проста и понятна. С помощью свойства глобального контекста СистемаВзаимодействия вы получаете МенеджерСистемыВзаимодействия, и дальше действуете в зависимости от того, что вам нужно.
Основным направлением использования этой объектной модели мы считаем тесную интеграцию системы взаимодействия с бизнес-процессами предприятия. Например, генерацию сообщений в зависимости от каких-то событий, которые происходят с данными в информационной базе.
Если говорить более подробно, то вы можете зарегистрировать информационную базу в сервере взаимодействия, или отменить регистрацию. Можете создать обсуждение и сообщение. Можете получить существующие обсуждения по некоторому отбору. Можете получить оповещения, адресованные текущему пользователю и так далее. В этом нет ничего сложного.
Зато в объектной модели есть одна интересная особенность, о которой хочется рассказать подробнее. Теперь, помимо учётной записи пользователя в информационной базе, появляется ещё одна его учётная запись в системе взаимодействия.
Учётная запись в информационной базе представляется объектом встроенного языка ПользовательИнформационнойБазы. А учётная запись в системе взаимодействия представляется объектом встроенного языка ПользовательСистемыВзаимодействия. И тот и другой объекты указывают на одного и того же пользователя (человека). Более того, эти объекты всегда однозначно связаны друг с другом и, зная один из них, вы всегда можете получить другой.
Поэтому теперь, когда вам нужен какой-то пользователь из имеющихся, или текущий пользователь, вы получаете его в одном или другом механизме, в зависимости от своей задачи.
Например, учётную запись текущего пользователя (человека) в информационной базе вы можете получить так:
А учётную запись того же самого пользователя (человека) в системе взаимодействия, так:
Зная учётную запись пользователя (человека) в информационной базе, вы можете получить соответствующую ей учётную запись этого пользователя (человека) в системе взаимодействия:
Физически это выглядит следующим образом.
Когда пользователь (человек) аутентифицируется (вводит логин/пароль, или другими способами) в 1С:Предприятии, он сопоставляет себя с некоторой учётной записью, имеющейся в информационной базе. Дальше запускается сеанс. Если это первый запуск сеанса этого пользователя после того, как информационная база была зарегистрирована в сервере взаимодействия, то платформа автоматически создаёт для этого пользователя информационной базы учётную запись в сервере взаимодействия. Таким образом получается, что эти записи жёстко связаны друг с другом и указывают на одного и того же пользователя (человека).
Планы и обратная связь
Как мы уже говорили в начале, бета-версия системы взаимодействия содержит только часть функциональности, которую мы собираемся реализовывать. Наши планы заключаются в том, чтобы предоставить возможность удобной интеграции системы взаимодействия с бизнес-процессами автоматизируемого предприятия, реализовать на её основе новые подходы к автоматизации тех задач учёта, которые обычно сопровождаются взаимодействием пользователей между собой.
При этом, конечно, мы будем уделять внимание реализации функционала, удобного и привычного для пользователей других систем взаимодействия, мессенджеров и пр.
Также нас интересует использование системы взаимодействия в реальной среде, потому что существует множество нюансов, связанных с разными браузерами, прокси-серверами и так далее.
И, конечно же, после выпуска этого функционала мы будем готовы рассматривать и обсуждать ваши замечания и пожелания к этой системе.

































