Вопрос «красоты» программного кода в среде 1С часто вызывает споры: кто-то считает это излишним перфекционизмом, а кто-то — фундаментом профессиональной разработки. Однако, когда проект разрастается, а в команде появляется более одного человека, единый стандарт становится производственной необходимостью. Разберем подробно, на какие правила стоит опираться и какими инструментами пользоваться, чтобы ваш код был не только рабочим, но и эстетичным, а также понятным для коллег.
Прежде всего, выясним, существуют ли официальные правила. Да, компания «1С» разработала и постоянно дополняет документ, известный как «Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8». Этот документ является обязательным для разработчиков тиражных решений и крайне рекомендован для всех остальных.
Найти эти стандарты можно на портале ИТС в разделе «Разработка и администрирование». Основные разделы, которые нам интересны, касаются соглашений при написании кода. Проанализируем ключевые принципы, изложенные в этих стандартах:
ТекСтр или ВыбТов. Правильно писать: ТекущаяСтрока, ВыбранныйТовар.ИНН, МФО, ФизЛицо). Все остальные слова пишутся полностью.Рассмотрим подробнее одну из самых сложных задач в программировании — придумывание названий. Проанализируем ситуацию: процедура должна рассчитать скидку для покупателя. Можно назвать её Расчет(), но это ни о чем не говорит. Можно назвать РассчитатьИтоговуюСкидкуДляТекущегоДокументаСУчетомВсехАкций() — это слишком громоздко.
Золотое правило: название должно отвечать на вопрос «что делает этот блок кода?».
Посмотрим на пример хорошего именования:
Процедура РассчитатьСкидкуНастроки(ТекущаяСтрока, ПараметрыРасчета)
// Логика расчета
КонецПроцедуры
Здесь соблюден баланс: мы понимаем, что происходит расчет скидки для конкретной строки, используя определенные параметры.
Сегодня «красивый код» — это не только то, что вы пишете руками, но и то, как вы проверяете написанное. Проанализируем современные инструменты, которые помогают поддерживать чистоту кода автоматически:
Если...ИначеЕсли, линтер тут же выдаст предупреждение.Если вы всё еще работаете в классическом Конфигураторе, это не значит, что код должен быть неопрятным. Разберем по шагам, как быстро привести текст в порядок с помощью горячих клавиш:
Tab для сдвига вправо или Shift+Tab для сдвига влево. Это позволяет соблюдать иерархию вложенности условий и циклов.//.Профессиональные разработчики всё чаще внедряют мировые практики, такие как принципы Роберта Мартина, в мир 1С. Рассмотрим основные из них:
Правило бойскаута. Всегда оставляйте код после себя чуть чище, чем он был до вашего вмешательства. Увидели опечатку в комментарии или лишнюю пустую строку — исправьте её, даже если вы пришли чинить другую ошибку.
Принцип единственной ответственности. Каждая процедура должна выполнять только одну задачу. Если ваша процедура ПриЗаписи() занимает 1000 строк и делает всё — от проверки прав до печати чека — её необходимо разбить на мелкие специализированные функции.
Отказ от «магических чисел». Выясним причину, почему код ниже считается плохим:
Если Статус = 2 Тогда
// Что такое 2? Непонятно.
КонецЕсли;
Вместо этого используйте перечисления или предопределенные элементы, чтобы код читался как книга:
Если Статус = Перечисления.СтатусыЗаказов.Согласован Тогда
// Теперь код понятен без комментариев
КонецЕсли;
Запросы в 1С часто составляют значительную часть кода. Чтобы они оставались читаемыми, рекомендуется придерживаться следующих правил:
ВЫБРАТЬ, ГДЕ, УПОРЯДОЧИТЬ ПО) заглавными буквами.ИЗ писать с новой строки.Посмотрим на пример правильно оформленного запроса внутри кода:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар,
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Услуга = &Ложь";
Подводя итог, можно сказать, что «красивый код» — это не вопрос вкуса, а вопрос профессионализма и уважения к коллегам. Следуя официальным стандартам 1С и используя современные инструменты анализа, мы создаем системы, которые легко сопровождать и развивать годами.