CaSH писал(а) 04. Октября 2011 :: 11:59:А Перехватчик при программной записи справочника/документа - не отлавливает никак? А то мне нужно все запретить, но не через права
Одну из лучших реализаций в этом направлении, которую я встречал (хоть и весьма и весьма громоздкую):
Есть класс ТДокумент : Документ
Для каждого вида документа есть класс ТДокумент.<Вид> : ТДокумент.
Далее, вся програмная работа с документами ведется через ТДокумент.<Вид>
(т.е.
Док = СоздатьОбъект("Документ.ПриходныйОрдер"); заменяется на
Док = СоздатьОбъект("ТДокумент.ПриходныйОрдер");
Док.НазначитьКонтекст(СоздатьОбъект("Документ.ПриходныйОрдер")); или даже в конструкторе сделать замену Сам(Контекст).ЗаменитьБазовыйОбъект("Документ", СоздатьОбъект(...)))
а дальше переопределяются методы Новый(), Записать(), etc - в которых делаешь все проверки, которые нужно.
Дополнительно, можно прикрутить перехватчик и вынести, скажем, проверки заполнения документа в отдельный метод класса, который будет вызываться перехватчиком в форме и переопределенным методом Записать().
Короче, простор для фантизии безграничен.
Хотя кода придется писать немало.