Имя: Пароль:
1C
1С v8
Программное проведение с полными правами
0 MAPATNK2
 
naïve
02.04.19
11:57
Избитая тема, но что-то я не нашел ответа. Закрыли доступ к номенклатуре менеджерам, но у них имеется необходимость изменять описание товара. Сделал им простейшую внешнюю обработку, которая вызывается из карточки номенклатуры из следующего кода:

//Cod://
СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоКоду("000000074");
        
        ЭтоОбработка = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка, Истина, Ложь);
        ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь);
        
        Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда
            Возврат;
        КонецЕсли;
        
        ИмяФайла = ПолучитьИмяВременногоФайла();
        ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить();
        ДвоичныеДанные.Записать(ИмяФайла);
        
        Попытка
            Если ЭтоОбработка Тогда
                Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
            Иначе
                Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
            КонецЕсли;
            
            Если Не Форма = Неопределено Тогда
                Форма.ПолеВвода2 = ЭтотОбъект.Ссылка;
                Форма.Открыть();        
            Иначе
                Сообщить("Форма открываемой обработки или отчета не определена.", СтатусСообщения.БезСтатуса);
            КонецЕсли;
        Исключение
            Если ЭтоОбработка Тогда
                Предупреждение("Выбранный файл не является внешней обработкой.
                |Либо, данная обработка не предназначена для
                |запуска в этой конфигурации.");
            Иначе
                Предупреждение("Выбранный файл не является внешним отчетом.
                |Либо, данный отчет не предназначена для
                |запуска в этой конфигурации.");
            КонецЕсли;
        КонецПопытки;
        
        УдалитьФайлы(ИмяФайла);
//Cod:END//



Далее менеджеры меняю описание товара на форме обработки и выполняется следующий код:



//Cod://
УстановитьПривилегированныйРежим(Истина);
Номенклатура2.Записать();
УстановитьПривилегированныйРежим(Ложь);
//Cod:END//

Но, как можно догадаться, нихрена не пашет и кона орет, что прав нет. Ну есессно их нет, я ведь поэтому и написал УстановитьПривилегированныйРежим(Истина);  но конфе видимо начхать.
Нашел инфу на форуме, что конфигурация запускает внешнюю обработку в Безопасном режиме и игнорит Привелегированный режим. Как его убрать?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс