База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как подключить внешнюю обработку в 1С при ошибке «Действие недоступно в безопасн
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
22 сентября 2026 в 9:33 #38698
Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии приложения.Техническая информация:
Действие недоступно в безопасном режиме. -
22 сентября 2026 в 9:34 #38699
Ошибка возникает при подключении файла, еще до его регистрации в списке дополнительных обработок. Поэтому проблема находится не в записи документа, а в коде, который выполняется при загрузке внешней обработки:
— в модуле объекта;
— в функцииСведенияОВнешнейОбработке();
— в разделе переменных модуля;
— в обработчике инициализации модуля;
— в общем модуле, который вызывается из этих мест.Сообщение:
1С (Код)1Действие недоступно в безопасном режимеозначает, что 1С загрузила обработку в безопасном режиме и обнаружила запрещенное действие.
## Что проверить в первую очередь
Откройте файл
ITC_ЗагрузкаПоступлений_Розница.epfв конфигураторе и проверьте модуль объекта.В функции:
1С (Код)1Функция СведенияОВнешнейОбработке() Экспортнайдите строку:
1С (Код)1ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);и замените на:
1С (Код)123ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);Минимальная функция регистрации должна выглядеть примерно так:
1С (Код)123456789101112131415161718192021222324252627Функция СведенияОВнешнейОбработке() ЭкспортПараметрыРегистрации = Новый Структура;ПараметрыРегистрации.Вставить("Вид","ДополнительнаяОбработка");ПараметрыРегистрации.Вставить("Наименование","Загрузка поступлений Розница");ПараметрыРегистрации.Вставить("Версия","1.0");ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);ПараметрыРегистрации.Вставить("Информация","Загрузка поступлений");Возврат ПараметрыРегистрации;КонецФункцииНо если ошибка появляется даже после такой замены, значит запрещенное действие выполняется до возврата из этой функции.
## Что нельзя выполнять при инициализации обработки
Проверьте модуль объекта и удалите из верхнего уровня модуля любые вызовы вроде:
1С (Код)1Соединение = Новый COMОбъект(...);1С (Код)1ЗапуститьПриложение(...);1С (Код)1Файл = Новый Файл(...);1С (Код)1Чтение = Новый ЧтениеТекста(...);1С (Код)1Запись = Новый ЗаписьТекста(...);1С (Код)1HTTPСоединение = Новый HTTPСоединение(...);1С (Код)1ВнешниеКомпоненты.Подключить(...);1С (Код)1Выполнить(ТекстКода);1С (Код)1УстановитьПривилегированныйРежим(Истина);Также опасны обращения к внешним файлам, COM-объектам, интернету, внешним компонентам и запуску программ операционной системы.
Особенно важно проверить переменные модуля. Например, такой код выполняется уже во время загрузки обработки:
1С (Код)123Перем Подключение;Подключение = Новый COMОбъект("V83.COMConnector");Его нужно заменить на создание объекта внутри команды обработки:
1С (Код)123456789&НаКлиентеПроцедура Загрузить(Команда)Подключение = Новый COMОбъект("V83.COMConnector");// Дальнейшая работаКонецПроцедурыНо если обработка зарегистрирована с безопасным режимом, даже вызов внутри команды может быть запрещен. В таком случае обработку нужно регистрировать как небезопасную или переделывать механизм работы.
## Важный момент по функции регистрации
Функция
СведенияОВнешнейОбработке()должна только формировать параметры регистрации. В ней не должно быть загрузки файлов, подключения к другой базе, создания COM-объекта или записи данных.Плохой вариант:
1С (Код)123456789101112Функция СведенияОВнешнейОбработке() ЭкспортПодключение = Новый COMОбъект("V83.COMConnector");Настройки = ПолучитьНастройкиИзФайла();ПараметрыРегистрации = Новый Структура;Возврат ПараметрыРегистрации;КонецФункцииПравильный вариант:
1С (Код)123456789101112131415Функция СведенияОВнешнейОбработке() ЭкспортПараметрыРегистрации = Новый Структура;ПараметрыРегистрации.Вставить("Наименование","Загрузка поступлений Розница");ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);Возврат ПараметрыРегистрации;КонецФункции## Если обработка подключается через БСП
В современных конфигурациях для дополнительных обработок может использоваться БСП. Тогда регистрация обычно выглядит примерно так:
1С (Код)12345678910111213141516171819202122Функция СведенияОВнешнейОбработке() ЭкспортПараметрыРегистрации =ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();ПараметрыРегистрации.Вставить("Вид",ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка());ПараметрыРегистрации.Вставить("Наименование","Загрузка поступлений Розница");ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);Возврат ПараметрыРегистрации;КонецФункцииТочный код зависит от версии БСП и конфигурации. Если в вашей конфигурации используется механизм разрешений безопасного режима, одной строки
БезопасныйРежим = Ложьможет быть недостаточно.## Проверьте настройки пользователя
Есть два разных механизма, их часто путают.
### Безопасный режим
Ограничивает выполнение отдельных действий внешней обработки. Именно с ним связано ваше сообщение:
1С (Код)1Действие недоступно в безопасном режиме### Защита от опасных действий
Выдает предупреждение вида:
1С (Код)12Предупреждение безопасности.Открывается внешняя обработка...Это другая настройка.
Если после исправления файла появляется именно предупреждение безопасности, а не ошибка безопасного режима, тогда можно проверить пользователя в конфигураторе:
1. Откройте конфигуратор.
2. Откройте список пользователей информационной базы.
3. Откройте пользователя.
4. Проверьте настройку Защита от опасных действий.Но отключать ее для всех пользователей не рекомендуется. Сначала нужно убедиться, что файл действительно доверенный.
## После изменения файл нужно зарегистрировать заново
Порядок такой:
1. Сделайте резервную копию базы.
2. Откройте.epfв конфигураторе.
3. ИсправьтеСведенияОВнешнейОбработке().
4. Удалите опасный код из верхнего уровня модуля.
5. Сохраните обработку.
6. Закройте конфигуратор.
7. Удалите старую обработку из списка дополнительных обработок.
8. Загрузите исправленный файл заново.
9. Перезапустите клиент 1С.Если обработка уже была зарегистрирована, изменение файла на диске само по себе не обновит обработку в базе.
## Как быстро найти запрещенную строку
В конфигураторе выполните поиск по модулю обработки по словам:
1С (Код)1234567891011121314COMОбъектЗапуститьПриложениеВнешниеКомпонентыУстановитьПривилегированныйРежимВыполнитьЧтениеТекстаЗаписьТекстаПолучитьФайлПоместитьФайлHTTPСоединениеFTPСоединениеФайлЗаписатьУдалитьПроверьте не только
СведенияОВнешнейОбработке(), но и:— объявления переменных модуля;
— основной модуль объекта;
— формы обработки;
— вызываемые общие модули;
— процедуры, выполняемые при открытии формы.## Если исходник обработки закрыт
Если
.epfне открывается в конфигураторе или модуль защищен паролем, самостоятельно исправить обработку невозможно. В таком случае варианты только такие:1. запросить у разработчика новую версию обработки;
2. запросить исходный файл без защиты;
3. попросить разработчика убрать выполнение запрещенных действий из инициализации;
4. проверить совместимость версии платформы и конфигурации.Фраза 1С:
1С (Код)1Возможно, она не подходит для этой версии приложенияв данном случае может быть стандартным общим текстом. Реальная причина указана ниже:
1С (Код)1Действие недоступно в безопасном режимеТо есть сначала нужно исправить безопасный режим и код инициализации, а уже потом проверять совместимость версии приложения.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.