Удаление помеченных объектов при разделении доступа по организациям
Существует ли возможность удалить помеченные при разделении доступа по организациям для пользователя, у которого есть права на чтение запись по определенной(ым) перченю организаций в базе? На текущий момент вываливается сообщение "Недостаточно прав для выполнения операции над базой данных". удаление помеченных может выполнить только пользователь с полными правами. Какие есть варианты?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) alenakrr,
Право интерактивного удаления тут не нужно. Интерактивно это для любителей "Удалить непосредственно" прямо в интерфейсе.
Как происходит попытка удаления? Из меню "Операции"? Тогда это перевод базы в монопольный режим, только полные права (деление по организациям ни при чем).
Если внешней обработкой, то на удаляемые элементы должно быть право "Удаление". Показ объектов к удалению в таком случае происходит с учетом разделения по организациям.
Право интерактивного удаления тут не нужно. Интерактивно это для любителей "Удалить непосредственно" прямо в интерфейсе.
Как происходит попытка удаления? Из меню "Операции"? Тогда это перевод базы в монопольный режим, только полные права (деление по организациям ни при чем).
Если внешней обработкой, то на удаляемые элементы должно быть право "Удаление". Показ объектов к удалению в таком случае происходит с учетом разделения по организациям.
Функция вОбновитьПомеченныеНаУдаление()
Состояние("Выполняется поиск объектов, помеченных на удаление...");
ПоказыватьОбъектыКоторыеМожноУдалить = Истина;
ПоказыватьОбъектыКоторыеНельзяУдалить = Истина;
ПоказыватьСсылкиУдаляемых = Истина;
ПоказыватьСсылкиНеудаляемых = Истина;
СсылкиНаУдаляемыеОбъекты.Очистить();
ТаблицаСсылок = Ложь;
УдаляемыеОбъекты.Очистить();
СоответствиеТипаКМетаданному = Новый Соответствие;
Попытка
МассивКУдалению = НайтиПомеченныеНаУдаление();
Исключение
Предупреждение("У пользователя не достаточно прав на выполнение операции.");
Возврат Ложь;
КонецПопытки;
Для каждого УдаляемыйОбъект из МассивКУдалению цикл
СтрокаУдаляемогоОбъекта = УдаляемыеОбъекты.Добавить();
СтрокаУдаляемогоОбъекта.ссылка = УдаляемыйОбъект;
Попытка
СтрокаУдаляемогоОбъекта.Организация = СтрокаУдаляемогоОбъекта.ссылка.Организация;
Исключение
КонецПопытки;
СтрокаУдаляемогоОбъекта.ПредставлениеСсылки = УдаляемыйОбъект;
ТипУдаляемогоОбъекта = ТипЗНЧ(УдаляемыйОбъект);
ИмяМетаданного = СоответствиеТипаКМетаданному[ТипУдаляемогоОбъекта];
Если ИмяМетаданного = Неопределено Тогда
ИмяМетаданного = УдаляемыйОбъект.Метаданные().ПолноеИмя();
СоответствиеТипаКМетаданному.Вставить(ТипУдаляемогоОбъекта,ИмяМетаданного);
КонецЕсли;
СтрокаУдаляемогоОбъекта.Метаданные = ИмяМетаданного;
СтрокаУдаляемогоОбъекта.Удалять = Истина;
СтрокаУдаляемогоОбъекта.Удаляется = Истина;
СтрокаУдаляемогоОбъекта.ИндексКартинки = 1;
КонецЦикла;
ЭлементыФормы.УдаляемыеОбъекты.ОтборСтрок.Сбросить();
вДоступностьКнопок();
вПодсчитатьИтогУдаляемыеОбъекты();
Возврат Истина;
КонецФункции
Как вот этот кусок исправить
Попытка
МассивКУдалению = НайтиПомеченныеНаУдаление();
Исключение
Предупреждение("У пользователя не достаточно прав на выполнение операции.");
Возврат Ложь;
КонецПопытки;
чтобы пользователь с правами бухгалтера мог запустить обработку???
Состояние("Выполняется поиск объектов, помеченных на удаление...");
ПоказыватьОбъектыКоторыеМожноУдалить = Истина;
ПоказыватьОбъектыКоторыеНельзяУдалить = Истина;
ПоказыватьСсылкиУдаляемых = Истина;
ПоказыватьСсылкиНеудаляемых = Истина;
СсылкиНаУдаляемыеОбъекты.Очистить();
ТаблицаСсылок = Ложь;
УдаляемыеОбъекты.Очистить();
СоответствиеТипаКМетаданному = Новый Соответствие;
Попытка
МассивКУдалению = НайтиПомеченныеНаУдаление();
Исключение
Предупреждение("У пользователя не достаточно прав на выполнение операции.");
Возврат Ложь;
КонецПопытки;
Для каждого УдаляемыйОбъект из МассивКУдалению цикл
СтрокаУдаляемогоОбъекта = УдаляемыеОбъекты.Добавить();
СтрокаУдаляемогоОбъекта.ссылка = УдаляемыйОбъект;
Попытка
СтрокаУдаляемогоОбъекта.Организация = СтрокаУдаляемогоОбъекта.ссылка.Организация;
Исключение
КонецПопытки;
СтрокаУдаляемогоОбъекта.ПредставлениеСсылки = УдаляемыйОбъект;
ТипУдаляемогоОбъекта = ТипЗНЧ(УдаляемыйОбъект);
ИмяМетаданного = СоответствиеТипаКМетаданному[ТипУдаляемогоОбъекта];
Если ИмяМетаданного = Неопределено Тогда
ИмяМетаданного = УдаляемыйОбъект.Метаданные().ПолноеИмя();
СоответствиеТипаКМетаданному.Вставить(ТипУдаляемогоОбъекта,ИмяМетаданного);
КонецЕсли;
СтрокаУдаляемогоОбъекта.Метаданные = ИмяМетаданного;
СтрокаУдаляемогоОбъекта.Удалять = Истина;
СтрокаУдаляемогоОбъекта.Удаляется = Истина;
СтрокаУдаляемогоОбъекта.ИндексКартинки = 1;
КонецЦикла;
ЭлементыФормы.УдаляемыеОбъекты.ОтборСтрок.Сбросить();
вДоступностьКнопок();
вПодсчитатьИтогУдаляемыеОбъекты();
Возврат Истина;
КонецФункции
Как вот этот кусок исправить
Попытка
МассивКУдалению = НайтиПомеченныеНаУдаление();
Исключение
Предупреждение("У пользователя не достаточно прав на выполнение операции.");
Возврат Ложь;
КонецПопытки;
чтобы пользователь с правами бухгалтера мог запустить обработку???
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот