Как организовать авторизацию пользователей и управление правами в мобильной платформе 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Архитектурное ограничение автономной мобильной платформы

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

Кроме того, в мобильной платформе отсутствует встроенный диалог аутентификации 1С при запуске. Единственный пользователь ПользователиИнформационнойБазы назначается текущим пользователем сеанса автоматически, а штатный метод проверки прав РольДоступна() в мобильной платформе недоступен.

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

Способ 1. Организация прикладной авторизации и параметров сеанса

Поскольку средства платформенной авторизации ограничены одним системным пользователем, разберем по шагам построение собственной системы входа:

  1. Создание прикладного справочника пользователей: Разработаем справочник (например, Справочник.Пользователи) и регистр сведений для хранения паролей или PIN-кодов.
  2. Форма аутентификации при старте: Настроим запуск специальной формы авторизации при открытии приложения. До успешного ввода пароля или PIN-кода доступ к остальным интерфейсам системы блокируется.
  3. Фиксация контекста пользователя: После успешной проверки введенных данных установим текущего пользователя в ПараметрыСеанса.

Рассмотрим пример кода для обработки ввода PIN-кода и установки параметра сеанса:


&НаСервере
Функция ПроверитьПИНКодИАвторизовать(Знач Логин, Знач ВведенныйПИН)
    
    НайденныйПользователь = Справочники.Пользователи.НайтиПоНаименованию(Логин);
    
    Если Не ЗначениеЗаполнено(НайденныйПользователь) Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Если НайденныйПользователь.ПИНКод = ВведенныйПИН Тогда
        ПараметрыСеанса.ТекущийПользователь = НайденныйПользователь;
        Возврат Истина;
    Иначе
        Возврат Ложь;
    КонецЕсли;
    
КонецФункции

Способ 2. Управление командным интерфейсом через функциональные опции

Так как назначить разные роли системным пользователям невозможно, для управления видимостью разделов командного интерфейса и элементов форм используются ФункциональныеОпции в связке с параметрами сеанса.

Выясним, как настроить управление интерфейсом:

  1. Создадим параметр сеанса ТекущийПользователь или ТекущиеПраваПользователя.
  2. В конфигурации добавим ФункциональныеОпции, привязанные к параметрам функциональных опций.
  3. При авторизации пользователя рассчитываем его доступные права и обновляем ПараметрыФункциональныхОпций.

Посмотрим на пример установки параметров функциональных опций при успешном входе пользователя:


УстановитьПараметрыФункциональныхОпций(Новый Структура("ТекущийПользователь", ПараметрыСеанса.ТекущийПользователь));
ОбновитьИнтерфейс();

Этот подход позволяет гибко скрывать или отображать подсистемы, документы и справочники для конкретного авторизованного сотрудника без перезапуска мобильного приложения.

Способ 3. Переход на Мобильный клиент 1С

Если для бизнес-логики принципиально использовать штатные роли, механизмы RLS и стандартную авторизацию 1С:Предприятия, проанализируем использование технологии Мобильный клиент (доступна начиная с версии 8.3.12).

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

Таким образом, для автономной работы на мобильном устройстве рекомендуется использовать схему «Единственный пользователь ИБ + прикладная авторизация + функциональные опции», а при наличии постоянного подключения к серверу — Мобильный клиент.

← На главную