База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно скрыть гиперссылки в документах 1С для определённых пользователей › Ответ в теме: Как программно скрыть гиперссылки в документах 1С для определённых пользователей
В 1С стандартными средствами платформы нет прямой настройки прав, которая бы позволяла скрывать или показывать гиперссылки в документах. Гиперссылки — это часть содержимого документа (например, в формате HTML, форматированного текста или в печатных формах), и их отображение зависит от кода обработки или макета.
Чтобы скрыть гиперссылки для определённых пользователей или ролей, нужно реализовать это программно, например:
1. **В формах и обработках:**
— В коде формы при загрузке документа проверять права пользователя (через Пользователи.ТекущийПользователь() или роли).
— Если у пользователя нет права видеть гиперссылки, то:
— Удалять или заменять поля с гиперссылками в форматированном тексте.
— Или не выводить элементы управления, содержащие ссылки.
— Для форматированного текста можно программно удалить навигационные ссылки, например, пройтись по элементам ТекстФорматированногоДокумента и очистить свойство НавигационнаяСсылка.
2. **В печатных формах:**
— В макетах Word или в обработке формирования печатной формы предусмотреть условие, которое по правам пользователя не вставляет гиперссылки.
— Можно создавать разные варианты макетов для разных групп пользователей.
3. **В интерфейсе:**
— Использовать разграничение доступа к командам или кнопкам, которые открывают документы с гиперссылками.
— Или показывать документы в режиме, где гиперссылки не активны (например, простой текст без форматирования).
4. **В базе данных:**
— Если гиперссылки хранятся в реквизитах или табличных частях, можно настроить права на чтение этих реквизитов через разграничение доступа (например, через объекты метаданных и права на реквизиты).
Пример удаления навигационных ссылок из форматированного текста в форме:
|
1 2 3 4 5 6 7 |
Процедура УбратьГиперссылки(ФорматированныйТекст) Для каждого Элемент Из ФорматированныйТекст.Элементы Цикл Если ТипЗнч(Элемент) = Тип("ТекстФорматированногоДокумента") Тогда Элемент.НавигационнаяСсылка = ""; КонецЕсли; КонецЦикла; КонецПроцедуры |
Вызывать эту процедуру при загрузке документа, если у пользователя нет права видеть ссылки.
—
Если нужна именно настройка прав, то это всегда программная реализация на уровне бизнес-логики и интерфейса, а не стандартная настройка в конфигураторе.
https://infostart.ru/articles/1608005/ — навигационные ссылки с параметрами и работа с ними
Если нужна помощь с конкретным кодом — могу помочь написать.