Как ограничить или убрать возможность сохранения печатных форм в PDF в 1С?

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

В практике администраторов и разработчиков 1С нередко возникают задачи, связанные с обеспечением информационной безопасности. Одна из таких задач — запрет на сохранение печатных форм в электронные форматы, в частности в PDF. Это может быть продиктовано требованиями службы безопасности для предотвращения утечки конфиденциальной информации. В данной статье мы подробно разберем, какими методами можно ограничить экспорт документов, начиная от простых настроек прав доступа и заканчивая программным управлением объектами системы.

Метод 1. Настройка прав доступа через роли (Право «Вывод»)

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

Разберем по шагам, как ограничить это право:

  1. Откроем конфигуратор и перейдем в дерево метаданных.
  2. Найдем раздел «Общие» — «Роли».
  3. Выберем роль, назначенную пользователю (или создадим новую ограничивающую роль).
  4. В окне редактирования роли на уровне всей конфигурации (корневой элемент) найдем право «Вывод».
  5. Снимем галочку с этого права.

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

Метод 2. Программное управление свойством «Вывод» табличного документа

Рассмотрим ситуацию, когда нам нужно запретить сохранение не для всей системы в целом, а только для конкретной печатной формы. Для этого мы можем воспользоваться программными свойствами объекта ТабличныйДокумент. В платформе 1С предусмотрено свойство Вывод, которое может принимать значения системного перечисления ИспользованиеВывода.

Проанализируем пример кода, который необходимо вставить в модуль печати (например, в процедуру формирования печатной формы):


// Создаем или получаем табличный документ
ТабДок = Новый ТабличныйДокумент;

// Заполняем табличный документ данными...
// ...

// Запрещаем вывод (печать, сохранение, копирование)
ТабДок.Вывод = ИспользованиеВывода.Запретить;

// Выводим документ пользователю
ТабДок.Показать("Печать счета");

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

Метод 3. Использование свойства «Защита»

Выясним, как еще можно ограничить манипуляции пользователя с формой. Существует свойство Защита. Если установить ТабДок.Защита = Истина, пользователь не сможет редактировать ячейки. В сочетании с ограничением прав это создает комплексную преграду.

Посмотрим на пример установки защиты:


ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;

Хотя само по себе свойство Защита не отключает сохранение в PDF, оно часто используется совместно с запретом вывода для предотвращения изменения данных перед их возможным (если разрешено) копированием.

Метод 4. Кастомизация интерфейса и скрытие стандартного меню

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

Разберем, как это сделать в конфигураторе:

  1. Откроем свойства корневого узла конфигурации.
  2. Нажмем кнопку «Открыть интерфейс клиентского приложения».
  3. В появившемся окне мы можем настроить состав команд панели разделов и инструментов.
  4. Для определенных ролей можно отключить видимость стандартных команд.

Однако помните, что опытный пользователь может воспользоваться горячими клавишами (например, Ctrl + S). Поэтому интерфейсные ограничения должны обязательно дополняться ограничением прав доступа, описанным в первом методе.

Метод 5. Использование собственных кнопок печати

Рассмотрим продвинутый способ: создание собственной формы предварительного просмотра. Вместо того чтобы использовать стандартный метод ТабДок.Показать(), мы можем создать свою форму, разместить на ней элемент ПолеТабличногоДокумента и свои кнопки («Печать на конкретный принтер», «Закрыть»).

В этом случае мы не предоставляем пользователю доступ к стандартному окну просмотра 1С, а значит, он не видит системных меню платформы. В коде кнопки «Печать» мы можем жестко прописать отправку на принтер без возможности выбора файла:


// Прямая печать без вывода диалога сохранения
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

Метод 6. Административные ограничения на уровне ОС

Проанализируем ситуацию с точки зрения системного администрирования. Сохранение в PDF в 1С часто реализовано через встроенные механизмы платформы, но иногда пользователи используют виртуальные принтеры (например, «Microsoft Print to PDF»).

Чтобы исключить такую возможность, системный администратор может:

Резюме

Мы рассмотрели различные подходы к решению задачи. Наиболее надежным и правильным с точки зрения архитектуры 1С является комбинация ограничения права «Вывод» в ролях и программная установка свойства ИспользованиеВывода.Запретить для критически важных документов. Эти меры гарантируют, что стандартные средства платформы по экспорту данных будут заблокированы.

← На главную