Это же основы наследования

Например, в классе-родителе реализован некий общий алгоритм (Выполнить/Обработать), который может себя по-разному вести в зависимости от используемого класса.
Вот подобные вариации и закидываются в так называемые виртуальные функции, которые могут переопределяться в классах-наследниках.
Пример кода
1. В родителе Класс1 определен алгоритм
Проц Выполнить() Экспорт
Код1();
Сам().ВыполнитьЗаписьВЛог(Параметры...);
Код2();
КонецПроц
Проц ВыполнитьЗаписьВЛог(Параметры...) ЭКспорт // для виртуальных функций экспорт обязателен
// по умолчанию никакого лога
КонецПроцедуры
а в наследнике КлассСЗаписьюВЛог1С переопределяем
Проц ВыполнитьЗаписьВЛог(Параметры...) ЭКспорт
ВыполнитьЗаписьВЛог1С();
КонецПроцедуры
или в наследнике2 КлассСЗаписьюЛогаВФайлНаДиске переопределяем
Проц ВыполнитьЗаписьВЛог(Параметры...) ЭКспорт
ВыполнитьЗаписьВФайл();
КонецПроцедуры
А клиенты могут выбирать, какого из наследника создать и выполнить метод "Выполнить".
В этом случае мы получили вариантивность поведения кода при добавлении нового поведения без изменения основного алгоритма.
ЗЫ поищи какую-нибудь популярную книжку по основам ООП для любого языка программирования.
ЗЗЫ в 1С++ 3.0 можно не определять в модуле класса методы типа Сам() или Этот(), а сразу в коде писать вирт().ВыполнитьЗаписьВЛог(Параметры...)