Имя: Пароль:
1C
 
Отключение безопасного режима открытия обработки.
0 YaFedor
 
17.02.19
21:45
Имеем:
1С:Предприятие 8.3 (8.3.13.1513)
Розница (базовая), редакция 2.2 (2.2.9.20)

Галка "Защита от опасных действий" у пользователя снята, права у пользователя не полные - это кассир.

Обработка опубликована без безопасного режима. Открывается через публикацию. После очередного обновления запуск обработки приводит к аварийному завершению работы платформы.

Решил протестировать - открывая обработку через меню Файл\открыть.

При открытии обработки выходит ошибка:

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXMLРозница.Форма.Форма.Форма(31)}: Ошибка при вызове конструктора (Файл)
    Файл = Новый Файл(ИмяФайлаВыгрузки);
по причине:
Установлен безопасный режим. Выполнение операции запрещено


Как отключить этот безопасный режим?
1 ponaroshku
 
18.02.19
04:47
Функция СведенияОВнешнейОбработке()

В модуле обработке
Должно быть что-то типа

    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
2 mikeA
 
18.02.19
06:02
(1)+ В РС РежимыПодключенияВнешнихМодулей ещё надо запись сделать и вроде бы ещё профиль безопасности базы настроить.
3 ildary
 
18.02.19
06:23
(0) при открытии обработки через Файл-Открыть - она открывается в безопасном режиме вне зависимости от того, что в ней прописано в СведенияОВнешнейОбработке().
4 YaFedor
 
18.02.19
08:38
(3) т.е. вообще никак не сделать?
5 YaFedor
 
18.02.19
08:39
Должен же быть вариант отладки внешней обработки под неполными правами
6 Мимохожий Однако
 
18.02.19
08:56
(5) Начал с одного вопроса, а закончил другим. В отладке можно включить режим отладки под тем пользователем, который нужен.
7 YaFedor
 
18.02.19
09:28
(6) Ну и что, если нужный пользователь не может открыть обработку?
8 MaxS
 
18.02.19
09:31
(0) >Обработка опубликована без безопасного режима
А Вы посмотрите как она опубликована. То, что в самой обработке указано БезопасныйРежим = Ложь; не действует на некоторых БСП.
9 YaFedor
 
18.02.19
09:33
(8) Так я посмотрел же. Кроме того - опубликованная она все-таки открывается
10 ponaroshku
 
18.02.19
10:02
(5) причем тут права?
Подключаете к отладке своего пользователя
Открываете файл, смотрите

(3) смотря какие права у пользователя

(2) у меня видимо старое бсп, нет такого
11 YaFedor
 
18.02.19
10:14
(10) Как пользователь откроет обработку, если она у него не открывается через файл \ открыть?
12 ponaroshku
 
18.02.19
10:30
(11) она не открывается, пишет нарушение прав или ошибку, которая в (0)?

Если нарушение прав - у него прав нет на интерактивное открытие обработок значит

Если как в 0, то уже на этом этапе можно подключить отладку
13 YaFedor
 
18.02.19
10:36
(0) Конечно то, что в (0), ты вообще читал?

И что даст откладка на том моменте, который описан в (0) - там все ОК, просто в безопасном режиме половина действий не работает - там нечего отлаживать
14 ponaroshku
 
18.02.19
10:46
(13) в ПриСозданииНаСервере
    УстановитьБезопасныйРежим(Ложь);

И отладкой посмотри значение БезопасныйРежим()
15 YaFedor
 
18.02.19
11:18
Вот результат:

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXMLРозница.Форма.Форма.Форма(14)}: Ошибка при вызове метода контекста (УстановитьБезопасныйРежим)
    УстановитьБезопасныйРежим(Ложь);
по причине:
В данной процедуре/ функции не был установлен безопасный режим
16 YaFedor
 
18.02.19
11:19
+
БезопасныйРежим() = Истина
17 YaFedor
 
19.02.19
09:12
Появились ли у кого-нибудь варианты решения?
18 Мимохожий Однако
 
19.02.19
09:20
(17) Какие варианты решения, если у других таких проблем нет?
Покажи как в модуле обработке прописано использование безопасного режима.
19 YaFedor
 
19.02.19
09:34
Вот так "решилась" проблема:

1) Изменил в конфигураторе имя обработки
2) Скопировал основную форму, назначил ее основной формой.

Вуаля, пользователем открывается.

Т.о. где-то в конфигурации хранится список обработок с безопасным режимом открытия.
Вопрос: "где?"
20 YaFedor
 
19.02.19
09:35
(18) как и всегда

Функция СведенияОВнешнейОбработке() Экспорт
    // Создадим структуру для возврата
    параметрыРегистрации_                    = Новый Структура("Вид,Назначение,Наименование,Версия,БезопасныйРежим,Информация,Команды,ВерсияБСП");
    параметрыРегистрации_.Вид                = "ДополнительнаяОбработка";
    параметрыРегистрации_.Назначение        = "";
    параметрыРегистрации_.Наименование        = "Обмен данных между магазинами";
    параметрыРегистрации_.Версия            = "1.0";
    параметрыРегистрации_.БезопасныйРежим    = Ложь;
    параметрыРегистрации_.Информация        = "Обработка выгружает / загружает данные";    
    //параметрыРегистрации_.ВерсияБСП            = "2.4.1.84";
    
    ТаблицаКоманд                            = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд,
                    НСтр("ru = 'Обмен данных между магазинами'"),
                    "ОткрытьОбработкуОбменаДаннымиМеждуМагазинами",
                    "ОткрытиеФормы");
    
    параметрыРегистрации_.Команды            = ТаблицаКоманд;    
    
    // Вернем структуру
    Возврат параметрыРегистрации_;
    
КонецФункции // СведенияОВнешнейОбработке()
21 YaFedor
 
19.02.19
09:39
Второй раз открываешь обработку - все, снова безопасный режим, ничего не работает.
Охренеть
22 YaFedor
 
19.02.19
09:54
(18) проблема такая у всех присутствует.

Попробуй, например в Бухгалтерии 3.0 пользователю с правами Бухгалтер, Открытие внешних отчетов и обработок открыть обработку, в которой в ПриСозданийНаСервере будет поиск файлов (например как ниже) и все - та же ошибка про безопасный режим

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    найденныеФайлы_ = НайтиФайлы(ОбщегоНазначенияКлиентСервер.КаталогФайловойИнформационнойБазы(), "НужныйФайл.txt");
    Если найденныеФайлы_.Количество() = 0 Тогда
    Иначе
    КонецЕсли;

КонецПроцедуры
23 Мимохожий Однако
 
19.02.19
09:55
(22) Достаточно добавить права на открытие внешних обработок. Есть такая Группа прав
24 YaFedor
 
19.02.19
09:59
(23) Еще раз прочитай (22)
25 runoff_runoff
 
19.02.19
10:05
в справке по БСП же все написано..
надо прописывать Разрешения
26 runoff_runoff
 
19.02.19
10:06
Сведения.Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Читай справку"));
27 Мимохожий Однако
 
19.02.19
10:20
(24) Код кривой. ИМХО
28 YaFedor
 
19.02.19
10:43
(27) Отлично
29 YaFedor
 
19.02.19
10:44
(25) Так разрешения прописываются в функции СведенияОВнешнейОбработке.
Эта функция через меню Файл\открыть не вызывается, следовательно не будет ни на что влиять
30 Cyberhawk
 
19.02.19
10:49
Не безопасный режим насиловать надо, а таблицу разрешений у подключаемой обработки. Насиловать неподчалюемую к БСП внешнюю обработку тоже не надо.
31 Cyberhawk
 
19.02.19
10:49
*неподключаемую
32 YaFedor
 
19.02.19
10:52
(30) Нужно отладить обработку под пользователем с неполными правами. Как это сделать с подключаемой обработкой?
33 Cyberhawk
 
19.02.19
10:52
(32) Так же, как для любого другого пользователя
34 Мимохожий Однако
 
19.02.19
10:54
(32) Добавь в обработку форму для отладки и в неё добавь вызов тестируемых процедур
35 Cyberhawk
 
19.02.19
10:56
(34) Ага, ведь это куда проще, чем просто взять и подключаемую обработку вывести в интерфейс целевого пользователя ))
36 YaFedor
 
19.02.19
11:00
(33) еще раз - как отладить подключенную обработку? При ее открытии генерируется временный файл и в него записывается обработка, которая будет выполняться. Как в этой обработке точку останова поставить?
37 Cyberhawk
 
19.02.19
11:05
(36) Задача ничем не сложнее, чем отладить запрос под нужным пользователем. Просто нужно иметь подходящий инструмент.
38 YaFedor
 
19.02.19
11:07
(37) Подскажи как это сделать, я не представляю
39 Cyberhawk
 
19.02.19
11:11
(38) До БСП 2.1 какой-то подключаемая обработка вызывалась через временный файл. Нужно было лишь этот временный файл идентифицировать (найти) и открыть в конфигураторе.
Потом ребятки из БСП стали выполнять обработку, создавая ее без временного файла (прямо в памяти типа). Но и на этот случай есть способ перехвата такого создания через расширение. Посмотри как сделано в ИР.
40 Cyberhawk
 
19.02.19
11:12
Накрайняк: нужно чтоб клиент был подключен как предмет отладки к отладчику.
Добавляешь взвод исключения в попытку кода, в пофигураторе автоостановку по ошибке и вуаля - клиент предлагает открыть обработку в конфигураторе. Так находишь файлик и ставишь уже где надо точку останова.
41 YaFedor
 
19.02.19
11:19
(40) Неа, обработку открыть в конфигураторе не предлагает
42 YaFedor
 
19.02.19
11:20
(39) Насчет расширения - не работал с ними еще ни разу. ИР - это что?
43 YaFedor
 
19.02.19
11:20
Неужели нет возможности просто отключить этот безопасный режим может через запуск 1с с каким-то параметром?
44 Cyberhawk
 
19.02.19
11:22
45 Cyberhawk
 
19.02.19
11:28
(43) Дать пользователю административные права - безопасный режим тогда не будет применяться при открытии через Файл
46 YaFedor
 
19.02.19
11:30
(45) печально
47 runoff_runoff
 
19.02.19
11:40
(46) сделать обработку дополнительной в базе.. и дать соответствующие разрешения.. самое то.. а отладить модно и под полными правами..
48 YaFedor
 
19.02.19
11:42
(47) Под полными правами обработка работает идеально. А под неполными валит приложение 1с. Как тут отладить под полными правами :-)
49 runoff_runoff
 
19.02.19
12:25
(48) она не будет валить, если установить привилегированный режим..
50 YaFedor
 
19.02.19
13:03
(49) В коде стоит его установка