Часто, при работе с компонентой "Бухгалтерский учет", в конфигурациях встречается конструкция
Сч60_1 = СчетПоКоду("60.1");
Все бы ничего, но ровно до того момента, когда не меняется план счетов. Это происходит не так часто, но на моем веку такое счастье произошло :). И одно из изменений в новом плане счетов - смена кода у счета для учета реализации с 46 на 90. Пересматривать всю конфигурацию на предмет кода 46 для замены на 90 не очень хочется. Даже несмотря на возможности глобального поиска текста в конфигурации - задача не из самых благодарных. Объектный подход предлагает решение для таких проблем, и имя этому решению - инкапсуляция.
Суть счета не поменялась от смены его кода: он так и остался счетом для учета реализации. При грамотном использовании объектов - программист создаст объект "ПланСчетов", в котором будут определены методы СчетУчетаВыручки(), СчетУчетаТоваров(), СчетАвансовПоставщикам() и тому подобные. Для лучшего понимания ниже приведена реализация этих методов для нового ПС
Функция СчетРеализации() Экспорт
Возврат СчетПоКоду("90.1");
КонецФункции
Функция СчетУчетаТоваров() Экспорт
Возврат СчетПоКоду("41.1");
КонецФункции
Функция СчетАвансовПоставщикам() Экспорт
Возврат СчетПоКоду("60.2");
КонецФункции
Таким образом мы отделяем суть происходящего от деталей реализации. В тот момент, когда наша выручка начинает разделятся на облагаемую и необлагаемую ЕНВД - мы меняет код одного метода:
Функция СчетРеализации() Экспорт
Возврат СчетПоКоду("90.1.1");
КонецФункции
и добавляем еще один:
Функция СчетРеализацииЕНВД() Экспорт
Возврат СчетПоКоду("90.1.2");
КонецФункции
Подобное скрытие деталей реализации (в нашем случае - коды счетов) за интерфейсами (методами с человеческими именами) и называется инкапсуляцией.