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