Опускаемые параметры должны быть только в конце списка параметров процедуры или функции.
Следует стремиться к тому, чтобы не допускать разные типы одного параметра.
Следует стремиться к тому, чтобы порядок параметров процедур и функций соответствовал значимости и физическому смыслу параметров в соответствии с лексической конструкцией <Что>, <Какое>, <Что сделать>, <Каким образом>.
Пример
Неправильно: Функция ПроверитьДоступностьФормы(ФормаВладелец, РежимОткрытия, Форма) Правильно: Функция ПроверитьДоступностьФормы(Форма, ФормаВладелец, РежимОткрытия) |
Возвращаемые значения процедур (функций)
Следует стремиться к тому, чтобы функция не возвращала значения разных типов.
Если результатом функция является флаг (успех/ошибка), следует возвращать логическую величину.
Обработчики событий
У каждого события должен быть свой обработчик. Если одинаковые действия должны выполняться при изменении разных элементов управления или при нажатии нескольких кнопок (например), в этом случае:
• создается отдельная процедура (функция), выполняющая необходимые действия;
• для каждого элемента управления создается отдельный обработчик с именем, назначаемым по умолчанию;
• из каждого обработчика вызывается требуемая процедура (функция).
Использование системных наборов значений
Где возможно, следует использовать системные наборы значений. Например, вместо Символ(10) следует использовать Символы.ПС.
Использование в условиях Если точного равенства
В тех случаях, когда в условиях Если… проверяется возвращаемое значение функции/метода, следует использовать точное равенство.
Пример
Неправильно: Если Выбран() <> 0 Тогда .... Правильно: Если Выбран() = 1 Тогда |
Использование "обратных условий"
Запрещается использование вместо вложенных конструкций Если...КонецЕсли конструкций типа Если...ИначеЕсли...ИначеЕсли... с «обратными» условиями, как сложные для анализа, модификации и отладки.
Пример
Конструкция: Если (А=1) Тогда ИначеЕсли (Б=2) Тогда ИначеЕсли (В=3) Тогда С=4; КонецЕсли; должна быть заменена на конструкцию: Если (А<>1) Тогда Если (Б<>2) Тогда Если (В=3) Тогда С=4; КонецЕсли; КонецЕсли; КонецЕсли; |
Сравнение с логической константой
Результат функции, возвращающей логическое значение, не следует проверять путем сравнения с логической константой.
Пример
Неправильно: Если ЭтоНовый() = Истина Тогда Правильно: Если ЭтоНовый() Тогда |
Присвоение промежуточных результатов
В тех случаях, когда требуется сравнивать результаты каких-либо выражений, следует предварительно присваивать результаты этих выражений промежуточным переменным, и сравнивать уже сами эти переменные.
Неправильно: Если Вопрос("Данные физлица еще не записаны! Записать?", РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да,) = КодВозвратаДиалога.Да Тогда Записать(); Иначе Возврат КонецЕсли; Правильно: Ответ = Вопрос("Данные физлица еще не записаны! Записать?", РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да,); Если Ответ = КодВозвратаДиалога.Да Тогда Записать(); Иначе Возврат КонецЕсли; |
Требования к реквизитам объектов метаданных и форм
Имена реквизитов (измерений, ресурсов и т.д.) объектов конфигурации
Не рекомендуется использовать имена реквизитов (измерений, ресурсов и пр.) объектов конфигурации, совпадающие с именами самих объектов.
Поскольку в таких случаях возникает неоднозначность в запросах к данному объекту, требующая применения нестандартных синонимов (синоним должен отличаться от имени объекта).
Что затрудняет использование конструктора запроса и снижает наглядность самого текста запроса.
Например, выполнение приведенного запроса вызывает ошибку:
ВЫБРАТЬ Сведения.Сведения ИЗ РегистрСведений.Сведения КАК Сведения |
Дата: 2018-11-18, просмотров: 281.