Інтернет Windows Android

Як включити використання зовнішніх обробок. Як зняти заборону на відкриття зовнішніх обробок

Всім привіт. Через пошук нічого схожого не знайшов, якщо не правий - ткніте носом, буду вдячний.

БП 3.0 (3.0.59.54), платформа 8.3.10.2580. Є необхідність запустити обробку "УніверсальнийОбменДанниміXML". Вона входить в конфігурацію і її можна відкрити через "" але тільки під роллю адміністратора. Але є необхідність робити це під звичайним користувачем. Знімати з підтримки і правити права дуже не хочеться. Зберіг її як зовнішню, відключив перевірку прав доступу в коді, відкриваю під звичайним користувачем через меню "Файл" - все нормально відкривається. Само собою, це не є зручно і хочеться підключити її через "Додаткові". Ок, додаю опис через процедуру ПріСозданііНаСервере, підключаю, виводжу в інтерфейс користувача і .. отримую болт. Вікно обробки не відкривається. Вірніше відкривається на частку секунди і тут же закривається. Причому відбувається це незалежно від прав користувача, в тому числі і під адміністратором. Може хто підкаже, куди копати?

Код перевірки модуля форми:

&На сервері
Процедура ПріСозданііНаСервере (Відмова, СтандартнаяОбработка)

// Перевірка прав доступу повинна розташовуватися найпершою.
Якщо Чи не ПравоДоступа ( "Адміністрування", Метадані) Тоді
// ВизватьІсключеніе уст ( "ru \u003d" Використання обробки в інтерактивному режимі доступно тільки адміністратору. "");
КонецЕсли;

Код функції СведеніяОВнешнейОбработке

# Область ОпісаніеОбработкі
Функція СведеніяОВнешнейОбработке () Експорт
// Оголосимо змінну, в якій ми збережемо і повернемо "назовні" необхідні дані
ПараметриРегістраціі \u003d Новий Структура;

// Оголосимо ще одну змінну, яка нам буде потрібно нижче
МассівНазначеній \u003d Новий Масив;

// Перший параметр, який ми повинні вказати - це якийсь вид обробки системі повинна зареєструвати.
// Допустимі типи: ДополнітельнаяОбработка, ДополнітельнийОтчет, ЗаполненіеОб'екта, Звіт, ПечатнаяФорма, СозданіеСвязаннихОб'ектов
ПараметриРегістраціі.Вставіть ( "Вид", "ДополнітельнаяОбработка");

// Тепер нам необхідно передати у вигляді масиву імен, до чого буде підключена наша ВПФ
// Майте на увазі, що можна задати ім'я в такому вигляді: Документ. * - в цьому випадку обробка буде підключена до всіх документів в системі,
// які підтримують механізм ВПФ
МассівНазначеній.Добавіть ( "Подсістеми.Адміністрірованіе");
ПараметриРегістраціі.Вставіть ( "Призначення", МассівНазначеній);

// Тепер задамо ім'я, під яким ВПФ буде зареєстрована в довіднику зовнішніх обробок
ПараметриРегістраціі.Вставіть ( "Найменування", " універсальний обмін даними ");

// Задамо право обробці на використання безпечного режиму. Більш детально можна дізнатися в довідці до платформи (метод УстановітьБезопаснийРежім)
ПараметриРегістраціі.Вставіть ( "БезопаснийРежім", Брехня);

// Наступні два параметри грають більше інформаційну роль, тобто це те, що буде бачити користувач в інформації до обробки
ПараметриРегістраціі.Вставіть ( "Версія", "1.0");
ПараметриРегістраціі.Вставіть ( "Інформація", "Обробка для обміну даними між довільними базами 1С");

// Створимо таблицю команд (докладніше дивимося нижче)
ТабліцаКоманд \u003d ПолучітьТабліцуКоманд ();

// Додамо команду в таблицю
ДобавітьКоманду (ТабліцаКоманд, "Універсальний обмін даними XML"," УправляемаяФорма "," ОткритіеФорми ");

// Збережемо таблицю команд в параметри реєстрації обробки
ПараметриРегістраціі.Вставіть ( "Команди", ТабліцаКоманд);

// Тепер повернемо системі наші параметри
Повернення ПараметриРегістраціі;
КонецФункціі

Функція ПолучітьТабліцуКоманд ()

// Створимо порожню таблицю команд і колонки в ній
Команди \u003d Новий ТабліцаЗначеній;

// Як буде виглядати опис друкованої форми для користувача
Команди.Колонкі.Добавіть ( "Подання", Новий ОпісаніеТіпов ( "Рядок"));

// Ім'я нашого макета, що б могли відрізнити викликану команду в обробці друку
Команди.Колонкі.Добавіть ( "Ідентифікатор", Новий ОпісаніеТіпов ( "Рядок"));

// Тут задається, як повинна викликатися команда обробки
// Можливі варіанти:
// - ОткритіеФорми - в цьому випадку в колонці ідентифікатор має бути зазначено ім'я форми, яке повинна буде відкрити система
// - ВизовКліентскогоМетода - викликати клієнтську експортну процедуру з модуля форми обробки
// - ВизовСерверногоМетода - викликати серверну експортну процедуру з модуля об'єкта обробки
Команди.Колонкі.Добавіть ( "Використання", Новий ОпісаніеТіпов ( "Рядок"));

// наступний параметр вказує, чи потрібно показувати сповіщення при початку і завершення роботи обробки. Не має сенсу при відкритті форми
Команди.Колонкі.Добавіть ( "ПоказиватьОповещеніе", Новий ОпісаніеТіпов ( "Булево"));

// Для друкованої форми повинен містити рядок ПечатьMXL
Команди.Колонкі.Добавіть ( "Модифікатор", Новий ОпісаніеТіпов ( "Рядок"));
Повернення Команди;
КонецФункціі

Процедура ДобавітьКоманду (ТабліцаКоманд, Подання, Ідентифікатор, Використання, ПоказиватьОповещеніе \u003d Брехня, Модифікатор \u003d "")
// Додаємо команду в таблицю команд по переданому опису.
// Параметри і їх значення можна подивитися в функції ПолучітьТабліцуКоманд
НоваяКоманда \u003d ТабліцаКоманд.Добавіть ();
НоваяКоманда.Представленіе \u003d Подання;
НоваяКоманда.Ідентіфікатор \u003d Ідентифікатор;
НоваяКоманда.Іспользованіе \u003d Використання;
НоваяКоманда.ПоказиватьОповещеніе \u003d ПоказиватьОповещеніе;
НоваяКоманда.Модіфікатор \u003d Модифікатор;

КонецПроцедури
# КонецОбласті

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

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

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

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

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


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


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

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


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


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


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


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

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

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

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


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

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

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

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

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

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

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

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

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

Починаючи з нових релізів, компанія 1С: спробувала щодо усунення хвилі вірусів-кріптовальщіков, шляхом обмеження запуску зовнішніх звітів і обробок для всіх користувачів конкретної облікового системи.

Звичайно, це викликало хвилю нерозуміння з боку, як користувачів, так і керівного складу відділу ІТ (програмістів, адміністраторів).

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

Так, звичайно, при правильних налаштуваннях резервного копіювання, Частина даних можна врятувати, але що якщо у вашій компанії кожен день / годину / хвилину вводяться дані, відновити які, або не представляється можливим, або буде потрібно велике зусилля це зробити: людські ресурси, час, бюджет і т.д.

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

Зрозуміло, що це не влаштовує, ні як адміністративний склад організації, ні кінцевого користувача, в особі якого є завдання пов'язані з такими зовнішніми обробками.

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

Отже, що ж мається на увазі зробити:

  1. Встановити відповідальність на співробітника, який повинен запускати такі доробки, файли, звіти;
  2. Провести з цим працівником певний лікнеп для повного розуміння загроз і безпеки;
  3. Надати цьому співробітникові можливість запуску зовнішніх обробок в 1С:

Перші 2 пункту ми не зачіпаємо, тому що це на совісті адміністративного персоналу і співробітників IT департаменту компанії, а ось за пунктом 3 - можна скористатися інструкцією описаної нижче:

  1. Перш за все Вам потрібно доступ до конфігуратору 1С: користувача з повними правами;
  2. Запускаємо конфигуратор під користувачем з повними правами;
  3. Загалом меню (як правило він зверху) знаходимо пункт «Адміністрування» -\u003e »Користувачі»

4. Вибираємо змінюваного користувача:

Знімаємо галочку з «захист від небезпечних дій» і переходимо у вкладку інше і тут, якщо у даного користувача, Раніше не була встановлено роль «Інтерактивне відкриття зовнішніх форм і обробок », встановлюємо галочку:

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

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

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

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

Якщо при відкритті зовнішньої обробки або звіту через меню Файл-\u003e Відкрити

з'являється помилка "Порушення прав доступу":

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

Перший варіант, це реєстрація обробки в довіднику " додаткові звіти і обробки "(про це).

Але, що якщо обробка не підтримує таку реєстрацію? А обробка дуже корисна і відкрити її дуже хочеться.

В цьому випадку можна піти по другому варіанту і знову включити можливість відкриття обробок в базі через меню Файл-\u003e Відкрити.

Інструкція для цього нижче.

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

Виконайте команду меню "Адміністрування" -\u003e "Користувачі":

Подвійним клацанням відкрийте свого користувача:

Перейдіть на закладку "Інші", встановіть галку "Інтерактивне відкриття зовнішніх звітів і обробок" і натисніть "ОК":

Тепер закрийте конфігуратор і базу (якщо вона у вас була відкрита).

Знову зайдіть в базу і спробуйте відкрити звіт через меню "Файл" -\u003e "Відкрити".

Тепер все вийде

Є нюанси ...

Спосіб, який я описав в цій інструкції на 100% робочий, але при його використанні право на "Інтерактивне відкриття зовнішніх обробок" через час може знову пропасти.

Щоб цього уникнути встановіть цю ж галку в режимі 1С: Підприємства в поточному для вашого користувача профілі груп доступу.

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

З повагою, Володимир Мількіна (Викладач і розробник).