Перейти к содержанию

В модуле должны быть определены стандартные области

1.1. В программном модуле (общие модули, модули объектов, модули менеджеров объектов, модули форм, команд и т.п.) в общем случае могут присутствовать следующие разделы в приведенной ниже последовательности:

  • заголовок модуля
  • раздел описания переменных
  • экспортные процедуры и функции модуля, составляющие его программный интерфейс
  • обработчики событий объекта (формы)
  • служебные процедуры и функции модуля
  • раздел инициализации

Некоторые разделы могут присутствовать только в модулях определенного вида. Например, обработчики событий элементов форм могут присутствовать только в модулях форм, а раздел описания переменных и раздел инициализации не могут быть определены в неглобальных общих модулях, модулях менеджеров объектов, наборов записей, значений констант и модуле сеанса.

Требование о разделении кода модуля на разделы призвано повысить читаемость кода и упростить внесение изменений в код разными авторами (разработчиками) как при коллективной разработке, так и при доработке прикладных решений на конкретных внедрениях.

1.2. Объемные разделы модулей рекомендуется разбивать на подразделы по функциональному признаку.

1.3 При разработке на конфигураций на версии платформы версии 8.2 (и более ранних) разделы и подразделы модулей оформляются в виде комментариев особого вида. Названия разделов и подразделов при этом пишутся в свободной форме.

При разработке на платформе версии 8.3 разделы и подразделы оформляются в виде областей. При этом имена областей должны удовлетворять требованиям стандарта Правила образования имен переменных

1.4. Шаблон (заготовка для копирования) разделов для общих модулей:

    ////////////////////////////////////////////////////////////////////////////////
    // Заголовок модуля: краткое описание и условия применения модуля.
    //
    ////////////////////////////////////////////////////////////////////////////////

    # Область ПрограммныйИнтерфейс
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныйПрограммныйИнтерфейс
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныеПроцедурыИФункции
    //Код процедур и функций
    # КонецОбласти
  • Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования другими объектами конфигурации или другими программами (например, через внешнее соединение).
  • Раздел «Служебный программный интерфейс» предназначен для модулей, которые являются частью некоторой функциональной подсистемы. В нем должны быть размещены экспортные процедуры и функции, которые допустимо вызывать только из других функциональных подсистем этой же библиотеки.
  • Раздел «Служебные процедуры и функции» содержит процедуры и функции, составляющие внутреннюю реализацию общего модуля.В тех случаях, когда общий модуль является частью некоторой функциональной подсистемы, включающей в себя несколько объектов метаданных, в этом разделе также могут быть размещены служебные экспортные процедуры и функции, предназначенные только для вызова из других объектов данной подсистемы. Для объемных общих модулей рекомендуется разбивать этот раздел на подразделы, по функциональному признаку. Например:
    # Область ОбновлениеИнформационнойБазы
    //Код процедур и функций
    # КонецОбласти

1.5. Шаблон оформления разделов для модулей объектов, менеджеров, наборов записей, обработок, отчетов и т.п.:

    # Область ПрограммныйИнтерфейс
    //Код процедур и функций
    # КонецОбласти

    # Область ОбработчикиСобытий
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныйПрограммныйИнтерфейс
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныеПроцедурыИФункции
    //Код процедур и функций
    # КонецОбласти
  • Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования в других модулях конфигурации или другими программами (например, через внешнее соединение). Не следует в этот раздел помещать экспортные функции и процедуры, которые предназначены для вызова исключительно из модулей самого объекта, его форм и команд. Например, процедуры заполнения табличной части документа, которые вызываются из обработки заполнения в модуле объекта и из формы документа в обработчике команды формы не являются программным интерфейсом модуля объекта, т.к. вызываются только в самом модуле и из форм этого же объекта. Их следует размещать в разделе «Служебные процедуры и функции».
  • Раздел «Обработчики событий» содержит обработчики событий модуля объекта (ПриЗаписи, ПриПроведении и др.)
  • Раздел «Служебный программный интерфейс» имеет такое же предназначение, как и в общих модулях.
  • Раздел «Служебные процедуры и функции» имеет такое же предназначение, как и в общих модулях.

1.6. Шаблон оформления разделов для модулей форм:

    # Область ОбработчикиСобытийФормы
    //Код процедур и функций
    # КонецОбласти

    # Область ОбработчикиСобытийЭлементовШапкиФормы
    //Код процедур и функций
    # КонецОбласти

    # Область ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицыФормы>
    //Код процедур и функций
    # КонецОбласти

    # Область ОбработчикиКомандФормы
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныеПроцедурыИФункции
    //Код процедур и функций
    # КонецОбласти
  • Раздел «Обработчики событий формы» содержит процедуры-обработчики событий формы: ПриСозданииНаСервере, ПриОткрытии и т.п.
  • Раздел «Обработчики событий элементов шапки формы» содержит процедуры-обработчики элементов, расположенных в основной части формы (все, что не связано с таблицами на форме).
  • В разделах «Обработчики событий элементов таблицы формы <имя таблицы формы>» размещаются процедуры-обработчики таблиц формы и элементов таблиц. Для процедур-обработчиков каждой таблицы должен быть создан свой раздел.
  • Раздел «Обработчики команд формы» содержит процедуры-обработчики команд формы (имена которых задаются в свойстве Действие команд формы).
  • Раздел «Служебные процедуры и функции» имеет такое же предназначение, что и в общих модулях.

1.7. Шаблон оформления разделов для модулей команд:

    # Область ОбработчикиСобытий
    //Код процедур и функций
    # КонецОбласти

    # Область СлужебныеПроцедурыИФункции
    //Код процедур и функций
    # КонецОбласти

См. также - Структура модуля