В практике администраторов и разработчиков 1С нередко возникают задачи, связанные с обеспечением информационной безопасности. Одна из таких задач — запрет на сохранение печатных форм в электронные форматы, в частности в PDF. Это может быть продиктовано требованиями службы безопасности для предотвращения утечки конфиденциальной информации. В данной статье мы подробно разберем, какими методами можно ограничить экспорт документов, начиная от простых настроек прав доступа и заканчивая программным управлением объектами системы.
Проанализируем самый простой и штатный механизм, предоставляемый платформой «1С:Предприятие». В системе существует специальное право, которое регулирует возможность печати, копирования в буфер обмена и сохранения документов во внешние файлы. Это право называется «Вывод».
Разберем по шагам, как ограничить это право:
Важно понимать: снятие этого права действует глобально. Пользователь не сможет не только сохранить документ в PDF через меню «Файл — Сохранить как», но и не сможет вывести документ на принтер или скопировать содержимое ячеек. Если задача стоит именно в запрете любого отчуждения информации, то это решение является наиболее эффективным и безопасным.
Рассмотрим ситуацию, когда нам нужно запретить сохранение не для всей системы в целом, а только для конкретной печатной формы. Для этого мы можем воспользоваться программными свойствами объекта ТабличныйДокумент. В платформе 1С предусмотрено свойство Вывод, которое может принимать значения системного перечисления ИспользованиеВывода.
Проанализируем пример кода, который необходимо вставить в модуль печати (например, в процедуру формирования печатной формы):
// Создаем или получаем табличный документ
ТабДок = Новый ТабличныйДокумент;
// Заполняем табличный документ данными...
// ...
// Запрещаем вывод (печать, сохранение, копирование)
ТабДок.Вывод = ИспользованиеВывода.Запретить;
// Выводим документ пользователю
ТабДок.Показать("Печать счета");
При использовании этого метода пункт меню «Файл — Сохранить как» станет неактивным, когда активным окном является данный табличный документ. Это позволяет точечно управлять безопасностью отдельных отчетов или первичных документов.
Выясним, как еще можно ограничить манипуляции пользователя с формой. Существует свойство Защита. Если установить ТабДок.Защита = Истина, пользователь не сможет редактировать ячейки. В сочетании с ограничением прав это создает комплексную преграду.
Посмотрим на пример установки защиты:
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
Хотя само по себе свойство Защита не отключает сохранение в PDF, оно часто используется совместно с запретом вывода для предотвращения изменения данных перед их возможным (если разрешено) копированием.
Иногда требование заказчика звучит так: «Уберите саму кнопку сохранения». В управляемом приложении мы можем управлять составом командного интерфейса. Если мы полностью скроем стандартное меню «Файл» для пользователя, он потеряет доступ к команде «Сохранить как».
Разберем, как это сделать в конфигураторе:
Однако помните, что опытный пользователь может воспользоваться горячими клавишами (например, Ctrl + S). Поэтому интерфейсные ограничения должны обязательно дополняться ограничением прав доступа, описанным в первом методе.
Рассмотрим продвинутый способ: создание собственной формы предварительного просмотра. Вместо того чтобы использовать стандартный метод ТабДок.Показать(), мы можем создать свою форму, разместить на ней элемент ПолеТабличногоДокумента и свои кнопки («Печать на конкретный принтер», «Закрыть»).
В этом случае мы не предоставляем пользователю доступ к стандартному окну просмотра 1С, а значит, он не видит системных меню платформы. В коде кнопки «Печать» мы можем жестко прописать отправку на принтер без возможности выбора файла:
// Прямая печать без вывода диалога сохранения
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
Проанализируем ситуацию с точки зрения системного администрирования. Сохранение в PDF в 1С часто реализовано через встроенные механизмы платформы, но иногда пользователи используют виртуальные принтеры (например, «Microsoft Print to PDF»).
Чтобы исключить такую возможность, системный администратор может:
1cv8.exe и блокируют их.Мы рассмотрели различные подходы к решению задачи. Наиболее надежным и правильным с точки зрения архитектуры 1С является комбинация ограничения права «Вывод» в ролях и программная установка свойства ИспользованиеВывода.Запретить для критически важных документов. Эти меры гарантируют, что стандартные средства платформы по экспорту данных будут заблокированы.