Завсегдатай
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
1с8.3 Самописная. Клиент-сервер. Добрый день, Уважаемое сообщество. Столкнулся с вопросом. Как запретить пользователю отменять проводку (програмно), не используя роли?
Сообщение отредактировал l2d808 - 13.08.18, 11:12
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
l2d808 @ Сегодня, 12:10
, Если всем пользователем то ПередЗаписью проверять РежимЗаписи если ОтменаПроведения то Отказ, а если нужны условия то нужо выкручивваться с них.
Завсегдатай
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
sava1 @ Сегодня, 11:10
, Суть в том что, роли раздаются направо и налево, а вот некоторые объекты должны быть стабильно не изменяемые. А вот на счет "ректально" пожалуйста поподробнее...
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Оратор
Группа: Местный
Сообщений: 373
Из: Slovensko
Спасибо сказали: 81 раз
Рейтинг: 0
Цитата(l2d808 @ 14.08.18, 11:06)
Как запретить програмно обычное и интерактисное удаление справочников и документов?
В модуле объекта обработчик ПередУдалением()
Процедура ПередУдалением(Отказ) Если Не РольДоступна ("СуперПуперАдминистратор") Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры
То же добавить и в приведенный выше код:
Процедура ОбработкаУдаленияПроведения(Отказ) Если Не РольДоступна ("СуперПуперАдминистратор") Тогда Сообщить("Відміна проведення ЗАБОРОНЕНА! Зверніться до Адміністратора!"); Отказ = Истина; КонецЕсли; КонецПроцедуры
Ответственным пользователям, которым разрешено помечать на удаление указанные объекты добавить роль "СуперПуперАдминистратор". А вот что делать с обработкой удаления объектов с ИТС или из меню Операции - Удаление помеченных объектов - отобрать право "интерактивное удаление объектов".
Живет на форуме
Группа: Местный
Сообщений: 2745
Из: Проскуров
Спасибо сказали: 705 раз
Рейтинг: 684.2
Цитата(l2d808 @ 14.08.18, 14:06)
при попытке пометить на удаление, реакции никакой
Пометка на удаление - это не удаление, а просто запись документа с доп. реквизитом IsMarked. Анализироват надо перед записью - сравнивать объект и объектВбазе. И в случае пометки - отказываться от записи.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ПометкаУдаления И Не Ссылка.ПометкаУдаления И Не РольДоступна ("СуперПуперАдминистратор") Тогда
ed.kharkov @ 15.08.18, 11:40
, Можно ли эту процедуру создать в общем модуле и применить для всех объектов "Документы" чтоб не писать в каждом отдельно ??
Вот пример из типовой конфигурации. В данном примере перед записью любого типа документа (источник ДокументОбъект) вызывается процедура общего модуля и там можно вызвать Отказ.
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли;
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ВыгрузкаРегламентированныхОтчетов") ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.РегламентированныйОтчет") Тогда // для этих типов документов не проверяем. Возврат; КонецЕсли;
ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи); Если Отказ Тогда #Если Клиент Тогда Сообщить(НСтр("ru='Редактирование данных этого периода запрещено. Изменения не могут быть записаны...';uk='Редагування даних цього періоду заборонено. Зміни не можуть бути записані...'"), СтатусСообщения.Важное); #КонецЕсли КонецЕсли; КонецПроцедуры // ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью()
Slon747 @ Вчера, 9:58
, Благодарю !!! ваш совет помог, только вот как написать метод на условие ПометкаУдаления?
в модуле объекта так работает, а как вызвать из общего модуля такой метод? (ПометкаУдаления, Ссылка)
Если ПометкаУдаления И Не Ссылка.ПометкаУдаления И Не РольДоступна ("ПолныеПрава") Тогда Сообщить("У вас не достаточно прав на удаление!"); Отказ = Истина; КонецЕсли;
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли;
Если Источник.ПометкаУдаления И Не Источник.Ссылка.ПометкаУдаления И Не РольДоступна("ПолныеПрава") Тогда Сообщить("У вас не достаточно прав на удаление!"); Отказ = Истина; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!