Как добавить право на открытие внешних обработок. Установлен безопасный режим
Программное открытие внешней обработки осуществляется с помощью объекта глобального контекста ВнешниеОбработки, который имеет тип ВнешниеОбработкиМенеджер . Для каждого режима работы платформы 1С (режим обычного приложения и режим управляемого приложения) используются различные методы объекта для работы с внешними обработками.
Запуск внешней обработки в режиме обычного приложения
В обычном приложении необходимо использовать метод Создать() объекта ВнешниеОбработки, в который передается полное имя файла внешней обработки. Метод возвращает объект типа ВнешняяОбработка , этот объект и есть открываемая внешняя обработка. Если требуется открыть форму внешней обработки, то у полученного объекта вызываем метод ПолучитьФорму(), который вернет основную форму, а затем вызываем метод Открыть() для её открытия.Обработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
Обработка.ПолучитьФорму().Открыть();
Во внешних обработках основной формой всегда должна быть обычная, а управляемая дополнительной, иначе не будет работать метод ПолучитьФорму() в режиме обычном приложения.
Запуск внешней обработки в режиме управляемого приложения
В режиме управляемых форм появляется разделение алгоритма по контексту выполнения. На клиенте получаем двоичные данные по полному имени файла внешней обработки. Передаем полученные двоичные данные на сервер и помещаем их во временное хранилище. Далее необходимо вызвать метод Подключить() объекта ВнешниеОбработки, в который передается адрес на временное хранилище. Метод возвращает имя подключенной внешней обработки. Возвращаем имя внешней обработки на клиент, формируем строковый путь к форме обработки и с помощью метода ОткрытьФорму() открываем форму внешней обработки.
&НаСервере
Функция ПолучитьИмяВнешнейОбработки(ДвоичныеДанные)
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ВнешниеОбработки.Подключить(АдресВоВременномХранилище);
КонецФункции
&НаКлиенте
ПолноеИмяФайла = ""; // Полное имя файла внешней обработки.
ДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
ИмяВнешнейОбработки = ПолучитьИмяВнешнейОбработки(ДанныеФайла);
ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");
Безопасный режим для внешних обработок
Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим - признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
В безопасном режиме накладываются следующие ограничения:
- привилегированный режим отменяется, если он был установлен;
- попытки перехода в привилегированный режим игнорируются;
- запрещены операции с COM-объектами;
- запрещена загрузка и подключение внешних компонентов;
- запрещен доступ к файловой системе (кроме временных файлов);
- запрещен доступ к Интернету.
Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право "Интерактивное открытие внешних обработок" (см. рисунок 1).
Рисунок 1. Права интерактивного открытия внешних обработок/отчетов |
Программное открытие внешних отчетов, аналогично внешним обработкам, только следует использовать объект глобального контекста ВнешниеОтчеты, который имеет тип ВнешниеОтчетыМенеджер .
В этой статье речь пойдет о настройке прав доступа пользователей к объектам системы 1С.
В 1С 8для управления доступа пользователей используется отдельный объект метаданных, который называется Роли.
Обратите внимание! Эта статья написана в помощь программистам. Настройка прав в пользовательском режиме на примере 1С Бухгалтерия рассмотрена в .
Роль определяет набор прав пользователя, которые он имеет. Механизм ролей очень похож на механизмы прав Windows Active Directory. Для каждого из объектов (справочники, документы) разработчик устанавливает свой набор прав — чтение/запись/добавление/изменение/…
Набор доступных прав — совокупность всех разрешений в ролях пользователя .
Если открыть объект метаданных Роль, мы можем увидеть следующую картину:
У объекта есть две закладки — Права и Шаблоны ограничений. Права — основная закладка, Шаблоны — вкладка для настройки прав на уровне записи в 1С (RLS ). Это очень важная тема, её я постараюсь описать в будущих статьях.
Будем рассматривать только вкладку Права .
- Объекты — список , на которые будут устанавливаться права.
- Права — список возможных для установки настроек прав.
- Ограничение доступа к данным — поля роли для настройки
Следует обратить внимание на галочки в нижней части:
- Устанавливать права для новых объектов — если флаг установлен у роли, на новые объекты метаданных будут автоматически установлены разрешающие права. Рекомендую установить, если Вы часто забываете установить права на новые объекты.
- Устанавливать права для реквизитов и табличных частей по умолчанию — флаг, при установке которого реквизиты и табличные части будут наследовать права владельца(справочника, документа и т.д.)
- Независимые права подчиненных объектов — если флаг установлен, то система при определении права на объект конфигурации учтёт права на родительский объект
Настройки прав на всю конфигурацию
Если открыть Роль и кликнуть на корень конфигурации, мы увидим следующие настройки:
Подробнее о каждом из прав на всю конфигурацию :
Получите 267 видеоуроков по 1С бесплатно:
- Администрирование — администрирование информационной базы (требуется наличие права «Администрирование данных»)
- Администрирование данных — право на административные действия над данными
- Обновление конфигурации базы данных — право на
- Монопольный режим — использование монопольного режима
- Активные пользователи — просмотр списка активных пользователей
- — журнал регистрации
- — право запуска тонкого клиента
- — право запуска веб-клиента
- Толстый клиент — право роли запуска толстого клиента
- Внешнее соединение — право запуска внешнего соединения
- Automation — право на использование automation
- Режим «Все функции» — в режиме управляемого приложения
- Сохранение данных пользователя — разрешение или запрет на сохранение данных пользователя (настроек, избранного, истории). Особенно актуально для 1С управляемых форм.
- Интерактивное открытие внешних обработок — открытие внешних обработок
- Интерактивное открытие внешних отчетов — открытие внешних отчетов
- Вывод — вывод на печать, запись и копирование в буфер обмена
Настройка прав 1С 8.2 на другие объекты метаданных
Для остальных основных объектов (справочники, константы, документы, регистры…), набор прав у роли достаточно стандартен:
- Чтение — чтение (программное)
- Добавление — добавление (программное)
- Изменение — изменение (программное)
- Удаление — удаление (программное)
- Просмотр — просмотр
- Интерактивное добавление — интерактивное добавление
- Редактирование — редактирование
- Интерактивная пометка удаления — интерактивная пометка на удаление
- Интерактивное снятие пометки удаления — снятие пометки на удаление
- Интерактивное удаление помеченных — удаление помеченных объектов
- Ввод по строке — использование режима ввода по строке
- Интерактивное удаление — непосредственное удаление (shift +del)
Права только для документов :
- Интерактивное проведение — проведение
- Отмена проведения — отмена проведения документов
- Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме
- Интерактивная отмена проведения — интерактивная отмена проведения
- Интерактивное изменение проведенных — редактирование проведенного документа. Если право у роли не установлено, то пользователь не может удалить проведенный документ, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра
P.S.
Если у Вас все же не получилось разобраться в ролях пользователей, Вы можете заказать .
Видео с примером настройки прав в 1С бухгалтерии 3.0:
Как разрешить интерактивное открытие внешних отчетов и обработок? (1С:Бухгалтерия 8.3. редакция 3.0)
2016-12-08T15:52:26+00:00Если при открытии внешней обработки или отчёта через меню Файл->Открыть
появляется ошибка "Нарушение прав доступа":
То вариантов для использования обработки всего два.
Первый вариант, это регистрация обработки в справочнике "Дополнительные отчёты и обработки" (об этом ).
Но, что если обработка не поддерживает такую регистрацию? А обработка очень полезная и открыть её очень хочется.
В этом случае можно пойти по второму варианту и вновь включить возможность открытия обработок в базе через меню Файл->Открыть.
Инструкция для этого ниже.
Зайдите в конфигуратор базы:
Выполните команду меню "Администрирование"->"Пользователи":
Двойным щелчком откройте своего пользователя:
Перейдите на закладку "Прочие", установите галку "Интерактивное открытие внешних отчетов и обработок" и нажмите "ОК":
Теперь закройте конфигуратор и базу (если она у вас была открыта).
Вновь зайдите в базу и попытайтесь открыть отчёт через меню "Файл"->"Открыть".
Теперь всё получится
Есть нюансы...
Способ, который я описал в этой инструкции на 100% рабочий, но при его использовании право на "Интерактивное открытие внешних обработок" спустя время может снова пропасть.
Чтобы этого избежать установите эту же галку в режиме 1С:Предприятия в текущем для вашего пользователя профиле групп доступа.
При использовании этого способа могут возникать различные нюансы (например, если вы используете встроенный профиль, который нельзя редактировать), поэтому подробной инструкции для этого случая я приводить не буду.
С уважением, Владимир Милькин (преподаватель и разработчик ).
Бывает, что для работы необходимо воспользоваться внешней обработкой или отчетом, но не всегда это сразу удается. Иногда при попытке открыть внешнюю обработку либо отчет с помощью пункта меню «Файл» и далее - «Открыть» возникает сообщение об ошибке, заключающейся в нарушении прав доступа.
Но сначала рассмотрим, как вообще открываются внешние отчеты и обработки в «1С:Бухгалтерии 8.3 » версии 3.0. Обычно они представляют собой скачанный из Интернета или полученный другим способом архив. После того, как он будет сохранен, например, на рабочий стол, с помощью двойного щелчка мы сможем увидеть его содержимое.
Действия для обычного интерфейса:
- Нажимаем на нужный файл правой кнопкой мышки, выбираем пункт контекстного меню «Копировать».
- Возвращаемся на рабочий стол, нажимаем правой кнопкой на свободное место и выбираем «Вставить» (или просто перетаскиваем файл из архива на рабочий стол).
- Можно также извлечь файл из архива сразу в нужное место на диске (в нашем примере это рабочий стол).
- Теперь выбираем файл с обработкой на рабочем столе и нажимаем «Открыть».
- Обработка будет открыта в программе, и ею можно будет пользоваться.
Действия для управляемого интерфейса (например, «Такси»)
- Открываем непосредственно из файла.
- В меню выбираем пункт «Файл», далее - «Открыть».
- В открывшемся окне переходим на рабочий стол, выбираем файл обработки и нажимаем «Открыть».
Для большего удобства можно создать специальную папку для обработок и все их хранить в ней.
Если же открыть обработку или отчет не получается, можно воспользоваться одним из двух вариантов действий.
Первый способ
Можно зарегистрировать обработку в справочнике, называющемся «Дополнительные отчеты и обработки». Итак, регистрируем обработку в базе.
- Заходим в раздел администрирования, выбираем из списка пункт печатных форм, отчетов и обработок.
- В появившемся окне ставим галочку в пункте «Дополнительные отчеты и обработки» и открываем ссылку с аналогичным названием.
- В новом окне нажимаем на «Создать».
- Читаем предупреждение безопасности и нажимаем «Продолжить».
- В следующем окне выбираем место нахождения файла с обработкой и нажимаем «Открыть».
Важно!
Если на этом этапе появится ошибка с текстом: «Невозможно подключить дополнительную обработку из файла...», придется воспользоваться вторым способом, описанным ниже.
- Если ошибки не возникло, находим в «Командах» пункт «Размещение».
- В окне «Разделы командного интерфейса» отмечаем галочкой раздел операций.
- В таблице находим «Быстрый доступ» и открываем его.
- Выбираем всех пользователей и нажимаем «ОК».
- Нажимаем кнопку «Записать и закрыть».
Обработка успешно зарегистрирована. Чтобы ее открыть, потребуется зайти в раздел операций, выбрать пункт дополнительных обработок, выделить нужную и нажать на «Выполнить».
Второй способ
Если обработка не поддерживает описанную в первом варианте регистрацию, можно поступить по-другому, а именно: снова включить возможность открывать обработки в базе с помощью меню «Файл» правой кнопкой мышки «Открыть».
- Заходим в конфигуратор базы.
- Выбираем в меню «Администрирование», далее - «Пользователи».
- Двойной щелчок по нужному пользователю.
- Переходим на закладку с названием «Прочие».
- Устанавливаем галочку на «Интерактивном открытии внешних отчетов и обработок».
- Нажимаем «ОК».
- Закрываем конфигуратор, а также, если она была открыта, базу.
- Снова заходим в базу и открываем нужный нам отчет в меню «Файл» с помощью команды «Открыть».
Дело в том что при использовании клиент-серверного варианта работы 1С внешние обработки/отчеты открываются в безопасном режиме, в котором запрещено использование привилегированного режима. А привилегированный режим используется очень часто в типовых конфигурациях: формирование печатных форм, различные служебные проверки (регистрация обменов) и т.д. В результате, даже используя обычный отчет на СКД без формы (по умолчанию используется общая форма "ФормаОтчета") и сохраняя пользовательские настройки отчета (в соответствующий справочник), вы получите ошибку о недостаточности прав доступа на различные константы и параметры сеанса, используемые в служебных целях после строки УстановитьПривилегированныйРежим(Истина) ;
"Правильным" решением будет подключение внешних обработок и отчетов через механизмы БСП "Дополнительные отчеты и обработки" с отключением безопасного режима либо добавлением разрешений (по-моему, с версии БСП 2.2.2.1). Но если по каким-то причинам необходимо использование именно внешних файлов отчетов/обработок, то можно настроить профиль безопасности кластера, используемого в качестве профиля безопасности безопасного режима для конкретной информационной базы.
Хотел бы сразу заметить, что такой вариант не является предпочтительным, но в силу разных обстоятельств можно его использовать в таком упрощенном виде. Например, у меня несколько баз в разных городах, общая локальная сесть с жёстко ограниченными правами, закрытыми USB и т.п., где-то используется Бухгалтерия 2.0, а где-то 3.0, почти все отчеты делаю средствами СКД без форм, что бы они открывались в обоих версиях. Обслуживать все эти отчеты для разных версий и разных баз дело трудоёмкое и бесперспективное, т.к. в планах есть переход на единую конфигурацию и базу...
Создаем профиль.
В консоли кластера создаём профиль безопасности, в котором устанавливаем флаги "Может использоваться как профиль безопасности безопасного режима"
и " в разделе "Разрешен полный доступ:" "к привилегированному режиму".
Во многих случаях использования отчетов и простых обработок данный метод будет применим. Для более сложных ситуаций описывать процесс нет смысла, т.к. он изложен в документации (возможность в настраивать профили безопасности для конкретных внешних файлов через указание его хеш-суммы и т.п.).
P.S. Думал что профили безопасности функционируют только при использовании лицензий на платформу и сервер уровня КОРП, но данный функционал отрабатывает и на платформе 1С:Предприятие 8.3 (условно можно назвать ПРОФ по аналогии с типовыми конфигурациями Базовая/ПРОФ/КОРП)