Під час запуску програми Завантаження документів під звичайним користувачем виникає помилка "Встановлений безпечний режим. Виконання операції заборонено".

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

Введіть назву групи та позначте галочками доступні користувачам цієї групи ролі -

  • Інтерактивне відкриття зовнішніх звітів та обробок
  • Використання додаткових звітів та обробок

Натисніть Записати та закрити


Поверніться до меню Користувачі та виберіть зі списку співробітника, який буде працювати з програмою Завантаження документів. Натисніть Права доступу. У списку профілів позначте раніше створений профіль. Натисніть Записати.


Щоб користувачі могли запустити обробку, рекомендується додати Завантаження документів до списку зовнішніх обробок. Для цього в меню Адміністрування / Друковані форми та обробки / Додаткові звіти та обробкистворіть нову обробку. Вкажіть шлях до файлу "ЗагрузкаДокументов.epf" та призначте ім'я. Вкажіть розміщення обробки в меню, звідки користувач зможе запустити її надалі, наприклад, виберіть меню Довідники

Натиснувши Швидкий доступ, ви вказуєте, кому з користувачів доступна обробка:


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


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


Достатньо зняти прапор із опції "Використовуються профілі безпеки".


Після цього програма запускатиметься успішно.

На прикладі «Керування торгівлею 11.3» розглянемо простий процес підключення зовнішньої друкованої форми. Також розглянемо особливості нової системи безпеки.

швидкий перехід

Попередні дії

Для початку слід увімкнути функціоналабо перевірити його доступність

1. Заходимо під повними правами до інформаційної бази.

2. Заходимо в меню «НСІ та адміністрування»/Блок «Адміністрування»/Команда «Друкарські форми,звіти та обробки».

Додавання

У розділі, що відкрився:

Додаємо обробку за кнопкою «Створити» (це важливо) або «Оновлюємо!» існуючу:

  • Виділити її у списку (якщо не виділено чи порожньо, команда не спрацює, але нічого не скаже).
  • Натиснути кнопку "Завантажити з файлу".

Після появи для 1С у зовнішній обробці нових конфігураціях з'явилися перевірки безпеки.

Слід встановлювати тільки обробки створені самостійно або отримані по відомих каналах зв'язку (не з пошти, тільки з сайту з сертифікатом, що діє, або наданим працівниками розробника, підтвердженим ним по телефону).

Якщо в обробці все прописано розробником, то буде встановлено «Розміщення» — об'єкти, в яких обробка буде задіяна, з'явиться команда(и).
Для роботи достатньо натиснути «Записати та закрити».

Перевірка

Відразу після цього в залежності від виду обробки:

  • Друкована форма стає доступною при відкритті документа або з його списку (для вже відкритої при повторному відкритті) на кнопку «Друк».
  • Обробки доступні в розділах «Додаткові обробки» у кожній підсистемі
  • Обробка заповнення за кнопкою «Заповнити» списку або головної командної панелі форми об'єкта.

Для вищевказаної обробки запуск виглядатиме ось так:

Якщо документ новий, його слід записати, механізм зовнішніх обробок вас попередить про це:

Подальша поведінка залежить від закладеного функціоналу: можливе відкриття форми або проста обробка даних.

Попередження безпеки в 1С

У нових релізах платформи та конфігураціях посилився захист від запуску шкідливих програм.

В обробці може викликатись запуск Excel для завантаження, у цьому випадку нова підсистема безпеки також попередить вас:

При цьому код обробника переривається.

У випадку, якщо ви натиснете «Так», система попросить вас повторно викликати команду:

Для користувача інформаційної бази можна вимкнути захист від небезпечних дій через «Конфігуратор»:

З режиму «Підприємство» змінити це не можна, можливо, так зроблено спеціально, можливо з'явиться після оновлення.

Також слід звернути увагу, що якщо обробка використовує Excel, вона має запускати в небезпечному режимі (так було і до введення нової системи, це працює паралельно):

"Неможливо завантажити MS EXCEL!!!" «Встановлено безпечний режим. Виконання операції заборонено»

У зовнішніх обробках це виглядає так:

Розробнику слід у внутрішньому описі обробки встановити його в «Брехню», тоді все буде нормально:

Функція ВідомостіЗовнішнійОбробці() Експорт ПараметриРеєстрації = Новий Структура; ПараметриРеєстрації.Вставити("БезпечнийРежим", Брехня);

При оновленні конфігурації також з'явився попереджувальний текст про джерело, з якого було отримано конфігураційний файл:

Програмне відкриття зовнішньої обробки здійснюється за допомогою об'єкта глобального контексту. ЗовнішніОбробкиМенеджер. Для кожного режиму роботи платформи 1С (режим звичайної програми та режим керованого додатка) використовуються різні методи об'єкта для роботи із зовнішніми обробками.

Запуск зовнішньої обробки в режимі звичайної програми

У звичайному додатку необхідно використовувати метод Створити об'єкта Зовнішні Обробки, в який передається повне ім'я файлу зовнішньої обробки. Метод повертає об'єкт типу ЗовнішняОбробка, цей об'єкт і є зовнішня обробка, що відкривається. Якщо потрібно відкрити форму зовнішньої обробки, то в отриманого об'єкта викликаємо метод ОтриматиФорму(), який поверне основну форму, а потім викликаємо метод Відкрити() для її відкриття.


Обробка = ЗовнішніОбробки.Створити(ПовнеІм'яФайлу);
Обробка.ОтриматиФорму().Відкрити();

У зовнішніх обробках основною формою завжди має бути звичайна, а керована додатковою, інакше не працюватиме метод ОтриматиФорму() в режимі звичайного додатка.

Запуск зовнішньої обробки в режимі керованої програми

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

&На сервері
Функція ОтриматиІм'яЗовнішньоїОбробки(ДвійковіДані)
АдресаВчасномуСховище = ПоміститиВчаснеСховище(ДвійковіДані);
Повернення ЗовнішніОбробки.Підключити(АдресаВременномуСховище);
КінецьФункції

&На Клієнті
Повне ім'я файлу = ""; // Повне ім'я зовнішнього файлу обробки.
ДаніФайла = Новий ДвійковіДані(ПовнеІм'яФайлу);
Ім'яЗовнішньоїОбробки = ОтриматиІм'яЗовнішньоїОбробки(ДаніФайлу);
ВідкритиФорму("ЗовнішняОбробка." + Ім'яЗовнішньоїОбробки + ".Форма");

Безпечний режим для зовнішніх обробок

Методи Створити() та Підключити() об'єкти ЗовнішніОбробки мають вхідний параметр БезпечнийРежим - ознака підключення зовнішньої обробки в безпечному режимі. Якщо параметр не вказано, підключення буде здійснено у безпечному режимі.
Безпечний режим роботи призначений захисту системи від виконання на сервері «ненадійного» програмного коду. Потенційну небезпеку становлять зовнішні обробки або програмний код, що вводиться користувачем для використання у методах Виконати() та Обчислити().
У безпечному режимі накладаються такі обмеження:
  • привілейований режим скасовується, якщо його було встановлено;
  • спроби переходу до привілейованого режиму ігноруються;
  • заборонені операції із COM-об'єктами;
  • заборонено завантаження та підключення зовнішніх компонентів;
  • заборонено доступ до файлової системи (крім тимчасових файлів);
  • заборонено доступ до Інтернету.
Обробки, відкриті інтерактивно, виконуються не в безпечному режимі, тому рекомендується реалізація механізму відкриття зовнішніх обробок у безпечному режимі, а також на рівні прав заборонити користувачеві інтерактивне відкриття зовнішніх обробок.
Для заборони інтерактивного відкриття обробок у всіх ролях, призначених користувачеві, необхідно зняти право "Інтерактивне відкриття зовнішніх обробок" (див. рис. 1).
Малюнок 1. Права інтерактивного відкриття зовнішніх обробок/звітів
Право "Інтерактивне відкриття зовнішніх обробок" ніяк не впливає на об'єкт Зовнішні Обробки.

Програмне відкриття зовнішніх звітів, аналогічно зовнішнім обробкам, слід використовувати об'єкт глобального контексту Зовнішні Звіти, який має тип ЗовнішніЗвітиМенеджер.

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

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

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

Створюємо профіль.
У консолі кластера створюємо профіль безпеки, в якому встановлюємо прапори "Може використовуватись як профіль безпеки безпечного режиму"та " у розділі "Дозволений повний доступ:" "До привілейованого режиму".

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

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

З виходом платформи 8.3.9.2033 з'явився новий механізм «Захист від небезпечних дій».

Завдяки цьому нововведенню 1С-ка тепер на відкриття обробки (і не тільки) стала лаятися:

Попередження безпеки

Відкривається "Моя зовнішня обробка" з файлу "Моя_Зовнішня_Обробка.epf"

Рекомендується звертати увагу на джерело, з якого отримано цей файл. Якщо з джерелом немає домовленості про створення додаткових модулів, або є сумніви у вмісті файлу, то його не рекомендується відкривати, оскільки це може зашкодити комп'ютеру та даним.

Дозволити відкривати цей файл?

Так 1С вирішила боротися із шкідливим кодом!

Звідки братиметься цей «шкідливий код» на підприємстві поки що загадка)

До потенційно небезпечних дій віднесли:

  • Завантаження зовнішнього звіту, обробки чи розширення конфігурації.
  • Завантаження або оновлення конфігурації/розширення.
  • Доступ із зовнішнього звіту/обробки або розширення до таких можливостей:
  • Виконання команди операційної системи.
  • Керування користувачами (запис або видалення інформації про користувача інформаційної бази).
  • Виклик методу Підключити менеджера зовнішніх обробок (звітів).
  • Виклик методу Розширення Конфігурації. Записати ().
  • Робота із COM-об'єктами.

Як же це «диво» вимкнути?

Для цього необхідно запустити 1С Підприємство як конфігуратор.
Виберіть «Адміністрування» — «Користувачі».
У вікні наших користувачів, що відкрилося, потрібно відкрити вікно налаштування користувача і на закладці «Основні» прибрати пташку «Захист від небезпечних дій»

Є й інші способи вимкнути це:

Реалізовано можливість вказати список інформаційних баз, під час роботи з якими захист від небезпечних дій вимикатиметься.
За цю функцію відповідає параметр DisableUnsafeActionProtection у файлі conf.cfg, який дозволяє вимкнути механізм захисту від небезпечних дій для всіх користувачів певних інформаційних баз, рядки з'єднання яких задовольняють маскам, зазначеним у параметрі DisableUnsafeActionProtection.

У цьому параметрі можна вказати кілька масок, що розділяються символом «;», наприклад:

DisableUnsafeActionProtection=test_.*;stage_.*;

Крім цього захист від небезпечних дій користувача можна відключити програмно, для чого є такі параметри та властивості:

  • Параметр ЗахистВід НебезпечнихДій методів Підключити() менеджерів зовнішніх обробок (звітів)
  • Властивість ЗахистВідНебезпечнихДій об'єкта РозширенняКонфігурації перед викликом методу Записати() цього об'єкта.

Перевірка необхідності використання захисту від небезпечних дій виконується так:

1. Якщо у поточного користувача скинуто прапорець «Захист від небезпечних дій», захист вважається вимкненим.

2. Якщо рядок з'єднання з інформаційною базою відповідає одному з шаблонів, вказаних у параметрі DisableUnsafeActionProtection файлу conf.cfg, то захист вважається вимкненим.

3. Якщо захист явно вимкнено за допомогою параметра ЗахистВід Небезпечних Дій зовнішньої обробки або звіту.

4. Якщо захист явним чином вимкнено за допомогою властивості розширення ЗахистВід Небезпечних Дій.