Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамСоглашения при написании ко…

1С:Предприятие 8.2 /
Разработчикам /
Соглашения при написании кода

Оглавление

Структура модуля

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

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

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

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

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

////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС

////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
////////////////////////////////////////////////////////////////////////////////
//  Обновление информационной базы 

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

////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ

////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

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

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ <ИМЯ ТАБЛИЦЫ ФОРМЫ>

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ КОМАНД ФОРМЫ

////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

См. также: Правила создания модулей форм

2. Общие требования к разделам программных модулей.

2.1. Заголовок модуля представляет собой комментарий в самом начале модуля. В заголовке модуля приводится его краткое описание и условия применения.
Например:

////////////////////////////////////////////////////////////////////////////////
// Клиентские процедуры и функции общего назначения:
// - для работы со списками в формах;
// - для работы с журналом регистрации;
// - для обработки действий  пользователя  в процессе  редактирования 
// многострочного текста, например комментария в документах;
// - прочее.
// 
////////////////////////////////////////////////////////////////////////////////

Для модулей форм в заголовке рекомендуется размещать описание параметров формы.

2.2. Раздел описания переменных. Имена переменных назначаются согласно общим правилам образования имен переменных, а их использование описывается в статье Использование глобальных переменных в программных модулях.

Все переменные модуля должны быть снабжены комментарием, достаточным для понимания их назначения. Комментарий рекомендуется размещать в той же строке, где объявляется переменная.
Пример:

Перем ВалютаУчета Экспорт; // Валюта, в которой ведется учет 
Перем АдресПоддержки Экспорт; // Адрес электронной почты, куда направляются сообщения об ошибках

2.3. Программный интерфейс. Экспортные процедуры и функции, составляющие его программный интерфейс, размещаются сразу же после описания переменных. Такие процедуры и функции предназначены для использования другими объектами конфигурации или другими программами (например, через внешнее соединение), поэтому должны быть расположены в модуле на "видном месте".

См. также: Описание процедур и функций

2.4.1 Обработчики событий формы, команд и элементов формы. Перед служебными процедурами и функциями в модуле формы располагаются обработчики событий формы, а также обработчики событий команд и элементов формы.

Методическая рекомендация (полезный совет)

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

2.4.2. У каждого события должна быть назначена своя процедура-обработчик. Если одинаковые действия должны выполняться при возникновении событий в разных элементах формы следует:

Например, неправильно:

&НаКлиенте
Процедура ПоИсполнителюПриИзменении(Элемент)
	ПараметрыОтбора = Новый Соответствие();
	ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору);
	ПараметрыОтбора.Вставить("ПоИсполнителю", ПоИсполнителю);
	УстановитьОтборСписка(Список, ПараметрыОтбора);
 КонецПроцедуры 
&НаКлиенте
Процедура ПоАвторуПриИзменении(Элемент)
	ПоИсполнителюПриИзменении( Неопределено );
КонецПроцедуры

правильно:

&НаКлиенте
Процедура ПоИсполнителюПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

&НаКлиенте
Процедура ПоАвторуПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

&НаСервере
Процедура УстановитьОтбор()
	ПараметрыОтбора = Новый Соответствие();
	ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору);
	ПараметрыОтбора.Вставить("ПоИсполнителю", ПоИсполнителю);
	УстановитьОтборСписка(Список, ПараметрыОтбора);
КонецПроцедуры

Это требование обусловлено тем, что логически процедуры-обработчики событий не предназначены для использования в коде модуля, а вызываются непосредственно платформой. Смешение же этих двух сценариев в одной процедуре неоправданно усложняет ее логику и снижает ее устойчивость (вместо одного предусмотренного сценария вызова - по событию из платформы - код процедуры должен рассчитывать и на другие "прямые" вызовы из кода).

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

Методическая рекомендация (полезный совет)

Рекомендуется располагать обработчики, придерживаясь порядка их следования в описании встроенного языка.

2.6. Служебные процедуры и функции модуля, которые не являются обработчиками событий, а составляют внутреннюю реализацию модуля, размещаются в модуле следом за обработчиками событий.

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

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

2.7. Раздел инициализации содержит операторы, инициализирующие переменные модуля или объект (форму). Например:

АдресПоддержки = "v8@1c.ru"; // Адрес для обращения в службу технической поддержки
ВыполнитьИнициализацию();

Нас находят: 1, 1с 8 2 вызвать процедуру из модуля менеджера, 1с из формы обработки вызвать процедуру модуля, заголовка английского модулей, как вызвать процедуру из другого модуля 1с, модуль менеджера вызвать процедуру 1с 8 2, модуля, служебныепроцедурыифункции


Подписка на новости RSS     Добавьте в закладки Google fusion     Мы в Google+    

 

Мы ВКонтакте

 

Мы на Facebook