Открытие внешних обработок в 1с 8.3. Павел чистов

Настройка профиля пользователя 1С для запуска внешней обработки

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

Настройка минимальных прав пользователя 1С для запуска внешней обработки

Одним из способов назначения дополнительных прав для пользователя 1С является создание дополнительного профиля пользователя с необходимыми правами. Таким образом, мы не правим изначальные настройки пользователя 1С, а дополняем их необходимыми правами, что позволит избежать лишних ошибок и перепроверок всех прав пользователя со стороны администратора. Править стандартные профили пользователей 1С не рекомендуется! Запускаем 1С предприятие от пользователя с правами «Администратор» и выполняем следующие действия:

1. Переходим в раздел «Администрирование», находим пункт в «Настройки программы» - «Настройки пользователей и прав».

3. В открывшемся окошке видим список всех профилей 1С для нашей базы. Создаем новый профиль пользователя 1с, нажав на кнопку «Создать».

4. В открывшемся окне в строке «Наименование» назовем наш профиль, например, «ЭДО СБИС».

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

Права пользователя 1С

Обязательные права пользователя для корректной работы обработки

Использование дополнительных отчетов и обработок Необходимо для запуска внешней обработки СБИС
Чтение дополнительных сведений Необходимо для чтения статусов электронных документов (отправлено, утверждено, отклонено и пр.)
Чтение данных бухгалтерии
Чтение базовой нормативно-справочной информации Необходимо для формирования реестра документов и отображения данных документа во внешней обработке СБИС
Вывод на принтер, в файл, в буфер обмена Необходимо для отображения печатной формы документа во внешней обработке СБИС

Дополнительные права пользователя

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

Примечание: Для корректной работы статусов электронных документов можно не назначать права на чтение и изменение дополнительных сведений, однако необходимо в конфигурационном файле поменять метод хранения статусов:«Статусы_Регистры» на «Статусы_ДБФ». В этом случае статусы электронных документов будут записываться в *.dbf-файле, а не в дополнительных сведениях документа 1С.

5. После выбора прав пользователя необходимо нажать на кнопку «Записать и закрыть».

6. Снова переходим в раздел «Администрирование», находим пункт в «Настройки программы» - «Настройки пользователей и прав», далее переходим в раздел «Пользователи».

7. В открывшемся списке выбираем пользователя, который будет пользоваться нашей обработкой. Открываем его профиль двойным щелчком мыши. Для того, чтобы нашему пользователю подключить созданный ранее профиль, переходим в «Права доступа».

8. В открывшемся окошке находим в списке наш созданный профиль и подключаем его, отметив галочкой. После этого нажимаем на кнопку «Записать», а затем на кнопку «Записать и закрыть» в профиле пользователя.

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

Добавление внешней обработки в дополнительные отчеты и обработки в 1С

Запускаем 1С предприятие от пользователя с правами «Администратор» и выполняем следующие действия:

1. Переходим в раздел «Администрирование», находим пункт в «Настройки программы» - «Печатные формы, отчеты и обработки».

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

При создании дополнительной обработки необходимо обратить внимание на 3 вещи:

1) Публикация обработки отвечает за видимость пользователями нашей обработки. Необходимо установить публикацию на «Используется».

2) Раздел «Быстрый доступ» отвечает за видимость пользователями внешней обработки в окне быстрого доступа. Зачастую у рядового пользователя 1С стоит запрет на открытие файлов в 1С. Добавление пользователей в данный раздел – гарантия того, что необходимый пользователь сможет воспользоваться нашей обработкой.

Для того, чтобы определить пользователей, необходимо один раз кликнуть мышкой на области, где написано слово «Нет», затем кликнуть в появившемся окне на многоточие. В появившемся окошке добавляем из левой части таблицы в правую тех пользователей, которые должны использовать дополнительную обработку.

3) В разделе «Размещение» необходимо определить разделы, в которых будет располагаться меню быстрого доступа для запуска внешней обработки. В появившемся окне выберите, необходимые разделы, отметив их галочками.

4. Для того, чтобы изменения вступили в силу, необходимо нажать на кнопку «Записать и закрыть».

5. Следующим шагом необходимо настроить список быстрого доступа к внешней обработке для каждого пользователя, который будет использовать нашу обработку. Для этого необходимо авторизоваться под пользователем, затем перейти в любой раздел, в который мы указали в размещении обработки (п. 3.4), затем перейти в «Сервис» - «Дополнительные обработки».

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

Для запуска пользователем внешней обработки, необходимо перейти в предопределенный раздел, «Сервис» – «Дополнительные обработки», выбрать внешнюю обработку и нажать на кнопку «Выполнить».

Дело в том что при использовании клиент-серверного варианта работы 1С внешние обработки/отчеты открываются в безопасном режиме, в котором запрещено использование привилегированного режима. А привилегированный режим используется очень часто в типовых конфигурациях: формирование печатных форм, различные служебные проверки (регистрация обменов) и т.д. В результате, даже используя обычный отчет на СКД без формы (по умолчанию используется общая форма "ФормаОтчета") и сохраняя пользовательские настройки отчета (в соответствующий справочник), вы получите ошибку о недостаточности прав доступа на различные константы и параметры сеанса, используемые в служебных целях после строки УстановитьПривилегированныйРежим(Истина) ;

"Правильным" решением будет подключение внешних обработок и отчетов через механизмы БСП "Дополнительные отчеты и обработки" с отключением безопасного режима либо добавлением разрешений (по-моему, с версии БСП 2.2.2.1). Но если по каким-то причинам необходимо использование именно внешних файлов отчетов/обработок, то можно настроить профиль безопасности кластера, используемого в качестве профиля безопасности безопасного режима для конкретной информационной базы.

Хотел бы сразу заметить, что такой вариант не является предпочтительным, но в силу разных обстоятельств можно его использовать в таком упрощенном виде. Например, у меня несколько баз в разных городах, общая локальная сесть с жёстко ограниченными правами, закрытыми USB и т.п., где-то используется Бухгалтерия 2.0, а где-то 3.0, почти все отчеты делаю средствами СКД без форм, что бы они открывались в обоих версиях. Обслуживать все эти отчеты для разных версий и разных баз дело трудоёмкое и бесперспективное, т.к. в планах есть переход на единую конфигурацию и базу...

Создаем профиль.
В консоли кластера создаём профиль безопасности, в котором устанавливаем флаги "Может использоваться как профиль безопасности безопасного режима" и " в разделе "Разрешен полный доступ:" "к привилегированному режиму".

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

P.S. Думал что профили безопасности функционируют только при использовании лицензий на платформу и сервер уровня КОРП, но данный функционал отрабатывает и на платформе 1С:Предприятие 8.3 (условно можно назвать ПРОФ по аналогии с типовыми конфигурациями Базовая/ПРОФ/КОРП)

Как разрешить интерактивное открытие внешних отчетов и обработок? (1С:Бухгалтерия 8.3. редакция 3.0)

2016-12-08T15:52:26+00:00

Если при открытии внешней обработки или отчёта через меню Файл->Открыть

появляется ошибка "Нарушение прав доступа":

То вариантов для использования обработки всего два.

Первый вариант, это регистрация обработки в справочнике "Дополнительные отчёты и обработки" (об этом ).

Но, что если обработка не поддерживает такую регистрацию? А обработка очень полезная и открыть её очень хочется.

В этом случае можно пойти по второму варианту и вновь включить возможность открытия обработок в базе через меню Файл->Открыть.

Инструкция для этого ниже.

Зайдите в конфигуратор базы:

Выполните команду меню "Администрирование"->"Пользователи":

Двойным щелчком откройте своего пользователя:

Перейдите на закладку "Прочие", установите галку "Интерактивное открытие внешних отчетов и обработок" и нажмите "ОК":

Теперь закройте конфигуратор и базу (если она у вас была открыта).

Вновь зайдите в базу и попытайтесь открыть отчёт через меню "Файл"->"Открыть".

Теперь всё получится

Есть нюансы...

Способ, который я описал в этой инструкции на 100% рабочий, но при его использовании право на "Интерактивное открытие внешних обработок" спустя время может снова пропасть.

Чтобы этого избежать установите эту же галку в режиме 1С:Предприятия в текущем для вашего пользователя профиле групп доступа.

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

С уважением, Владимир Милькин (преподаватель и разработчик ).

При запуске программы Загрузка документов под обычным пользователем возникает ошибка "Установлен безопасный режим. Выполнение операции запрещено".

Эта сложность возникает т.к. для запуска внешней обработки недостаточно прав. Для настройки прав доступа зайдите в базу в режиме 1С Предприятие от имени Администратора и перейдите в раздел Настройки пользователей и прав / Профили групп доступа, нажмите Создать группу.

Введите название группы и отметьте галочками доступные пользователям этой группы роли -

  • Интерактивное открытие внешних отчетов и обработок
  • Использование дополнительных отчетов и обработок

Нажмите Записать и закрыть


Вернитесь в меню Пользователи и выберите из списка сотрудника, который будет работать с программой Загрузка документов. Нажмите Права доступа. В списке профилей отметьте созданный ранее профиль. Нажмите Записать .


Чтобы пользователи могли запустить обработку рекомендуется добавить Загрузку документов к списку внешних обработок. Для этого в меню Администрирование / Печатные формы и обработки / Дополнительные отчеты и обработки создайте новую обработку. Укажите путь к файлу "ЗагрузкаДокументов.epf" и присвойте имя. Укажите размещение обработки в меню, откуда пользователь сможет запустить ее в дальнейшем, например выберите меню Справочники

Нажав на пункт Быстрый доступ вы указываете, кому из пользователей доступна обработка:


После настройки нажмите Записать и закрыть . Для запуска обработки пользователям достаточно будет заново зайти в базу и открыть ее из меню доступа (в примере - Справочники) и нажать Выполнить .


Откройте Меню - Все функции.. . и найдите в списке параметр "Используются профили безопасности" .


Достаточно снять флаг с опции "Используются профили безопасности".


После этого программа будет запускаться успешно.

Программное открытие внешней обработки осуществляется с помощью объекта глобального контекста ВнешниеОбработки, который имеет тип ВнешниеОбработкиМенеджер . Для каждого режима работы платформы 1С (режим обычного приложения и режим управляемого приложения) используются различные методы объекта для работы с внешними обработками.

Запуск внешней обработки в режиме обычного приложения

В обычном приложении необходимо использовать метод Создать() объекта ВнешниеОбработки, в который передается полное имя файла внешней обработки. Метод возвращает объект типа ВнешняяОбработка , этот объект и есть открываемая внешняя обработка. Если требуется открыть форму внешней обработки, то у полученного объекта вызываем метод ПолучитьФорму(), который вернет основную форму, а затем вызываем метод Открыть() для её открытия.


Обработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
Обработка.ПолучитьФорму().Открыть();

Во внешних обработках основной формой всегда должна быть обычная, а управляемая дополнительной, иначе не будет работать метод ПолучитьФорму() в режиме обычном приложения.

Запуск внешней обработки в режиме управляемого приложения

В режиме управляемых форм появляется разделение алгоритма по контексту выполнения. На клиенте получаем двоичные данные по полному имени файла внешней обработки. Передаем полученные двоичные данные на сервер и помещаем их во временное хранилище. Далее необходимо вызвать метод Подключить() объекта ВнешниеОбработки, в который передается адрес на временное хранилище. Метод возвращает имя подключенной внешней обработки. Возвращаем имя внешней обработки на клиент, формируем строковый путь к форме обработки и с помощью метода ОткрытьФорму() открываем форму внешней обработки.

&НаСервере
Функция ПолучитьИмяВнешнейОбработки(ДвоичныеДанные)
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ВнешниеОбработки.Подключить(АдресВоВременномХранилище);
КонецФункции

&НаКлиенте
ПолноеИмяФайла = ""; // Полное имя файла внешней обработки.
ДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
ИмяВнешнейОбработки = ПолучитьИмяВнешнейОбработки(ДанныеФайла);
ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");

Безопасный режим для внешних обработок

Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим - признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
В безопасном режиме накладываются следующие ограничения:
  • привилегированный режим отменяется, если он был установлен;
  • попытки перехода в привилегированный режим игнорируются;
  • запрещены операции с COM-объектами;
  • запрещена загрузка и подключение внешних компонентов;
  • запрещен доступ к файловой системе (кроме временных файлов);
  • запрещен доступ к Интернету.
Обработки, открытые интерактивно, выполняются не в безопасном режиме, поэтому рекомендуется реализация механизма открытия внешних обработок в безопасном режиме, а так же на уровне прав запретить пользователю интерактивное открытие внешних обработок.
Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право "Интерактивное открытие внешних обработок" (см. рисунок 1).
Рисунок 1. Права интерактивного открытия внешних обработок/отчетов
Право "Интерактивное открытие внешних обработок" никак не влияет на объект ВнешниеОбработки.

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