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