|
Не удается программно записать реализацию без полных прав УТ 11.3.4 | ☑ | ||
---|---|---|---|---|
0
СЕсин
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
|
отключение безопасный режим должно помогать
|
|||
6
2dolist
12.01.18
✎
15:43
|
безопасный режим только задалбывает дурацкими вопросами, вроде ничего не блочит отдельно
|
|||
7
2dolist
12.01.18
✎
15:43
|
Хотя, чёрт его знает. Я отключил. Не удобный.
|
|||
8
2dolist
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
|
где-то что-то заглючило. ибо должно работать
|
|||
14
2dolist
12.01.18
✎
16:15
|
(10) а, ясно.
|
|||
15
2dolist
12.01.18
✎
16:20
|
да, точно, я их перепутал. Безопасный режим же в регистрационных данных обработки указывается.
|
|||
16
grigo
12.01.18
✎
16:28
|
Обложи код записи документа строками "УстановитьПривилегированныйРежим(Истина)....УстановитьПривилегированныйРежим(Ложь)" и запускай обработку в Опасном режиме.
|
|||
17
Вафель
12.01.18
✎
16:32
|
(16) тот код уже обложен в соотв модулях
|
|||
18
grigo
12.01.18
✎
16:39
|
(17) В условии задачи это не указано. Jстается только создать привилегированный модуль и записывать реализацию в нем.
|
|||
19
Вафель
12.01.18
✎
16:45
|
(18) все указано: ут 11.3.4
|
|||
20
Вафель
12.01.18
✎
16:45
|
(18) кстати привелигерованные модули тоже перестают быть таковыми в опасном режиме
|
|||
21
grigo
12.01.18
✎
16:54
|
(19) Там нет такой процедуры, поэтому нет информации, что ТС вызывает ее из привилегированного режима.
(20) В опасном режиме не становятся. В безопасном - да. |
|||
22
DexterMorgan
12.01.18
✎
17:09
|
Наверняка есть какое-то доп. свойство документа, которое анализируется в этой подписке. Посмотри код в этой подписке
|
|||
23
DexterMorgan
12.01.18
✎
17:10
|
(20) да ну на
|
|||
24
СЕсин
15.01.18
✎
10:15
|
(22) кстати, да, попробую! Хорошая мысль.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |