Каталог решений - ООП. Инкапсуляция. Часть 1.

ООП. Инкапсуляция. Часть 1.

ООП. Инкапсуляция. Часть 1.

В наличии

Объектный подход к программированию — это инкапсуляция, наследование и полиморфизм.
Обсудим инкапсуляцию. Что это за зверь?

Категория:

Описание

Часто, при работе с компонентой «Бухгалтерский учет», в конфигурациях встречается конструкция

Сч60_1 = СчетПоКоду("60.1");

Все бы ничего, но ровно до того момента, когда не меняется план счетов. Это происходит не так часто, но на моем веку такое счастье произошло :). И одно из изменений в новом плане счетов — смена кода у счета для учета реализации с 46 на 90. Пересматривать всю конфигурацию на предмет кода 46 для замены на 90 не очень хочется. Даже несмотря на возможности глобального поиска текста в конфигурации — задача не из самых благодарных. Объектный подход предлагает решение для таких проблем, и имя этому решению — инкапсуляция.

Суть счета не поменялась от смены его кода: он так и остался счетом для учета реализации. При грамотном использовании объектов — программист создаст объект «ПланСчетов», в котором будут определены методы СчетУчетаВыручки(), СчетУчетаТоваров(), СчетАвансовПоставщикам() и тому подобные. Для лучшего понимания ниже приведена реализация этих методов для нового ПС

Функция СчетРеализации() Экспорт 
Возврат СчетПоКоду("90.1");
КонецФункции
Функция СчетУчетаТоваров() Экспорт
Возврат СчетПоКоду("41.1");
КонецФункции
Функция СчетАвансовПоставщикам() Экспорт
Возврат СчетПоКоду("60.2");
КонецФункции

Таким образом мы отделяем суть происходящего от деталей реализации. В тот момент, когда наша выручка начинает разделятся на облагаемую и необлагаемую ЕНВД — мы меняет код одного метода:

Функция СчетРеализации() Экспорт 
Возврат СчетПоКоду("90.1.1");
КонецФункции

и добавляем еще один:

Функция СчетРеализацииЕНВД() Экспорт 
Возврат СчетПоКоду("90.1.2");
КонецФункции

Подобное скрытие деталей реализации (в нашем случае — коды счетов) за интерфейсами (методами с человеческими именами) и называется инкапсуляцией.

has been added to your cart:
Оформление заказа