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