Имя: Пароль:
1C
 
Не работает привелигированный режим во внешней обработке с небезопасным режимом
,
0 pumba055
 
13.03.19
19:00
Коллеги, помогите!!!!!! Хелп!!! ((((((((((
Не работает привилигированный режим!

В коде пишу -->

Функция СведенияОВнешнейОбработке() Экспорт

    ПраметрыРегистрации.Вставить("БезопасныйРежим", ложь);
1 ДенисЧ
 
13.03.19
19:01
А во внешней он должен работать?
2 ildary
 
13.03.19
19:19
(0) а как запускается обработка? Через Файл-Открыть? Тогда ПраметрыРегистрации.Вставить("БезопасныйРежим", ложь); не работает и всё равно включается безопасный режим.
3 pumba055
 
13.03.19
20:11
внешняя обработка - дополнительная печатная форма
4 pumba055
 
13.03.19
20:30
Не поняла вопроса --> а во внешней он должен работать?  Я не знаю, ну а почему б ему не работать, должен) В синтакс помощнике об этом не упомянуто...
5 vde69
 
13.03.19
20:37
привелигированый режим работает ТОЛЬКО если код выполняется на сервере.
6 pumba055
 
13.03.19
20:40
У меня на сервере точно выполняется, т.к. ругается на ВыполнитьЗапрос() - запрос только на сервере выполняется, в 1С по крайней мере точно    

УстановитьПривилегированныйРежим(истина);
    
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет(); --> тут возникает ошибка
7 pumba055
 
13.03.19
20:51
И ругается этот гад так -->  
{ВнешняяОбработка.СчетНаОплатуКлиентуАвансТП.МодульОбъекта(2748)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет(); // Прив. режим включен
по причине:
Недостаточно прав для работы с таблицей "Документ.ОтчетКомитенту"
8 pumba055
 
13.03.19
20:51
С полными правами соответственно все работает.....
9 vde69
 
13.03.19
20:52
(6) не совсем так...

1. если база файловая - весь код всегда выполняется на клиенте
2. толстый клиент - то же отдельная песня, там запрос может и на клиенте выполнятся
10 pumba055
 
13.03.19
20:53
база серверная
11 pumba055
 
13.03.19
20:54
запрос может на клиенте выполняться в серверной базе? А разве есть данные которые на клиенте хранятся? о таких возможностей я у 1С не слышала
12 pumba055
 
13.03.19
20:58
ну должен же мой привилигированный режим то работать - база серверная, код на сервере выполняется, ну и в чем дело? ........ (((((((((((((((((((((
13 RomanYS
 
13.03.19
21:00
а ПривилегированныйРежим() что возвращает?
14 pumba055
 
13.03.19
21:06
хм, написал что нет........ а почему?......
15 Сияющий в темноте
 
13.03.19
21:08
директива на сервере перед функцией стоит?
16 pumba055
 
13.03.19
21:09
ПривилегированныйРежим() = вернул 'ложь' почему то...

    УстановитьПривилегированныйРежим(истина);
    
    Сообщить(Строка(ПривилегированныйРежим()));
    
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
17 pumba055
 
13.03.19
21:12
не было - поставила.... думала заработает))), вышла-зашла в 1С, не заработало (((
18 pumba055
 
13.03.19
21:13
директиву на &сервере
19 Franchiser
 
гуру
13.03.19
21:16
Не запускай через файл -открыть, добавь в базу
20 pumba055
 
13.03.19
21:17
у меня внешняя печатная форма
21 Franchiser
 
гуру
13.03.19
21:18
(20) каким же образом ты проверяешь привилегированныйрежим?
22 pumba055
 
13.03.19
21:20
Сообщить(Строка(ПривилегированныйРежим()));
23 RomanYS
 
13.03.19
21:21
(20) значит БезопасныйРежим не сработал. Там какие-то изменения в БСП были по этой теме вроде
24 pumba055
 
13.03.19
21:23
ой, а как его проверить
25 pumba055
 
13.03.19
21:24
или Сообщить(Строка(ПривилегированныйРежим()))  так его не проверишь?
26 RomanYS
 
13.03.19
21:24
(24) БезопасныйРежим()
27 Franchiser
 
гуру
13.03.19
21:25
(0) в 1с фреш безопасный режим не работает
28 pumba055
 
13.03.19
21:31
БезопасныйРежим()  вернул -->  да..............

а я ж ему написала в самом начале  -->

Функция СведенияОВнешнейОбработке() Экспорт

    ПраметрыРегистрации.Вставить("БезопасныйРежим", ложь);
29 RomanYS
 
13.03.19
21:34
(27) во фреше вроде просто так обработку не добавишь
30 RomanYS
 
13.03.19
21:36
(28) целиком СведенияОВнешнейОбработке покажи
31 pumba055
 
13.03.19
21:36
фреш это что?))
32 pumba055
 
13.03.19
21:37
Функция СведенияОВнешнейОбработке() Экспорт
УстановитьПривилегированныйРежим(истина);
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //Варианты: "ДополнительнаяОбработка", "ДополнительныйОтчет", "ЗаполнениеОбъекта", "Отчет", "ПечатнаяФорма", "СозданиеСвязанныхОбъектов"
    
    МассивНазначений = Новый Массив();
    МассивНазначений.Добавить("Документ.СчетНаОплатуКлиенту");// например: "Документ._ДемоСчетНаОплатуПокупателю"
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    
    ПараметрыРегистрации.Вставить("Наименование", "Счет на оплату клиенту ТП");
    ПараметрыРегистрации.Вставить("Версия", "2.0.0.1"); //например: "1.0"
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ложь); //Варианты: Истина, Ложь
    ПараметрыРегистрации.Вставить("Информация", "Счет на оплату клиенту ТП");
    ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");// не ниже какой версии БСП подерживается обработка
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд,
    НСтр("ru = 'Счет на оплату клиенту ТП'"),//для отображения пользователю
    "СчетНаОплатуКлиентуАвансТП",    //можно использовать для подмены поставляемой печатной формы
    "ВызовСерверногоМетода",  //Использование.  Варианты: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода"  
    Ложь,//Показывать оповещение. Варианты Истина, Ложь
    "ПечатьMXL");//Модификатор
    
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции
33 RomanYS
 
13.03.19
21:37
(31) облако от 1с
34 Franchiser
 
гуру
13.03.19
21:43
Версию БСП повыше поставь
35 pumba055
 
13.03.19
21:43
может здесь что-то -->
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
36 pumba055
 
13.03.19
21:44
во, тоже подумала, сейчас попробую)
37 pumba055
 
13.03.19
21:44
а как узнать, какая у меня БСП?
38 Franchiser
 
гуру
13.03.19
21:45
А зачем установитьпривилегирлванныйрежим() в сведенияховнешнейобработке() ?
39 RomanYS
 
13.03.19
21:47
(37) просто убери эту строку
40 pumba055
 
13.03.19
21:51
сначала версию выше БСП поставила, не заработало. Потом совсем эту строку убрала - тоже нет...
41 Franchiser
 
гуру
13.03.19
21:52
Привилегированный режим нужно ставить в процедуре где твой запрос
42 RomanYS
 
13.03.19
21:56
посмотри константу ИспользуютсяПрофилиБезопасности
43 Franchiser
 
гуру
13.03.19
21:58
Посмотри ещё ОМ ДополнительныхВнешнихОтчетовИОбработок
Там описана логика установки безопасного режима.
44 pumba055
 
13.03.19
21:58
Господи, неужели свет!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Константа  ИспользуютсяПрофилиБезопасности   мешала!!!!!!!!!!!
45 RomanYS
 
13.03.19
21:59
(44) Может она не мешала, а спасала))
46 pumba055
 
13.03.19
22:03
Всем, всем, всем большое, огромное СПАСИБО!!!!!!!!! Я счастлива)))))))))
47 Franchiser
 
гуру
13.03.19
22:04
Константа делает женщин счастливее...
48 Biker
 
13.03.19
22:05
(44) решение так себе..

Результат = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима(Описание)
49 Franchiser
 
гуру
13.03.19
22:07
(48) Что это?
50 Biker
 
13.03.19
22:11
(49) Из доки по бсп.

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("ттт");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Так понятней?
51 RomanYS
 
13.03.19
22:12
(50) гораздо лучше
52 Franchiser
 
гуру
13.03.19
22:14
(50) да так во фреше делается. Для обычной конфы достаточно установить безопасный режим ложь.
53 Biker
 
13.03.19
22:17
(52) для ларьков решеньице
54 RomanYS
 
13.03.19
22:31
(52) получается нужно и не во фреше, если константа включена. Или я не так понял?
55 Franchiser
 
гуру
13.03.19
22:33
Ну можно профили безопасности в кластере сделать, для  этого и константа
Закон Брукера: Даже маленькая практика стоит большой теории.