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

Имена процедур и функций

1.

Чем лучше имена - тем проще читать код. Хорошо выбранное имя процедуры и имена параметров описывают её смысл лучше, чем комментарии. Если имя подобрать сложно - возможно, уже есть проблема в архитектуре решения. Если самодокументирующееся имя придумать легко - все спроектировано верно.

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

2.

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

См. #std640: Параметры процедур и функций

Неправильно

Функция ВыполнитьПроверку(Параметр1, Рекв, ТЗ)
Функция ПолучитьМассивыРеквизитов(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации)

Правильно

Функция РеквизитОбъектаЗаданногоТипа(Объект, ИмяРеквизита, ТипЗначения)
Функция ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, ИменаВсеРеквизиты, ИменаРеквизитыОперации)
3.

Формируйте имена так:

  • Удалите пробелы между словами.
  • Каждое новое слово напишите с большой буквы.
  • Предлоги и местоимения пишите большими буквами.
4.

Не используйте типы в названиях процедур и функций. Использовать можно только если без использования неясно название метода.

Неправильно

Функция ПолучитьМассивРолейСПравомДобавления()
Функция ПолучитьСтруктуруДополнительныхНастроек()

Правильно

Функция ИменаРолейСПравомДобавления()
Функция ДополнительныеНастройки()
5.

Имена процедур берите от неопределенной формы глагола. От сути выполняемого действия.

Неправильно

Процедура ЗагрузкаКонтрагента()

Правильно

Процедура ЗагрузитьКонтрагента()
6.1.

Имена функций берите от описания возвращаемого значения.

Неправильно

Функция ПолучитьПолноеИмя() 
Функция СоздатьПараметрыЗаполненияЦенПоставщика() 
Функция ОпределитьДатуНачалаСеанса()

Правильно

Функция ПолноеИмя() 
Функция НовыеПараметрыЗаполненияЦенПоставщика() 
Функция ДатаНачалаСеанса()
6.2.

Если функция создает какой-то объект, назовите его со слова Новый.

Неправильно

Функция ДобавитьПолеФормы()
Функция СоздатьЭлементСправочникаФайлы()
Функция ПолучитьТаблицуКоманд()

Правильно

Функция НовоеПолеФормы() 
Функция НовыйЭлементСправочникаФайлы()
Функция НоваяТаблицаКоманд()

Редакционное исключение

Пункт 6.2 требует начинать имя создающей функции со слова Новый. Если команда осознанно вводит исключение для фабричных функций, соглашение можно уточнить:

  • Новый, когда функция является конструктором и непосредственно формирует объект известного типа;
  • Создать, когда функция является фабрикой и оставляет выбор конкретного типа или способа создания за реализацией.
6.3.

Если функция выполняет проверку, назовите ее со слова Это или используйте причастие.

Неправильно

Функция ПроверитьПроведенностьДокумента()
Функция ПроверитьИзменениеРеквизитовДокумента()
Функция ВнешняяЗадача()

Правильно

Функция ДокументПроведен()
Функция РеквизитыДокументыИзменены()
Функция ЭтоВнешняяЗадача()
6.4.

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

Правильно

Функция ВыбратьДанныеПоПравилу(Правило, ПользовательскиеНастройки)
Функция ПреобразоватьДанныеПоПравилу(НаборыДанных, ПараметрыПреобразования)
6.5.

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

Правильно

Функция РазрешитьРедактированиеРеквизитовОбъекта(Форма) 

Связанные требования и рекомендации по именованию обработчиков

Требования стандартов 1С

  • Для каждого события создавайте отдельный обработчик с именем по умолчанию, а общую логику выносите в отдельную процедуру — #std455, пункт 2.4.3.
  • Имена обработчиков, программно подключаемых через УстановитьДействие, начинайте с префикса Подключаемый_#std492, пункт 1.

Дополнительные рекомендации редакции v8std.ru

Рекомендации ниже дополняют #std647 и не продолжают нумерацию исходного стандарта.

Предопределенные события

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

Пример

ПриОпределенииНеобходимостиПоказаПредупрежденияОбУстаревшемКлассификатореБанков

События элементов формы

Имя обработчика события элемента формы составляйте из имени элемента и имени события без разделителя _.

Пример

Для элемента ДатаОтгрузки и события НачалоВыбора используйте обработчик ДатаОтгрузкиНачалоВыбора.

Обратные вызовы ОписаниеОповещения

Обработчик, переданный в ОписаниеОповещения, называйте по событию, которое уже произошло к моменту вызова обработчика. Не составляйте имя из имени запускающего асинхронного метода и слова Продолжить.

Неправильно

НачатьПолучениеФайловПродолжить

Правильно

ПослеПолученияФайлов

Источники