Оформление
Общие сведения
Модули
Все модули (общие, формы, объекта, менеджера, команд) должны соответствовать стандартам:
-
Поддержка толстого клиента, управляемое приложение, клиент-сервер (относится к модулю объекта и менеджера)
-
В типовых объектах не должно быть наших процедур и функций, наш код должен быть расположен в собственных общих модулях.
Строки
-
При длине строки более 140 символов следует использовать переносы. Строки длиннее 140 символов делать не рекомендуется, за исключением тех случаев, когда перенос невозможен (например, в коде определена длинная строковая константа, которая выводится без переносов в окно сообщений с помощью объекта СообщениеПользователю).
-
Конкатенация строк может быть заменена на СтрСоединить или СтрШаблон
Вместо:
Процедура ВыводОшибки(НомерСтроки, ТипДанных)
Результат = "Ошибка в данных в строке " + НомерСтроки + " (требуется тип " + ТипДанных + ")";
КонецПроцедурыИспользовать:
Процедура ВыводОшибки(НомерСтроки, ТипДанных)
Результат = СтрШаблон("Ошибка в данных в строке %1 (требуется тип %2)", НомерСтроки, ТипДанных);
КонецПроцедуры
Имена методов и их описание
-
Стандарт 1С "Описание процедур и функций"
-
Стандарт 1C "Правила образования имен переменных"
Важно: Не использовать сокращения переменных подобных примеру:
масРеквизитов, соотвВидИмя, новСтр
Это единственный "контракт" между разработчиками касающихся типизации. Для быстрого создания описания есть специальная возможность в конфигураторе:
Запросы
-
Нужно стараться, чтобы каждая часть формируемого запроса могла быть открыта с помощью конструктора запросов
Метаданные
Читаемость кода
Избыточный верхний уровень условия Если...Тогда...Иначе
Для улучшения читаемости сделать условие в начале метода с выходом из метода с помощью Возврат.
Необязательный комментарий
Оставляйте комментарий который имеет смысл и может помочь другим разработчикам.
Присутствует «мертвый» код, пустой обработчик
Не должно быть закомментированного кода и пустых обработчиков.
Проверка заполненности/пустоты коллекции
Для повышения читаемости проверку коллекции на заполненность/пустоту лучше выполнять через специальную функцию ЗначениеЗаполнено вместо использования сравнения количества коллекцию с нулем. Правило
Разделение на логические сегменты
Пустые строки помогают разбивать код приложения на логические сегменты. Одной пустой строкой отделяются друг от друга методы и логические секции внутри метода для более удобного чтения.
Разделить выполнение и выборку/выгрузку результата запроса
Следует корректно отделять выполнение запроса от выборки или выгрузки его результата.
-
Используйте выполнить для выполнения операций, которые не требуют немедленного получения результата, проверка на пустой результат запроса,возвращение нескольких пакетов, а также когда нужно выполнить какие-либо действия с результатом, например создать или уничтожить временную таблицу.
-
Используйте выборку для больших наборов данных или когда нужна последовательная обработка
-
Используйте выгрузку, когда нужно манипулировать данными как единым целым или когда объем данных небольшой
Правильный выбор между выборкой и выгрузкой может значительно повлиять на производительность вашего решения.
Тексты запросов выносите в отдельные функции
Длинные запросы, больше обычной выборки с условием, стоит выносить в отдельную функцию. Код становится компактней, а для отладки текста запроса код модуля не нужен.
Непечатные символы
Обязательно включить отображение непечатных символов. ИТС: Отобразить непечатаемые символы
Для удобства рекомендуется использовать символ табуляции │
Рекомендуется снять флаг Разрешить помещать курсов после конца, чтобы не создать случайно множество лишних символов пробела.
Выравнивание по символам делается с помощью пробелов. Нельзя использовать Tab после первого значимого символа. В разных средах будет разъезжаться отображение.
Для облегчения рутины можно использовать инструмент для выравнивания ones-formatting.
Статья: Отступ с помощью табуляции, выравнивание по пробелам.