(79) AlexO, Писал по памяти. Очепятался немного :)
Правильная процедура теста:
Код |
---|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Базовый = Обработки.БазовыйКласс.Создать(); //"Базовый класс" - на самом деле является обычной обработкой
Базовый.ВывестиСписок(); //Вызываем метод обычной обработки
Потомок = Обработки.НовыйКласс.Создать().Класс();//Класс-потомок создается уже при помощи метода Класс(), который прописывает ссылку на себя в обработке-предке в переменную Этот. Поскольку вызовы виртуального метода в предке будут идти как Этот.<Имя метода> , то фактически будет отрабатывать переопределенный в потомке метод.
Потомок.ВывестиСписок();
КонецПроцедуры
|
Результат работы:
Выводим список методом предка:
Базовый класс рисует. № 1
Базовый класс рисует. № 2
Базовый класс рисует. № 3
Базовый класс рисует. № 4
Базовый класс рисует. № 5
Базовый класс рисует. № 6
Базовый класс рисует. № 7
Базовый класс рисует. № 8
Базовый класс рисует. № 9
Базовый класс рисует. № 10
Выводим список методом потомка:
Класс-потомок класс рисует. № 1 уже по другому.
Класс-потомок класс рисует. № 2 уже по другому.
Класс-потомок класс рисует. № 3 уже по другому.
Класс-потомок класс рисует. № 4 уже по другому.
Класс-потомок класс рисует. № 5 уже по другому.
Класс-потомок класс рисует. № 6 уже по другому.
Класс-потомок класс рисует. № 7 уже по другому.
Класс-потомок класс рисует. № 8 уже по другому.
Класс-потомок класс рисует. № 9 уже по другому.
Класс-потомок класс рисует. № 10 уже по другому.
ВЫВОД:
Респект автору! Решение работает отлично!
Хотя и было разработано во времена 8.0. Пример для 1С идет для 1С 8.0. Кое-как нашел дистрибутив 8.0 чтобы проверить.
Протестировано на 1С:Предприятие 8.3 (8.3.5.1383).
Вдохновившись, за эти выходные переписал частично работу с интерфейсом в нашей программке.
В результате количество программного кода уменьшилось раза в три, а функциональности стало намного больше.
На скриншоте отображен результат приведенного мной выше теста с использованием виртуальных методов.
А также результат применения ООП при разработке интерфейса для моей программы.
Прикрепил обработки для демонстрации возможностей.
Прикрепленные файлы:
2015-03-01 16-13-00 Скриншот экрана.png