Права, предупреждение безопасности и регистрация: запускаем свою обработку в УНФ
Содержание
Чтобы разрешить внешние обработки в 1С:УНФ, пользователю нужна роль «Интерактивное открытие внешних отчетов и обработок» — проще всего через профиль группы доступа «Открытие внешних отчетов и обработок». Второй барьер — защита от опасных действий платформы: она не запрещает открытие, а показывает предупреждение, которое отключается флажком в карточке пользователя или параметром в conf.cfg.
Если обработка нужна постоянно, её лучше не открывать через Файл → Открыть, а зарегистрировать в справочнике «Дополнительные отчеты и обработки». Тогда права на открытие произвольных файлов пользователю вообще не нужны. Всё ниже относится к УНФ 1.6 и 3.0 на платформе 8.3 в интерфейсе «Такси».
Почему УНФ не открывает внешнюю обработку
Внешняя обработка — это файл .epf (отчёт — .erf) с произвольным кодом. Код выполняется с правами пользователя, который его открыл. Он может читать и менять данные, писать файлы на диск, обращаться к сети. Поэтому УНФ, как и другие типовые конфигурации на БСП, закрывает эту дверь по умолчанию.
На пути файла стоят три разных механизма. Их важно различать — у каждого свой симптом и своё решение.
| Барьер | Кто ставит | Что видит пользователь | Где снимается |
|---|---|---|---|
| 🔒 Нет права на интерактивное открытие | Конфигурация (роли) | Нарушение прав доступа! | Группы доступа, профиль |
| ⚠️ Защита от опасных действий | Платформа | Окно с предупреждением безопасности перед открытием | Карточка пользователя в Конфигураторе, conf.cfg |
| ☁️ Ограничения сервиса | 1С:Фреш, облачная УНФ | Команда открытия файла недоступна | Только регистрация обработки через сервис |
Администратор с полными правами обычно видит только второй барьер. Рядовой пользователь — первый. Если у пользователя нет права, предупреждение безопасности он даже не увидит: платформа остановит его раньше.
Как дать пользователю право открывать внешние обработки
Право выдаётся не самому пользователю, а через группу доступа. В УНФ группы доступа строятся на профилях, а профиль — это набор ролей.
Через профиль «Открытие внешних отчетов и обработок»
В типовой поставке БСП есть готовый профиль с этим названием. Он содержит одну роль — «Интерактивное открытие внешних отчетов и обработок».
- Войдите в УНФ под пользователем с полными правами.
- Откройте панель администрирования и в ней раздел
Пользователи и права. В зависимости от релиза УНФ сама группа команд «Администрирование» лежит в разделе «Компания» или «Настройки». - Перейдите в
Группы доступа. - Создайте группу, например «Внешние обработки». В поле профиля выберите «Открытие внешних отчетов и обработок».
- На вкладке участников добавьте нужных пользователей. Можно добавить группу пользователей целиком.
- Нажмите
Записать и закрыть. - Пользователь должен перезапустить сеанс: права перечитываются при входе.
После этого команда Файл → Открыть (или Ctrl+O) в главном меню начнёт открывать .epf и .erf.
Через карточку пользователя (упрощённая настройка прав)
В небольших базах УНФ часто включён упрощённый режим: группы доступа скрыты, а права назначаются флажками профилей прямо в карточке.
- Откройте
Пользователи и права → Пользователии найдите сотрудника. - В карточке нажмите команду
Права доступа. - Отметьте профиль «Открытие внешних отчетов и обработок» вместе с остальными профилями сотрудника.
- Запишите и попросите пользователя перезайти.
Не создавайте свою роль в Конфигураторе ради одного права. Изменение конфигурации снимает её с полной поддержки и усложняет обновления. Готового профиля хватает.
Права на дополнительные обработки — это другое
Не путайте два права:
- 📂 Интерактивное открытие — открыть любой файл с диска через
Файл → Открыть. - 🗂️ Добавление и изменение дополнительных отчетов и обработок — загружать файлы в справочник, менять их настройки и размещение.
Бухгалтеру, который каждый день запускает одну и ту же обработку загрузки банковской выписки, не нужно ни то, ни другое. Ему достаточно, чтобы администратор один раз зарегистрировал обработку и разместил её в нужном разделе.
Как отключить предупреждение безопасности в 1С:УНФ
Механизм «Защита от опасных действий» появился в платформе 8.3.9. При открытии внешней обработки, загрузке расширения или запуске потенциально опасного кода платформа спрашивает подтверждение. Ответ «Нет» прерывает открытие — и пользователи часто принимают это за запрет.
Отключать защиту стоит только тем, кто регулярно и осознанно открывает внешние файлы: администратору, программисту, внедренцу.
Флажок в свойствах пользователя
- Откройте базу в Конфигураторе.
- Меню
Администрирование → Пользователи. - Откройте пользователя, вкладка
Прочие. - Снимите флажок
Защита от опасных действий. - Нажмите
ОК. Перезапускать конфигурацию не нужно, пользователь увидит изменение при следующем входе.
Список пользователей в Конфигураторе — это пользователи информационной базы. Не удаляйте и не переименовывайте их здесь: в УНФ они связаны со справочником «Пользователи», и рассинхронизация ломает вход.
Параметр в conf.cfg на компьютере
Если нужно снять предупреждение для всех баз на конкретном рабочем месте, используйте файл настроек платформы. Он лежит в каталоге C:\Program Files\1cv8\conf\conf.cfg (для 32-разрядной платформы — C:\Program Files (x86)\1cv8\conf\conf.cfg).
Добавьте строку с регулярным выражением, которому должна соответствовать строка соединения с базой:
DisableUnsafeActionProtection=.*
Вариант .* отключает защиту для любой базы на этом компьютере. Лучше сузить маску до своей базы, например по имени на сервере:
DisableUnsafeActionProtection=.*Ref=unf_work.*
Перезапустите клиент 1С. Правка файла требует прав администратора Windows.
Регистрация обработки в УНФ как дополнительной
Это правильный способ для обработок, которыми пользуются постоянно: загрузка из Excel , нестандартные печатные формы, заполнение табличных частей. Файл хранится в базе, а пользователю не нужно ни право открытия, ни снятие защиты.
- В панели администрирования откройте
Печатные формы, отчеты и обработки. - Включите флажок
Дополнительные отчеты и обработки. - Перейдите по ссылке в справочник дополнительных отчётов и обработок и нажмите
Создать. - Выберите файл
.epfили.erf. Подтвердите предупреждение безопасности. - Если обработка подготовлена для БСП, УНФ сама заполнит вид (дополнительная обработка, печатная форма, заполнение объекта) и список команд.
- На вкладке размещения укажите разделы или документы, где появится команда.
- На вкладке команд настройте, кому она доступна, и при желании — расписание для регламентного запуска.
- Запишите элемент.
Не каждая внешняя обработка регистрируется. В модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(), которая возвращает вид, версию и команды. Если её нет, УНФ откажет в регистрации. Такую обработку можно только открывать через Файл → Открыть либо попросить разработчика доработать модуль.
Где пользователь найдёт зарегистрированную обработку
Команда появляется там, где её разместил администратор:
- 📌 Обработка общего назначения — в разделе, который указан на вкладке размещения, через команду дополнительных обработок этого раздела.
- 🖨️ Печатная форма — в меню
Печатьтого документа или справочника, к которому она привязана. - 📝 Заполнение объекта — в командной панели формы документа, обычно в подменю заполнения.
- 📊 Дополнительный отчёт — среди отчётов раздела, рядом с типовыми.
Если сотрудник команду не видит, проверьте две вещи. Первая — раздел на вкладке размещения совпадает с тем, где он ищет. Вторая — в настройках команды для него не ограничен доступ. Обновлять файл обработки удобно тем же элементом справочника: команда загрузки нового файла заменяет старую версию, а размещение и настройки сохраняются.
В облачной УНФ (1С:Фреш) это единственный путь. Файл загружается через справочник, после чего сервис отправляет его на проверку. Пока проверка не пройдена, команда недоступна.
Ошибки при открытии внешних обработок и что с ними делать
Большинство проблем решается за пару минут, если правильно прочитать симптом.
Если ошибка не из списка, нажмите Подробно в окне ошибки. Строка с именем модуля и номером строки подскажет, где проблема — в правах, в платформе или в самом коде обработки.
Безопасность: кому и что можно разрешать
Право на интерактивное открытие — это фактически право выполнить любой код в базе. Обработка из интернета может тихо изменить остатки, выгрузить контрагентов или удалить документы. Пользователь при этом ничего не заметит.
Простые правила для небольшой фирмы:
- 👤 Минимум людей. Право открытия — администратору и одному ответственному сотруднику, не всем бухгалтерам.
- 🗂️ Рабочие обработки — в справочник. Если обработкой пользуются регулярно, регистрируйте её. Так вы точно знаете, какая версия файла работает.
- 🔍 Источник файла. Берите обработки у своего программиста, проверенного партнёра или из официального каталога. Файлы с форумов и из почты сначала открывайте в копии базы.
- 🛡️ Защиту оставляйте включённой у рядовых пользователей. Предупреждение — последний шанс остановиться, если открыт не тот файл.
- 💾 Резервная копия перед первым запуском обработки, которая меняет данные массово.
Никогда не запускайте в рабочей базе обработку, источник которой вы не знаете, — даже если «нужно срочно». Откат после массового изменения документов без копии займёт дни.
В клиент-серверном варианте УНФ можно включить профили безопасности кластера. Тогда дополнительные обработки, зарегистрированные в безопасном режиме, не получат доступа к файлам, сети и внешним компонентам без явного разрешения администратора. Для файловой базы на пять пользователей это избыточно, для базы на сервере с десятками сотрудников — разумно.
Массовая настройка разрешений для внешних обработок
Если пользователей много или рабочих мест десятки, ручная настройка утомляет. Есть три способа ускорить.
Группы пользователей вместо отдельных людей
Добавьте в группу доступа не сотрудников, а группу пользователей — например «Администраторы УНФ». Новый сотрудник получит право, как только его включат в группу. Отзыв права — тоже одним действием.
Раздача conf.cfg по сети
На рабочие места программистов и внедренцев файл conf.cfg с нужной строкой DisableUnsafeActionProtection можно скопировать скриптом или групповой политикой. Важно не затереть другие параметры, которые уже есть в файле: дописывайте строку, а не заменяйте файл целиком.
@echo off
set CFG=C:\Program Files\1cv8\conf\conf.cfg
findstr /C:"DisableUnsafeActionProtection" "%CFG%" >nul || echo DisableUnsafeActionProtection=.*Ref=unf_work.*>>"%CFG%"
Скрипт добавляет строку, только если её ещё нет. Запускайте его от имени администратора.
Снятие защиты кодом
Для программиста: свойство пользователя информационной базы можно изменить из кода с административными правами, например в обработке для администратора.
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Иванова");
Если ПользовательИБ <> Неопределено Тогда
Защита = Новый ОписаниеЗащитыОтОпасныхДействий;
Защита.ПредупреждатьОбОпасныхДействиях = Ложь;
ПользовательИБ.ЗащитаОтОпасныхДействий = Защита;
ПользовательИБ.Записать();
КонецЕсли;
Код выполняется на сервере. Имя передаётся то, что указано в поле «Имя» пользователя ИБ, а не ФИО сотрудника.
Частые вопросы
Можно ли просто дать пользователю полные права, чтобы открывались обработки?
Нужна ли перезагрузка базы после изменения прав?
Будут ли работать внешние обработки от УНФ 1.6 в УНФ 3.0?
Где хранится зарегистрированная дополнительная обработка?
.dt, отдельно файл переносить не нужно.