При настройке пользовательских прав в программах системы 1С часто возникает ситуация, когда пользователю открыт доступ к отчету, он может его сформировать и просмотреть на экране, однако стандартная кнопка сохранения файла (в форматы Excel, PDF, TXT) или пиктограмма дискеты остаются неактивными. Проанализируем, почему возникает эта проблема, где именно в конфигураторе настраивается доступ к экспорту данных и какими дополнительными способами можно управлять сохранением табличных документов.
В платформе 1С:Предприятие для управления возможностью печати, копирования и сохранения сформированных данных во внешние файлы используется специальное право — «Вывод» (Output). Если у пользователя назначены только права Использование и Просмотр для конкретного объекта метаданных (отчета, обработки или документа), он сможет увидеть сформированную таблицу на экране, но не получит возможности извлечь из нее данные во внешнюю среду.
Право «Вывод» носит сквозной характер и при отключении накладывает следующие системные ограничения:
Ctrl+C.Разберем по шагам, как найти данное право в дереве метаданных. Типичная ошибка заключается в попытке найти опцию «Вывод» внутри прав конкретного отчета или в общих командах. Это право устанавливается на уровне всего прикладного решения.
Напомним, что в платформе 1С права нескольких назначенных пользователю ролей объединяются по логическому принципу «ИЛИ». Это означает, что если у пользователя назначено несколько ролей, право Вывод достаточно включить хотя бы в одной из них.
Если работа ведется в типовой конфигурации на базе Библиотеки стандартных подсистем (например, 1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей, 1С:Бухгалтерия предприятия, 1С:ЗУП), снимать конфигурацию с поддержки для редактирования ролей не требуется. Разберем порядок настройки через режим «1С:Предприятие»:
Вывод на печать или Сохранение данных отчетов и печатных форм во внешние файлы).Рассмотрим ситуацию, когда разработчику необходимо запретить общий вывод данных для пользователя, но для одного конкретного отчета разрешить выгрузку в Excel, либо наоборот — строго запретить сохранение конфиденциальной формы. Для этого используется свойство Вывод объекта ТабличныйДокумент или соответствующего элемента управляемой формы.
Свойство принимает значения системного перечисления ИспользованиеВывода:
ИспользованиеВывода.Разрешить — разрешает печать и экспорт независимо от прав пользователя.ИспользованиеВывода.Запретить — блокирует экспорт независимо от наличия права в роли.ИспользованиеВывода.Авто — поведение определяется системным правом «Вывод» в роли пользователя.Посмотрим на пример программной установки свойства в модуле отчета или формы:
// Разрешаем сохранение и печать конкретного табличного документа
ТабличныйДокумент.Вывод = ИспользованиеВывода.Разрешить;
// Для управляемой формы отчета (обращение к элементу формы)
Элементы.Результат.Вывод = ИспользованиеВывода.Разрешить;
Также обратим внимание на свойства Защита и ТолькоПросмотр у табличного документа — если они включены некорректно, это также может препятствовать взаимодействию с таблицей.
Иногда право «Вывод» у пользователя есть, но кнопка сохранения все равно не нажимается. Проанализируем интерфейсные особенности платформы 1С:
КоманднаяПанель свойство ИсточникКоманд указывает на элемент формы, связанный с полем табличного документа.Если требуется организовать автоматическую выгрузку отчета в файл XLSX в фоновом режиме или в обход интерфейсных ограничений, применим серверный метод Записать:
// Программный экспорт сформированного отчета на сервере
ПутьКФайлу = "C:\Reports\Report.xlsx";
ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);
При выполнении этого программного кода на стороне сервера платформенные интерактивные ограничения права «Вывод» не блокируют формирование файла на диске.