6.7 Какой должен быть порядок определения процедур и функций в программном модуле?
❓ 6.7 Какой должен быть порядок определения процедур и функций в программном модуле?
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Руководство разработчика — 4.2.4. Формат программного модуля https://its.1c.ru/db/v854doc#bookmark:dev:TI000000132
-
ИТС: Стандарты разработки — Структура модуля https://its.1c.ru/db/v8std/content/455/hdoc
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Структура программного модуля
Заголовок раздела «Структура программного модуля»Программный модуль в общем случае состоит из трёх последовательных разделов:
- раздел определения переменных — объявления
Перем; - раздел процедур и функций — определения
ПроцедураиФункция; - раздел основной программы — исполняемые операторы вне процедур и функций.
В конкретном виде модуля некоторые разделы могут отсутствовать. Подробнее в вопросе 6.2 «Какие разделы существуют в общем модуле».
Области по стандарту разработки
Заголовок раздела «Области по стандарту разработки»Стандарт рекомендует дополнительно разделять модуль на логические области. Для модулей объектов, менеджеров, наборов записей, обработок и отчётов используется следующий порядок:
#Область ОписаниеПеременных#КонецОбласти
#Область ПрограммныйИнтерфейс#КонецОбласти
#Область ОбработчикиСобытий#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс#КонецОбласти
#Область СлужебныеПроцедурыИФункции#КонецОбласти
#Область Инициализация#КонецОбластиНазначение областей:
ПрограммныйИнтерфейс—экспортныепроцедуры и функции, предназначенные для вызова из других модулей или программ. Не следует в этот раздел помещать экспортные функции и процедуры, которые предназначены для вызова исключительно из модулей самого объекта, его форм и команд;ОбработчикиСобытий— обработчики событий объекта, напримерПриЗаписииПриПроведении;СлужебныйПрограммныйИнтерфейс— экспортные методы для внутреннего взаимодействия частей библиотеки(подсистемы);СлужебныеПроцедурыИФункции— внутренняя реализация модуля.
Точный состав областей зависит от вида модуля. Например, для общих модулей и модулей форм стандарт предусматривает другие шаблоны.
Связанные по смыслу процедуры и функции рекомендуется располагать рядом. Не следует группировать их только по месту выполнения — например, отдельно клиентские и серверные методы.
Пустые области в модуле оставлять не рекомендуется.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Платформа определяет общий порядок разделов модуля(Раздел переменных - Раздел процедер и фукнций - Раздел основной программы). Для понятной структуры кода стандарт рекомендует группировать подпрограммы по назначению с помощью областей.