Имя: Пароль:
1C
1С v8
Не отключается безопасный режим для внешней обработки
0 lg2marvel
 
03.06.20
12:28
Всем привет. Платформа 8.3.15.1656, Конфигурация ЗУП 3.1.13
Внешний отчет на СКД:
Функция СведенияОВнешнейОбработке() Экспорт
    ДанныеДляРег = Новый Структура();
    ДанныеДляРег.Вставить("Наименование", "Достаточность и отток персонала");
    ДанныеДляРег.Вставить("БезопасныйРежим", Ложь);
    ДанныеДляРег.Вставить("Версия", "2.002.16");
    ДанныеДляРег.Вставить("Информация", "Достаточность и отток персонала");
    ДанныеДляРег.Вставить("Вид", "ДополнительныйОтчет");
    ТабЗнКоманды = Новый ТаблицаЗначений;
    ТабЗнКоманды.Колонки.Добавить("Идентификатор");
    ТабЗнКоманды.Колонки.Добавить("Использование");
    ТабЗнКоманды.Колонки.Добавить("Представление");
    НовСтрока = ТабЗнКоманды.Добавить();
    НовСтрока.Идентификатор = "ОткрытьОбработку";
    НовСтрока.Использование = "ОткрытиеФормы";
    НовСтрока.Представление = "Достаточность и отток персонала";
    ДанныеДляРег.Вставить("Команды", ТабЗнКоманды);
    Возврат ДанныеДляРег;
КонецФункции

Безопасный режим отключен.
В процессе нужно создать ОМ-соединение и получить данные с другой базы, но тут возникает ошибка:

Функция ПолучитьПодключениеКСервернойБД()
    УстановитьПривилегированныйРежим(Истина);
    Попытка
        Значение = БезопасныйРежим();
        Если ТипЗнч(Значение)=тип("Булево") и Значение=Истина тогда
            УстановитьОтключениеБезопасногоРежима(истина);
        КонецЕсли;    
        V8 = Новый COMОбъект("V83.ComConnector");

При попытке соедиения с COM-сервером произошла следующая ошибка:
{ВнешнийОтчет.ДостаточностьИОттокПерсонала_Ver4.МодульОбъекта(125)}: Ошибка при вызове конструктора (COMОбъект): Установлен безопасный режим. Выполнение операции запрещено

При этом под полными правами все работает нормально. Роль "Внешнее соединение" у пользователя есть. Как заставить работать под пользователем?
1 lg2marvel
 
03.06.20
14:00
В сведения о внешней обработке поместил

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.4.1");
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
    ПараметрыРегистрации.Версия = "2.006.03";
    ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
    ПараметрыРегистрации.Разрешения.Добавить(
    РаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса("V83.ComConnector","{181E893D-73A4-4722-B61D-D604B3D67D47}",));
    ПараметрыРегистрации.БезопасныйРежим = ложь;
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Достаточность и отток персонала'");
    НоваяКоманда.Идентификатор = "ОткрытьОбработку";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Ложь;

и не помогло :-(