Улучшение стандарта "Структура модуля"
Описывается структура областей модулей, которую я использую при разработке на своих проектах. Обсуждаются недостатки стандарта 1С «Структура модуля». Предложен улучшенный подход к работе со структурой модуля.
- Описание
- Подробнее
Описание
Стандарт фирмы 1С «Структура модуля» содержит в себе рекомендации о перечене и составе элементов разделов на которые предлагается разделить программный модуль. Само требование о разделении кода модуля на разделы призвано повысить читаемость кода и упростить внесение изменений в код разными авторами (разработчиками) как при коллективной разработке, так и при доработке прикладных решений на конкретных внедрениях. За туманными выражениями «повысить читаемость» и «упростить внесение изменений» теряется настоящая цель — снижение сложности системы.
В этой небольшой статье я попытаюсь продемонстрировать более удачное применение областей модуля. Как мне представляется, на самом деле, требуется не повысить читаемость кода, а структурировать его, улучшить его понимаемость, и облегчить внесение изменений.
На мой взгляд, даже названия разделов неудачны, например:
— «ПрограммныйИнтерфейс» — интересно, а какой еще как не «Программный» он может быть в данном случае,
— «СлужебныеПроцедурыИФункции» — слишком длинно, к тому же в эту область можно включить вообще любую процедуру и функцию. Критерии считать функциональную единицу «служебной» или «не служебной», как правило, размыты.
— «ОбработчикиСобытийТаблицыФормы» — уснешь, пока дочитаешь до конца, проще и компактнее просто «События».
Предложенный подход не использует в полной мере возможности областей кода. Ведь можно создавать вложенные области. Более того, вложенные области могут иметь одинаковые имена, т.е. например мы можем создать область
#Область Таблицы
#Область Запасы
#Область Команды
#КонецОбласти
#КонецОбласти
#Область Услуги
#Область Команды
#КонецОбласти
#КонецОбласти
#КонецОбластиВот какие разделы рекомендуется использовать.
Для модуля формы:
#Область Форма
#КонецОбласти
#Область Элементы
#КонецОбласти
#Область Таблицы
#Область <ИмяТаблицы>
#Область Команды
#КонецОбласти
#КонецОбласти
#КонецОбласти
#Область Команды
#КонецОбласти
#Область Оповещения
#КонецОбласти
#Область Подключаемые
#КонецОбласти
#Область Методы
#Область НаКлиенте
#КонецОбласти
#Область НаСервере
#КонецОбласти
#КонецОбласти

