Как сделать доступной обработку «Универсальный обмен данными XML» пользователям без полных прав?

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

В конфигурациях на базе БСП (Библиотеки стандартных подсистем), таких как 1С:Управление торговлей 11.2, часто возникает ситуация, когда встроенная обработка УниверсальныйОбменДаннымиXML (УОД) скрыта от глаз рядовых пользователей. Даже если мы пытаемся найти её через интерфейс «Все функции», она может быть недоступна для бухгалтера или менеджера. Разберем подробно, почему это происходит и какими способами можно предоставить доступ к этому инструменту, не назначая пользователю роль «Полные права».

Анализ причин ограничения доступа

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

  1. Программная проверка в коде: В модуле формы или менеджера обработки часто прописана жесткая проверка на наличие прав. Система может вызывать функцию Пользователи.ЭтоПолноправныйПользователь(). Если текущий пользователь не является администратором, форма просто закроется при открытии без объяснения причин.
  2. Безопасный режим: Обработка универсального обмена позволяет исполнять произвольный код, написанный в правилах обмена (в обработчиках событий). С точки зрения платформы 1С — это потенциальная дыра в безопасности.
  3. Настройки интерфейса (БСП): Видимость объектов в управляемом приложении часто регулируется не только ролями, но и включением в конкретные разделы командного интерфейса или регистрацией в справочнике «Дополнительные отчеты и обработки».

Способ 1: Создание специализированной роли

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

  1. Создадим новую роль, например, ИспользованиеУниверсальногоОбменаДанными.
  2. В дереве метаданных найдем обработку УниверсальныйОбменДаннымиXML и установим для этой роли права «Использование» и «Просмотр».
  3. Поскольку обработка работает с XML-файлами и внешними правилами, нам необходимо предоставить право «Интерактивное открытие внешних обработок» (это может потребоваться для загрузки правил из внешнего файла).
  4. Важный нюанс: Чтобы пользователь мог реально выгружать или загружать данные, у него должны быть права на чтение и просмотр тех объектов, которые участвуют в обмене. Обработка не работает в привилегированном режиме «из коробки», поэтому ограничения RLS (Record Level Security) будут действовать.

Способ 2: Использование стандартного профиля «Синхронизация данных»

В типовой конфигурации УТ 11.2 уже заложены механизмы для работы с обменами. Рассмотрим вариант использования стандартных ролей. Часто доступ к техническим средствам обмена открывается при назначении роли ВыполнениеСинхронизацииДанных.

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

Способ 3: Регистрация как внешней обработки

Если мы не хотим снимать конфигурацию с поддержки или вносить изменения в основные роли, проанализируем вариант с внешним файлом. Рассмотрим этот метод по шагам:

  1. Сохраним встроенную обработку УниверсальныйОбменДаннымиXML как внешний файл (.epf).
  2. Зайдем в раздел «НСИ и администрирование» — «Печатные формы, отчеты и обработки».
  3. Добавим новый элемент в справочник «Дополнительные отчеты и обработки», выбрав наш сохраненный файл.
  4. В карточке регистрации крайне важно указать «Безопасный режим = Ложь». Если оставить безопасный режим включенным, правила обмена, содержащие алгоритмы на встроенном языке, работать не будут.
  5. Настроим список пользователей или разделов интерфейса, где эта обработка будет видна.

Способ 4: Корректировка программной проверки (через расширение)

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
        Сообщить("Недостаточно прав для работы с данной обработкой");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

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

Риски и ограничения

Проанализируем ситуацию с точки зрения безопасности. Предоставление доступа к УниверсальныйОбменДаннымиXML обычному пользователю (даже главному бухгалтеру) — это ответственный шаг. Посмотрим, какие риски это несет:

Совет: Если требуется лишь регулярный перенос данных, лучше настроить штатный узел синхронизации, где правила жестко зафиксированы и пользователь может только нажимать кнопку «Синхронизировать».

← На главную