|
Отражение в регламентированном учете | ☑ | ||
---|---|---|---|---|
0
first_may
25.12.17
✎
21:05
|
Добрый день.
У пользователя нет роли ОтражениеВРегламентированномУчете. Но ему надо открыть документ, который проведен по БУ и НУ, внести текст в комментарий и сохранить. Но у него, естественно, выдается сообщение: Недостаточно прав для отражения в регламентированном учете. Изменения не могут быть записаны... Подскажите пож, как можно сделать, что бы он все таки смог внести изменение в проведенный документ? |
|||
1
Artful Den
25.12.17
✎
21:09
|
1. Создать дополнительную роль.
2. Вынести обработку в привилегированный модуль. |
|||
2
first_may
25.12.17
✎
21:09
|
(1) ясно, попробую.
|
|||
3
first_may
25.12.17
✎
21:33
|
(1) сделал общий модуль - ПривилигерированныйМодуль, у которого поставил свойство Сервер, Вызов сервера и Привилегированный.
В модуле написал Процедура УстановитьПризнакТОРГ12(Документ) Экспорт ДокОбъект = Документ.ПолучитьОбъект(); ДокОбъект.ОбменДанными.Загрузка = Истина; Если Не Документ.Метаданные().Реквизиты.Найти("ФлагТОРГ12") = Неопределено Тогда Если Документ.ФлагТОРГ12 Тогда ДокОбъект.ФлагТОРГ12 = Ложь; Иначе ДокОбъект.ФлагТОРГ12 = Истина; КонецЕсли; КонецЕсли; Попытка ДокОбъект.Записать(РежимЗаписиДокумента.Запись); Исключение Сообщить("Не удалось установить признак ТОРГ12. " + Символы.ПС + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры В реализации в списке поставил кнопку и прописал событие Процедура ДействияФормыТОРГ12(Кнопка) ТекСтрока = ЭлементыФормы.Список.ТекущиеДанные; Если НЕ ТекСтрока = Неопределено И ЗначениеЗаполнено(ТекСтрока.Ссылка) Тогда Ответ = Вопрос("Документу """ + ТекСтрока.Ссылка + """ будет установлен признак ТОРГ-12. Продолжить?", РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ПривилигерированныйМодуль.УстановитьПризнакТОРГ12(ТекСтрока.Ссылка); Обновить(); КонецЕсли; КонецПроцедуры Зашел под пользователем, у которого нет роли ОтражениеВРегламентированномУчете и в списке нажал кнопку. Получил сообщение: Не удалось установить признак ТОРГ12. {ОбщийМодуль.ПривилигерированныйМодуль.Модуль(103)}: Ошибка при вызове метода контекста (Записать): Не удалось записать "Реализация товаров и услуг 3720122017 от 20.12.2017 15:20:50"! Что не так я сделал? |
|||
4
ildary
25.12.17
✎
21:39
|
Если процедура модуля вызывается из внешней обработки, в которой БезопасныйРежим=Истина, то надо безопасный режим отключить.
|
|||
5
first_may
25.12.17
✎
21:42
|
(4) если процедура модуля вызывается из внешней обработки - нет, не из внешней, а из модуля формы списка.
Так нельзя? |
|||
6
first_may
25.12.17
✎
21:46
|
Конфигурация Управление производственным предприятием, редакция 1.3, если имеет значение.
|
|||
7
first_may
25.12.17
✎
21:52
|
Надо обязательно из внешней обработки?
|
|||
8
first_may
25.12.17
✎
22:17
|
Сделал внешнюю печатную форму, которая вызывается по кнопке Печать. Открывается форма, в которой флажок ТОРГ12.
Тот же пользователь вызывает ее, ставит флажок и нажимает Ок. При этом выдается собщение Не удалось установить признак ТОРГ12. {ОбщийМодуль.ПривилигерированныйМодуль.Модуль(103)}: Ошибка при вызове метода контекста (Записать): Не удалось записать "Реализация товаров и услуг 3720122017 от 20.12.2017 15:20:50"! В тексте написано Процедура КнопкаВыполнитьНажатие(Кнопка) УстановитьПривилегированныйРежим(Истина); БезопасныйРежим = Ложь; ПривилигерированныйМодуль.УстановитьПризнакТОРГ12(СсылкаНаОбъект); ЭтотОбъект.ПолучитьФорму("Форма").Закрыть(); Что еще можно сделать? |
|||
9
hhhh
26.12.17
✎
00:23
|
(8) зачем такой фигней невероятной страдать? Сделай регистр сведений ПризнакиТорг12, где 2 поля : Документ и Признак. И никаких прав не потребуется и всяких привилегированных модулей.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |