В приведенном примере реализован механизм контроля записи документов по определенным договорам без изменений в конфигурации поставщика.
Задача: Надо предупредить пользователя, что он пытается (записать, перепровести) документ в котором используется договор "взятый под контроль" - проведение документов по нему нежелательно (вообще или на дату).
Реализация:
1) Создан справочник "ПодКонтролем" - в котором хранятся ссылки на контролируемые договора
2) Создана подписка на событие "КонтрольДоговоров" - событие "ПередЗаписью". Внимание в прилагаемом примере - нужно добавить все виды документы по которым вы хотите контролировать запись в "Источник" подписки на событие.
3) В общем модуле "мой" процедура "ЗаписьДокументовПоДоговоруПередЗаписью" - назначенная обработчиком события "КонтрольДоговоров"
4) Добавлена общая форма "ФормаПодКонтролем" предупреждения пользователя (От стандартного диалога "Вопрос" отказался из за его "интерфейсной похожести" на другие сообщения, что не обращает внимания пользователя на "серьезность ситуации")
Пример в прилагаемом файле конфигурации. Можно объединять, но не забыть назначить Источники подписке на событие и удалить Документ1 (использован для заполнения свойства Источник подписки на событие).
При желании в процедуру "ЗаписьДокументовПоДоговоруПередЗаписью" можно добавить
ЗаписьЖурналаРегистрации("Изменен документ по договору под контролем",УровеньЖурналаРегистрации.Информация,Метаданные.Справочники.ДоговорыКонтрагентов,Источник,"Проведен документ "+Источник+" пользователем "+СокрЛП(ПараметрыСеанса.ТекущийПользователь),РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
Для отслеживания данного события в журнале регистрации.
В принципе если добавть тип значения в справочник "ПодКонтролем" и СсылкуЛюбогоВида и немного переписать модуль - то можно контролировать любые объекты конфигурации.