Как запретить открытие внешних отчетов и обработок через меню «Файл — Открыть», но разрешить их запуск из справочника в 1С?

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

Обеспечение информационной безопасности в системе 1С — одна из приоритетных задач любого администратора или программиста. Часто возникает ситуация, когда пользователям необходимо дать возможность запускать строго определенные, одобренные руководством и проверенные программистами печатные формы, отчеты или обработки, но при этом полностью исключить возможность открытия произвольных файлов формата .epf и .erf через стандартное меню Файл — Открыть.

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

Понимание механизма работы платформы 1С

Для того чтобы решить эту задачу, нам необходимо четко разграничить два сценария работы с внешними модулями, которые платформа 1С воспринимает абсолютно по-разному:

  1. Интерактивное открытие пользователем: Это ручной запуск, когда пользователь нажимает в главном меню «Файл — Открыть» (или перетаскивает файл мышью в окно программы) и выбирает обработку с локального диска или сетевой папки.
  2. Программное подключение: Это запуск, осуществляемый самой конфигурацией (например, механизмами Библиотеки Стандартных Подсистем — БСП) из справочника ДополнительныеОтчетыИОбработки (в старых версиях — «Внешние печатные формы и обработки»).

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


// Получаем двоичные данные файла из справочника
ДвоичныеДанныеФайла = СсылкаНаОбъектСправочника.ХранилищеШаблона.Получить();
Если ДвоичныеДанныеФайла <> Неопределено Тогда
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("epf");
    ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
    
    // Подключаем внешнюю обработку программно без интерактивного запроса
    ИмяОбработки = ВнешниеОбработки.Подключить(ИмяВременногоФайла, , Ложь);
    
    // Открываем форму подключенной обработки
    ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
КонецЕсли;

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

Шаг 1. Отключение интерактивного открытия в Конфигураторе

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

Разберем по шагам, как их отключить:

  1. Запустите информационную базу в режиме Конфигуратор.
  2. Откройте дерево метаданных и перейдите в ветку Общие — Роли.
  3. Найдите роли, которые назначены вашим рядовым пользователям (например, «Пользователь», «ДобавлениеИзменениеДанных» или специализированные роли). Нам нужно проверить все роли, которые назначены пользователю в режиме «1С:Предприятие».
  4. Дважды кликните по нужной роли, чтобы открыть окно настройки прав.
  5. В списке объектов конфигурации выберите самый верхний элемент (корневой элемент дерева свойств роли, обычно совпадающий с названием конфигурации).
  6. В правой колонке «Права» найдите свойства Интерактивное открытие внешних обработок и Интерактивное открытие внешних отчетов.
  7. Снимите флажки (галочки) напротив этих прав.
  8. Сохраните конфигурацию базы данных.

Если ваша конфигурация построена на БСП (например, 1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей, 1С:Бухгалтерия предприятия), то права обычно управляются через Профили групп доступа в режиме «1С:Предприятие». В этом случае убедитесь, что у пользователей из их профилей удалена роль Открытие внешних отчетов и обработок.

Шаг 2. Анализ ошибок администрирования («чрезмерно наограничивал»)

Очень часто администраторы, пытаясь закрыть бреши в безопасности, лишают пользователей доступа ко многим смежным механизмам. В результате легитимные обработки из справочника БСП также перестают работать, выдавая ошибки нарушения прав доступа или аварийно завершая сеанс. Выясним ключевые причины таких сбоев и способы их устранения.

1. Блокировка доступа к самому справочнику дополнительных обработок

Для того чтобы пользователь мог запустить обработку из справочника, у него обязательно должны быть права на чтение и просмотр этого справочника, а также на чтение хранилища двоичных данных, где физически находится файл обработки. Если вы заберете у пользователя роль Использование дополнительных отчетов и обработок (или аналогичную ей в вашей конфигурации), система просто не сможет отобразить список доступных ему печатных форм и отчетов.

Решение: Оставьте пользователям права на чтение справочника ДополнительныеОтчетыИОбработки и использование экранных форм БСП, но жестко контролируйте отсутствие у них ролей с правом интерактивного открытия файлов с диска.

2. Безопасный режим (Safe Mode)

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

Если ваша доверенная обработка должна выполнять, например, обмен с сайтом или выгрузку реестра на диск, в безопасном режиме она завершится ошибкой. Администраторы ошибочно думают, что это связано с ограничением прав пользователя, и начинают возвращать права на интерактивное открытие.

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

3. Права операционной системы на временную папку (Temp)

Как мы уже выяснили, для программного выполнения кода обработки платформа 1С сначала выгружает её двоичные данные во временный каталог текущего пользователя операционной системы. Обычно это папка вида:

C:\Users\ИмяПользователя\AppData\Local\Temp\

Если системный администратор в рамках доменных политик безопасности Active Directory жестко ограничил права учетной записи Windows на запись/выполнение файлов в каталоге %TEMP%, или если локальный антивирус блокирует создание файлов платформой 1С в этой папке, то механизм запуска дополнительных обработок БСП полностью сломается.

Решение: Убедитесь, что у локального пользователя операционной системы, под которым запущен сеанс 1С, есть полные права (Запись, Чтение, Изменение) на работу с его личной временной папкой на компьютере.

4. Механизм защиты от опасных действий

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

Решение: Для пользователей, которым разрешено работать только со справочником БСП, можно отключить защиту от опасных действий для конкретных доверенных обработок при их регистрации в справочнике или централизованно управлять этим параметром через профили безопасности кластера.

Использование профилей безопасности кластера (для клиент-серверных баз)

Если ваша информационная база работает в клиент-серверном варианте, наиболее прогрессивным и надежным методом защиты является использование профилей безопасности кластера 1С. Рассмотрим этот подход подробнее.

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

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

Проанализировав все описанные механизмы, мы видим, что задача безопасного использования внешнего кода в 1С решается не полным запретом всего подряд, а грамотной комбинацией отключения прав интерактивного открытия (Интерактивное открытие внешних обработок) и правильной настройкой среды выполнения для доверенных модулей в справочнике ДополнительныеОтчетыИОбработки.

← На главную