1с8.3 Самописная. Клиент-сервер.
Добрый день, Уважаемое сообщество.
Столкнулся с вопросом. Как запретить пользователю отменять проводку (програмно), не используя роли?
Процедура ОбработкаУдаленияПроведения(Отказ)
Сообщить("Відміна проведення ЗАБОРОНЕНА! Зверніться до Адміністратора!");
Отказ = Истина;
КонецПроцедуры
Процедура ПередУдалением(Отказ)
Если Не РольДоступна ("СуперПуперАдминистратор") Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
Если Не РольДоступна ("СуперПуперАдминистратор") Тогда
Сообщить("Відміна проведення ЗАБОРОНЕНА! Зверніться до Адміністратора!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ПометкаУдаления
И Не Ссылка.ПометкаУдаления
И Не РольДоступна ("СуперПуперАдминистратор") Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ВыгрузкаРегламентированныхОтчетов")
ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.РегламентированныйОтчет") Тогда
// для этих типов документов не проверяем.
Возврат;
КонецЕсли;
ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи);
Если Отказ Тогда
#Если Клиент Тогда
Сообщить(НСтр("ru='Редактирование данных этого периода запрещено. Изменения не могут быть записаны...';uk='Редагування даних цього періоду заборонено. Зміни не можуть бути записані...'"), СтатусСообщения.Важное);
#КонецЕсли
КонецЕсли;
КонецПроцедуры // ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью()
Если ПометкаУдаления
И Не Ссылка.ПометкаУдаления
И Не РольДоступна ("ПолныеПрава") Тогда
Сообщить("У вас не достаточно прав на удаление!");
Отказ = Истина;
КонецЕсли;
Процедура ПередПометкойНаУдалениеДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если Источник.ПометкаУдаления И Не Источник.Ссылка.ПометкаУдаления И Не РольДоступна("ПолныеПрава") Тогда
Сообщить("У вас не достаточно прав на удаление!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры