Как нужно УстановитьПривилегированныйРежим?? Не получается сделать(

1. Airat116 12.08.19 08:16 Сейчас в теме
Здравствуйте.Помогите пжл как надо правильно устанавливать привилегированный режим?
Есть внешняя обработка.Перемещение МЦ04 по МОЛ. База (БП 2.0) У пользователя при нажатии на кнопку "Сохранить проводки" выходит ошибка недостаточно прав. Пытаюсь поставить ПривилегированныйРежим, но никак не получается(
Вот так пробывал написать...
В модуле формы.
Процедура КнопкаВыполнитьНажатие(Кнопка)
	// Вставить содержимое обработчика.
	движения = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
	движения.Отбор.регистратор.установить(Документ);
	движения.ОбменДанными.Загрузка = истина;
	для каждого стр из Номенклатуры цикл
		новстр = движения.Добавить();
		новстр.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04");
		новстр.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04");
		новстр.СубконтоДт.вставить(новстр.СчетДт.ВидыСубконто[0].ВидСубконто,стр.Номенклатура);
		новстр.СубконтоДт.вставить(новстр.СчетДт.ВидыСубконто[1].ВидСубконто,стр.Партии);
		новстр.СубконтоДт.вставить(новстр.СчетДт.ВидыСубконто[2].ВидСубконто,РаботникДт);
		новстр.СубконтоКт.вставить(новстр.СчетДт.ВидыСубконто[0].ВидСубконто,стр.Номенклатура);
		новстр.СубконтоКт.вставить(новстр.СчетДт.ВидыСубконто[1].ВидСубконто,стр.Партии);
		новстр.СубконтоКт.вставить(новстр.СчетДт.ВидыСубконто[2].ВидСубконто,РаботникКт);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетДт, новстр.СубконтоДт, 1, РаботникДт);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетДт, новстр.СубконтоДт, 2, стр.Номенклатура);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетДт, новстр.СубконтоДт, 3, стр.Партии);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетКт, новстр.СубконтоКт, 1, РаботникКт);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетКт, новстр.СубконтоКт, 2, стр.Номенклатура);
		//БухгалтерскийУчет.УстановитьСубконто(новстр.СчетКт, новстр.СубконтоКт, 3, стр.Партии);
		новстр.КоличествоДт = стр.Количество;
		новстр.КоличествоКт = стр.Количество;
		новстр.Сумма = стр.Сумма;
		новстр.Регистратор = Документ;
		новстр.период = Документ.Дата;
		новстр.Организация = Справочники.Организации.НайтиПоНаименованию("Общество с ограниченной ответств ""Маш""");
	КонецЦикла;	
	//движения.ОбменДанными.Загрузка = истина;
	УстановитьПривилегированныйРежим(Истина);
	движения.Записать();
КонецПроцедуры
Показать
Найденные решения
7. spacecraft 12.08.19 08:54 Сейчас в теме
(1) база файловая или клиент-серверная?
Если второе, то можете забыть про привилегированный режим в модуле формы внешней обработки обычного приложения. Он включается только на сервере.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. dhurricane 12.08.19 08:36 Сейчас в теме
(1) Убедитесь, что при подключении внешней обработки у Вас отключен безопасный режим. В безопасном режиме привилегированный режим не включается не смотря на наличие соответствующей инструкции в коде.
4. Airat116 12.08.19 08:40 Сейчас в теме
(3) я в модуле объекта написал вот такую функцию "Безопасный режим вроде убрал как"

Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Наименование", "Перемещение МЦ04 по МОЛ");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
    РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("Информация", "Перемещение МЦ04 по МОЛ");
    
    ///////////// команды /////////////////////////
    тзКоманд = Новый ТаблицаЗначений;
    тзКоманд.Колонки.Добавить("Идентификатор",             Новый ОписаниеТипов("Строка"));
    тзКоманд.Колонки.Добавить("Представление",             Новый ОписаниеТипов("Строка"));
    тзКоманд.Колонки.Добавить("Модификатор",             Новый ОписаниеТипов("Строка"));
    тзКоманд.Колонки.Добавить("ПоказыватьОповещение",     Новый ОписаниеТипов("Булево"));
    тзКоманд.Колонки.Добавить("Использование",             Новый ОписаниеТипов("Строка"));
    
    строкаКоманды = тзКоманд.Добавить();
	строкаКоманды.Идентификатор         = "Перемещение МЦ04 по МОЛ"; 
    строкаКоманды.Представление         = "Перемещение МЦ04 по МОЛ";
    строкаКоманды.ПоказыватьОповещение  = Истина;
    строкаКоманды.Использование         = "ОткрытиеФормы";
    
    РегистрационныеДанные.Вставить("Команды", тзКоманд);
    Возврат РегистрационныеДанные;
КонецФункции
Показать
11. RustIG 1615 14.08.19 16:08 Сейчас в теме
(3)
(7) не знал-не знал... у меня на файловой базе используется при обмене... перейти на клиент-сервер будет проблемно...
7. spacecraft 12.08.19 08:54 Сейчас в теме
(1) база файловая или клиент-серверная?
Если второе, то можете забыть про привилегированный режим в модуле формы внешней обработки обычного приложения. Он включается только на сервере.
8. Airat116 12.08.19 08:59 Сейчас в теме
9. spacecraft 12.08.19 09:02 Сейчас в теме
(8) только изменением конфигурации. Как вариант отдельный привилегированный серверный общий модуль с вызовом сервера и там делать нужные действия.
Это защита, чтобы внешней обработкой ничего не допустимого сделать не смогли.
10. Airat116 12.08.19 09:07 Сейчас в теме
(9)Понял. Спасибо. Щас попробую сделать
2. accounting_cons 755 12.08.19 08:29 Сейчас в теме
Поставьте эту строку в начале процедуры, а не в конце.
5. Airat116 12.08.19 08:41 Сейчас в теме
(2)
Вот так?
Процедура КнопкаВыполнитьНажатие(Кнопка)
	// Вставить содержимое обработчика.
	УстановитьПривилегированныйРежим(Истина);
	движения = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
	движения.Отбор.регистратор.установить(Документ);
	движения.ОбменДанными.Загрузка = истина;
	для каждого стр из Номенклатуры цикл
		новстр = движения.Добавить();
6. Airat116 12.08.19 08:45 Сейчас в теме
В отладке пишет где колонка "Значение"
{(1,1)} Обращение к процедуре как к функции (УстановитьПривилегированныйРежим)
12. OksDallas 22 09.11.23 04:58 Сейчас в теме
Тоже имеются проблемы с установкой привилегированного режима.
Ситуация на сегодня:

Внешняя печатная форма
Из нее обращение к общему модулю со следующими свойствами :

Клиент нет
Сервер да
Внешнее соединение нет

Вызов сервера да
Привилегированный да

Функция ПолучитьСведенияОбОрганизации(Знач Организация, Знач НаДату, Знач СтрП) Экспорт

	УстановитьПривилегированныйРежим(Истина);
	ОргСведения = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Организация, НаДату, СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрП, "*"));
	УстановитьПривилегированныйРежим(Ложь);       
	Возврат ОргСведения;

КонецФункции // ПолучитьСведенияОбОрганизации()
Показать


В сведениях об организации не получается добыть данные о руководителе и главном бухгалтере, поскольку у них установлена Группа доступа (в спр.Физические лица) недоступная текущему пользователю.

Во внешней обработке безопасный режим отключен, пользователю защиту от опасных действий тоже отключила

На данный момент база файловая, но в дальнейшем будет работает клиент-сервер

В общем, УстановитьПривилегированныйРежим(Истина) не срабатывает

Подскажите, чего я еще не учла, очень хочется чтобы все заработало
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот