Вход | Регистрация


1С:Предприятие ::

Метки: 

Не удается программно записать реализацию без полных прав УТ 11.3.4

Я
   СЕсин
 
12.01.18 - 14:48
Всем привет! Ситуация, конечно, странная. Файловая база Управление торговлей, редакция 11 (11.3.4.81)

Хочу программно кое-что изменить в документе и записать документ. Эту нехитрую обработку должен выполнять пользователь НЕ под полными правами. Этот пользователь имеет права, чтобы создавать/проводить документы реализации, чем каждый день занимается.
Но программно записать изменения с помощью внешней обработки не получается.

Код такой, все элементарно:

&НаСервере
Процедура ОдобритьВыделенныеНаСервере(Одобрение)
    
    Для каждого СтрокаТЧ Из Реализации Цикл
            
        ДокОб = СтрокаТЧ.Документ.ПолучитьОбъект();
        
        // ТУТ КОД УСТАНОВКИ НОВОГО ЗНАЧЕНИЯ ДОП. РЕКВИЗИТА

        
        Попытка
            
            ДокОб.Записать(РежимЗаписиДокумента.Запись);
            
        Исключение
            
            Сообщить("Не удалось обработать " + Строка(ДокОб));
            
        КонецПопытки;
        
    КонецЦикла;
    
КонецПроцедуры

Дело в том, что при записи документа срабатывает механизм регистрации изменений в плане обмена с бухгалтерией. И возникает ошибка:

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1244)}: Ошибка выполнения правил регистрации объектов для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
Описание ошибки:
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2666)}: Ошибка при вызове метода контекста (Выполнить)
    МассивУзлов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Узел");
по причине:
Недостаточно прав для работы с таблицей "РегистрСведений.ДанныеОбъектовДляРегистрацииВОбменах"


Права на чтение и изменение регистра "ДанныеОбъектовДляРегистрацииВОбменах" есть только в роли "ПолныеПрава".

Обработка в НЕ безопасном режиме работы.
Пробовал "УстановитьПривилегированныйРежим(Истина);" - не помогло
Пробовал "ДокОб.ОбменДанными.Загрузка = Истина;" - не помогло 

Догадываюсь, что можно это как-то решить, т.к. пользователь работает и записывает документы "руками". Но не понимаю, как мне под его правами программно записать документ реализации.

Пожалуйста подскажите, если кто-то сталкивался с данной проблемой.
 
 
   Вафель
 
1 - 12.01.18 - 14:55
опасный режим поставь для этой внешней обработки
   СЕсин
 
2 - 12.01.18 - 15:17
(1) я выше писал "Обработка в НЕ безопасном режиме работы. "
   Вафель
 
3 - 12.01.18 - 15:18
Подключенная обработка или просто обработка?
   СЕсин
 
4 - 12.01.18 - 15:26
Пробовал и так и так. И как внешнюю открываю и при подключении в конфигурацию - одна и та же ошибка.
   Вафель
 
5 - 12.01.18 - 15:28
отключение безопасный режим должно помогать
   2dolist
 
6 - 12.01.18 - 15:43
безопасный режим только задалбывает дурацкими вопросами, вроде ничего не блочит отдельно
   2dolist
 
7 - 12.01.18 - 15:43
Хотя, чёрт его знает. Я отключил. Не удобный.
   2dolist
 
8 - 12.01.18 - 15:44
*неудобный
   Вафель
 
9 - 12.01.18 - 15:44
(6) Это другой безопасный режим )))
   Вафель
 
10 - 12.01.18 - 15:45
Есть "безопасный режим", а есть "защита от опасных действий"
 
  Рекламное место пустует
   Вафель
 
11 - 12.01.18 - 15:46
если для внешней обработки установлен "безопасный режим", то функция УстановитьПривилегированныйРежим перестает работать, вне зависимости от того где она вызывается, даже в общих модулях
   СЕсин
 
12 - 12.01.18 - 15:57
(11) я ж пишу, у меня установлен НЕ безопасный режим обработки.
Короче я попробовал все возможные комбинаций  "безопасный режим", "защита от опасных действий", "УстановитьПривилегированныйРежим", "ДокОб.ОбменДанными.Загрузка = Истина" - результат один - ошибка доступа к регистру.
Руками документы из под этого пользователя прекрасно дает записывать. Х.з. в чем разница.
   Вафель
 
13 - 12.01.18 - 16:04
где-то что-то заглючило. ибо должно работать
   2dolist
 
14 - 12.01.18 - 16:15
(10) а, ясно.
   2dolist
 
15 - 12.01.18 - 16:20
да, точно, я их перепутал. Безопасный режим же в регистрационных данных обработки указывается.
   grigo
 
16 - 12.01.18 - 16:28
Обложи код записи документа строками "УстановитьПривилегированныйРежим(Истина)....УстановитьПривилегированныйРежим(Ложь)" и запускай обработку в Опасном режиме.
   Вафель
 
17 - 12.01.18 - 16:32
(16) тот код уже обложен в соотв модулях
   grigo
 
18 - 12.01.18 - 16:39
(17) В условии задачи это не указано. Jстается только создать привилегированный модуль и записывать реализацию в нем.
   Вафель
 
19 - 12.01.18 - 16:45
(18) все указано: ут 11.3.4
   Вафель
 
20 - 12.01.18 - 16:45
(18) кстати привелигерованные модули тоже перестают быть таковыми в опасном режиме
   grigo
 
21 - 12.01.18 - 16:54
(19) Там нет такой процедуры, поэтому нет информации, что ТС вызывает ее из привилегированного режима.
(20) В опасном режиме не становятся. В безопасном - да.
   DexterMorgan
 
22 - 12.01.18 - 17:09
Наверняка есть какое-то доп. свойство документа, которое анализируется в этой подписке. Посмотри код в этой подписке
   DexterMorgan
 
23 - 12.01.18 - 17:10
(20) да ну на
   СЕсин
 
24 - 15.01.18 - 10:15
(22) кстати, да, попробую! Хорошая мысль.



Список тем форума
Рекламное место пустует   Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует