При настройке прав доступа в типовых конфигурациях, таких как 1С:Бухгалтерия предприятия 3.0, администраторы часто сталкиваются с ситуацией, когда пользователю необходимо ограничить права только просмотром данных, но при этом оставить возможность распечатывать документы или сохранять их в файлы. Стандартная роль ТолькоПросмотр по умолчанию блокирует эти действия. Разберем подробно, почему так происходит и как решить эту задачу без изменения конфигурации.
Для начала проанализируем, как платформа 1С:Предприятие 8 управляет возможностью печати. В системе существует специальное право — Вывод (Output). Это право отвечает за три действия:
В типовой роли ТолькоПросмотр это право намеренно отключено. С точки зрения информационной безопасности, возможность «вынести» данные из системы (распечатать или сохранить в файл) противоречит концепции «только чтение». Поэтому, даже если пользователь видит печатную форму на экране, кнопки печати и пункты меню «Файл — Печать» будут неактивны, если у него нет роли, разрешающей Вывод.
Рассмотрим пошагово, как предоставить пользователю право на печать, не давая при этом прав на изменение документов. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) для этого предусмотрена отдельная атомарная роль.
Шаг 1. Создание или изменение профиля групп доступа.
Нам необходимо зайти в раздел «Администрирование» — «Настройки пользователей и прав» — «Профили групп доступа». Мы можем либо создать новый профиль, либо дополнить существующий профиль пользователя.
Шаг 2. Выбор правильной роли.
Проанализируем список доступных ролей. Часто пользователи ошибочно выбирают роли вроде «Редактирование, отправка по почте, сохранение в файл печатных форм». Однако, как показывает практика, для включения стандартных кнопок печати в меню «Файл» этого может быть недостаточно. Нам нужна роль:
«Вывод на принтер, в файл, в буфер обмена»
Именно эта роль включает право Вывод на уровне всей платформы для всех объектов, к которым у пользователя есть доступ на чтение.
Шаг 3. Проверка результата.
После того как роль добавлена в профиль, а профиль назначен пользователю, обязательно нужно перезапустить сеанс работы пользователя. Права доступа в 1С кэшируются при запуске системы.
Иногда возникают ситуации, когда пользователю нужно не просто отправить форму на принтер, но и предварительно изменить в ней что-то (например, поправить адрес или дописать комментарий прямо в ячейке табличного документа). В этом случае одной роли на Вывод будет недостаточно.
Рассмотрим дополнительные роли:
Если ваша задача — только печать «как есть», используйте только роль на Вывод.
Если вы добавили роль, но печать все равно не работает, проанализируем ситуацию глубже. В некоторых случаях разработчики конфигурации могут программно ограничивать вывод конкретной печатной формы в коде модуля. Это делается с помощью свойств табличного документа:
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Защита = Истина;
Свойство Защита полностью блокирует возможность взаимодействия с документом, если у пользователя нет административных прав. Если вы столкнулись с таким поведением в конкретном документе, то без расширения или изменения кода обойти это не удастся.
Выясним причину, почему иногда стандартных ролей недостаточно. Роль «Вывод на принтер...» дает право сохранять данные в любые форматы (Excel, PDF). Если политика компании разрешает только печать на бумагу, но запрещает сохранение в файл, типовыми средствами это решить невозможно, так как в платформе это одно и то же право Вывод.
В такой ситуации мы можем воспользоваться механизмом расширений. В расширении можно перехватить процедуру печати и программно разрешить вывод только для конкретной формы:
&После("СформироватьПечатнуюФорму")
Процедура Имя_ПослеСформироватьПечатнуюФорму(ТабличныйДокумент)
ТабличныйДокумент.Вывод = ИспользованиеВывода.Разрешить;
КонецПроцедуры
Такой подход позволяет игнорировать отсутствие роли у пользователя и разрешать печать точечно для выбранных документов.
Если ваши пользователи работают через браузер, помните о настройках самого браузера. Даже при наличии всех прав в 1С, всплывающее окно печати может быть заблокировано настройками безопасности браузера. Проверьте наличие иконки блокировки в адресной строке и разрешите всплывающие окна для адреса вашей информационной базы.
Резюме: В большинстве случаев для исправления проблемы «Только просмотр не разрешает печать» достаточно добавить стандартную роль Вывод на принтер, в файл, в буфер обмена в профиль пользователя через пользовательский интерфейс, не прибегая к программированию.