1с расширение модуля запрещено из за того что расширение подключено в безопасном режиме
Для управления расширениями в конфигураторе предназначен диалог Расширения конфигурации. Доступ к этому диалогу осуществляется через меню Конфигурация ‑ Расширения конфигурации. С помощью данного диалога можно создать новое расширение, удалить существующее, открыть конфигурацию расширения, сохранить расширение в файл, а также выполнять другие операции.
Рис. 681. Управление расширениями в конфигураторе
В общем случае получить доступ к командам работы с расширением конфигурации можно следующими способами:
1. С помощью команд командная панель панели окна Расширения конфигурации.
2. С помощью контекстного меню выбранного расширения в окне Расширения конфигурации.
3. С помощью меню Действия ‑ Конфигурация окна с расширением конфигурации.
Команды, представленные в этих меню, по смыслу совпадают с командами, применяемыми для основной конфигурации. Подробное описание этих команд см. здесь.
Описание свойств Активно и Область действия см. здесь.
33.2.1.2. Создание расширения
При создании расширения необходимо указать имя расширения, его синоним и префикс имен методов и объектов, создаваемых в расширении. Этот префикс будет автоматически добавляться к новым отчетам, обработкам и подсистемам, которые созданы в расширении, а также к обработчикам событий, которые создаются в расширяющих формах. В дальнейшем этот префикс можно посмотреть в свойстве расширения конфигурации Префикс имен.
Рис. 682. Новое расширение
При создании нового расширения из расширяемой конфигурации автоматически копируются следующие свойства: Основной режим запуска, Назначение использования, Основной язык, Режим совместимости интерфейса и Режим совместимости. Эти же свойства помечаются как контролируемые.
33.2.1.3. Сохранение расширения в файл
Для установки расширения в какое-либо прикладное решение, необходим файл с расширением конфигурации. Для выполнения этого действия следует выбрать в списке расширений конфигуратора нужное расширение и использовать команду Конфигурация ‑ Сохранить конфигурацию в файл командной панели диалога Расширения конфигурации или контекстного меню этого окна.
33.2.2. В режиме 1С:Предприятие
33.2.3. Удаление расширений
Интерактивное удаление расширений (в конфигураторе или в клиентском приложении) различает удаление расширения, которое не расширяет данные и расширения, которое данные расширяет. В первом случае будет задан стандартный вопрос-подтверждение, после чего расширение будет удалено.
Во втором случае удаление выполняется в два действия. Более подробное описание удаления расширения, расширяющего данные, см. здесь.
Удаление расширения из встроенного языка выполняется без дополнительного контроля со стороны системы (метод РасширениеКонфигурации.Удалить()). Однако, разработчик может выполнить все необходимые проверки самостоятельно. Для проверки активности расширения предназначено свойство РасширениеКонфигурации.Активно. Проверить, расширяет расширение данные или нет, можно с помощью метода РасширениеКонфигурации.ИзменяетСтруктуруДанных().
Речь пойдет о новых возможностях по кастомизации конфигурации в платформе 1С:Предприятие 8.3.9.
Чистая доработка
Сегодня мы рассмотрим внешние инструменты для доработки типовых решений.
Это позволит вносить достаточно серьезные изменения, НЕ снимая конфигурацию с поддержки.
Причем сама конфигурация остается оригинальной и обновиться на новый релиз проблем не составляет.
Это решается с помощью расширений конфигурации на платформе 8.3.9.
Видео
В видео мы рассмотрим:
Хотите больше?
Эта тема детально раскрыта в курсе:
Не откладывайте свое обучение!
Комментарии / обсуждение (110):
Может кто подскажет как решить следующую проблему:
При заимствовании в расширение справочника Номенклатуры из типовой конфигурации УТ и добавлении в метаданные справочника своей табличной части Расш_Таблица сразу же возникает проблема при попытке в режиме предприятия скопировать уже существующий элемент справочника выдает ошибку:
Перебрасывает в Конфигураторе на:
Как можно обойти эту беду?
Добрый день!
Такая же ошибка возникнет, если табличную часть добавить в самой конфигурации, без расширения.
В указанной строке кода нужно новую ТЧ указать в методе ЗаполнитьЗначениеСвойств в четвертом параметре (список полей-исключений).
А для заполнения этой новой ТЧ при копировании дописать код (или реализовать другую логику, если нужно не просто скопировать строки ТЧ, а преобразовать их):
Все эти действия можно сделать в расширении.
Спасибо за ответ? Если я создаю новый справочник в расширении и в нем таблицу, то таких проблем не возникает. Эта беда в заимствованном справочнике.
Пока не могу сообразить как в расширении это сделать, чтобы не лезть в код конфигурации? Можете подсказать?
1. Да, это проблема в конкретном справочнике Номенклатура в конкретной конфигурации, которая содержит указанный код.
2. Можно использовать аннотацию Вместо или ИзменениеИКонтроль.
Это не оговорка, всё верно.
Речь о том, что в 8.3.9 нельзя было добавлять реквизиты в объекты конфигурации. Например, нельзя добавить реквизит в документ или справочник, нельзя добавить табличную часть и так далее.
В данном же примере был добавлен реквизит в форму расширение. Это просто поле формы, оно не хранится в БД и заполняется программным образом.
Был добавлен реквизит формы, а не реквизит объекта.
Это был условный код.
Для простоты мы не стали заполнять реквизит формы.
В любом случае в 8.3.9 не было возможности создавать реквизиты в расширениях, поэтому скрытую фичу здесь можно не искать :)
Переопределение свойств заимствованных объектов в расширениях недопустимо в режиме совместимости 8.3.8 и ниже, который сейчас используется в типовой УТ.
Добрый день!
В этом видеоуроке показывается, что в корневом объекте конфигурации устанавливается режим совместимости Не использовать.
А в типовой УТ 11 действительно пока еще используется режим совместимости Версия 8.3.8. Думаю, что это вопрос времени.
Добрый день, Кирилл!
Евгений, спасибо!
В тех. поддержку 1С написал, посмотрю, что ответят. Свежая (на 08.12.2016) версия платформы (8.3.9.1850) не помогла :)
Ок, сообщайте полученный ответ :)
Отлично, ждем релиза.
У меня уже релиз платформы 8.3.11.3034, а проблемы все те же:(
Добрый день.
Вопрос по расширениях, если кто сталкивался, помогите.
Есть подозрение что фоновое задание их не использует. Может как то можно настроить? Не понимаю, это нереально, или я просто что то не так делаю.
Вопрос снят.
Расширение работало в безопасном режиме, в этом и была проблема.
Короче есть глюк для файлового варианта фонки не видят расширения, в клиет серверном видит, не знаю может исправят скоро.
Ребята, а кто нибудь знает, как расширения с применением хранилища разрабатывать? С приходом 8.3.9 расширения стали очень перспективными, но в отсутсвие средства групповой разработки кажется бесполезным.
Добрый день!
На данный момент нельзя работать с расширением через хранилище. Такой вариант не поддерживается. На партнерском форуме разработчики платформы отвечали, что рассматривают возможность добавления этой возможности.
Опыта использования таких систем нет. Встречал упоминания об использовании Mercurial для этих целей.
Добрый день, Евгений!
Вопрос снимается.
Надо было настроить профиль безопасности в консоли и связать с Базой
Вопрос: это я делаю что-то не так, или поведение системы так задумано?
Если это ошибка платформы, она должна как-нибудь ругнуться, а тут не ругается. Может, есть какие-то хитрости при обращении к реквизитам через ссылку в расширяющей форме?
Ясно, спасибо. Значит чуда не произошло))
Я про то, что через расширения структуру конфигурации не изменишь.
Здравствуйте. видео останавливается нв 3 секунде. Не подскажите, с чем это может быть связано.
Добрый день!
Проверка видео в нескольких браузерах не выявила никаких проблем.
После чистки кэша или при просмотре в другом браузере ошибка сохраняется?
Спасибо. Видео пошло.
Здравствуйте! Посмотрел видео, тяжело вздохнул! Как же я отстал от жизни! Сижу в древней, переписанной УПП. До УФ/БСП дальше, чем до Китая! И просвета не видно!! :(
1С:Предприятие 8.3 (8.3.9.1850) Управление торговлей, редакция 11.2 (11.2.3.175)
Я наверное что то пропустил, у меня не получилось снять с поддержки только один объект конфигурации и не получилось создать документ в расширении конфигурации.
1. Простите, не получилось поставить режим «Объект поставщика редактируется с сохранением поддержки» только для одного объекта.
2. Буду ждать курс
Сразу могу сказать что задействован механизм доп.сведений, но оооочень нестандартным и возможно неоптимальным образом, зато это позволило использовать в добавленном функционале данные любых ссылочных и примитивных типов, и любой структуры.
Спасибо за видео! Очень познавательно!
Теперь весь пласт доработок можно вынести в расширение. Конфигурацию все равно придется с замочка снять, для добавления реквизитов и новых объектов. Но это совсем не проблема, т.к. не влияет на обновление типовой.
Да, можно считать, что это прорыв в разработке на 1С :)
Ну в 8.3.9 наконец-то добавили возможность изменять модули объектов, до этого, имхо, ничего серьезного с помощью расширения сделать было нельзя, так как все равно лезешь либо в код общих модулей либо в код модулей объектов, теперь в целом, можно добавлять в конфигурацию новые реквизиты и объекты метаданных, а существующие дорабатывать с помощью расширений, но пока лично мой опыт использования расширений: сыровато. Ждем дальнейших улучшений и усовершенствований.
Я буквально 2 месяца назад ради интереса пример делал с хранением данных(таблицы значений) в доп реквизите в формате json\xml\и другие варианты. На хабре многии не поняли(не все прочитали) для чего это может быть нужно и устроили бурный холивар(ну там впринципе 1с красная тряпка), на инфостарте вопросов не задавали. И вот Вы пишите пример который как раз под этот метод. ;)
1 При открытии формы считываем из доп реквизита и прячем доп реквизит хранящий данные.
2 При закрытии преобразовываем данные в формат хранения и сравниваем изменились ли они и если да переписываем данные доп реквизита.
Поэтому вероятность этого события не велика.
Также ключ запуска "РежимОтладки" в конфигураторе или в настройках запусках "/РежимОтладки" не помог запустить отладку.
Запустил в файловом режиме на 8.3.10.2252.
Решил подключать расширение не через конфигуратор, а через предприятие. Оно подключилось в безопасном режиме.
В прошлый раз подключал расширение через конфигуратор.
В этот раз зашел через "Администрирование - Печатные форма, отчеты и обработки - Расширения".
В этом окне галка безопасный режим снимается, но не сохраняется.
Далее зашел через "Все функции - Стандартные - Управление расширениями конфигурации" и там снял галочку "Безопасный режим".
И как вы думаете что? Да, обработка из расширения заработала! Похоже это не доработка платформы или с чем связана данная проблема?
И после этих действий отладка с ключом в конфигураторе "РежимОтладки" тоже заработала! Но сначала я запустил отладку. И только потом открыл расширение. Возможно в текущих реалиях это важно!
Хотя возможно еще сыграла роль кнопка "Удалить устаревшие кэши расширений". Или последовательность всех этих действий.
Вроде как решение спрятано в дебрях Полные права. У нас остальные танцы с бубном успехом не увенчались. Правда связано было с запуском некоторых консолей и попыткой записать файл запроса на диск.
(4) у меня полные права (профиль администратор). Сейчас написал в ТП по идее это косяк платформы или я чего-то не знаю.
Запустил в файловом режиме на 8.3.10.2252.
Решил подключать расширение не через конфигуратор, а через предприятие. Оно подключилось в безопасном режиме.
В прошлый раз подключал расширение через конфигуратор.
В этот раз зашел через "Администрирование - Печатные форма, отчеты и обработки - Расширения".
В этом окне галка безопасный режим снимается, но не сохраняется.
Далее зашел через "Все функции - Стандартные - Управление расширениями конфигурации" и там снял галочку "Безопасный режим".
И как вы думаете что? Да, обработка из расширения заработала! Похоже это не доработка платформы или с чем связана данная проблема?
И после этих действий отладка с ключом в конфигураторе "РежимОтладки" тоже заработала! Но сначала я запустил отладку. И только потом открыл расширение. Возможно в текущих реалиях это важно!
Хотя возможно еще сыграла роль кнопка "Удалить устаревшие кэши расширений". Или последовательность всех этих действий.
Наибольшую опасность представляют оператор встроенного языка Выполнить() и встроенная функция Вычислить(). Они позволяют выполнить фрагмент кода, который передается им в качестве строкового значения. Если такой фрагмент кода формируется пользователем, а выполняется на сервере, то это представляет потенциальную угрозу для безопасности системы. В то же время возможность выполнения кода, введенного пользователем, необходима.
Для того чтобы исключить потенциально опасные ситуации в этих случаях, в версии 8.2 реализован безопасный режим работы кода на встроенном языке. Его рекомендуется включать при выполнении потенциально опасного кода на сервере.
Начиная с версии 8.2 в глобальном контексте реализован метод УстановитьБезопасныйРежим(<БезопасныйРежим>), позволяющий включить (истина) или выключить (ложь) безопасный режим, и метод БезопасныйРежим(), позволяющий проверить, включен или выключен безопасный режим.
В безопасном режиме ( значение истина) действуют следующие ограничения:
- привилегированный режим отменяется, если он был установлен,
- попытки перейти в привилегированный режим игнорируются,
- запрещены операции с COM-объектами,
- запрещена загрузка и подключение внешних компонентов,
- запрещен доступ к файловой системе, кроме временных файлов,
- запрещен доступ к Интернету.
Работа расширения в безопасном режиме
Если при старте «1С:Предприятия» ваше расширение успешно применилось к конфигурации, это еще не гарантия того, что все расширяющие методы, которые находятся в расширении, будут выполняться. Это связано с безопасностью.
В обычном режиме исполнения встроенного языка будут расширяться все методы конфигурации – и клиентские, и серверные.
Если же прикладное решение работает в файловом варианте (как в нашем случае) или в клиент-серверном варианте без профилей безопасности, то при применении расширения в безопасном режиме исполнения встроенного языка будут расширяться только клиентские методы и серверные обработчики форм, которые установлены через панель свойств. К остальным серверным методам (в т. ч. и к аннотированным серверным методам модулей) расширение применяться не будет.
Стандартно расширение создается с установленным флажком Безопасный режим :
Рис 1. Установка безопасного
режима в свойствах расширения
Чтобы расширение модуля заработало, нужно снять у него флажок Безопасный режим в списке расширений.
Если же ваше прикладное решение работает в клиент-серверном варианте, то возможность расширения серверных модулей регулируется профилем безопасности. Имя профиля безопасности задается здесь же, в списке расширений, в колонке Безопасный режим, имя профиля безопасности (см. рис.1). В самом профиле безопасности вы можете или разрешить расширение для всех серверных модулей, а исключения перечислить в свойстве Недоступные для расширения модули, или просто перечислить все разрешенные расширения модулей в свойстве Доступные для расширения модули.
Читайте также: