Главная Стандарты SyntaxMarks
🟣 Средне — Рекомендуется для сложных функций

✏️ SyntaxMarks

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

//✏ Изменение
//⟳ Цикл
//⚡ Тяжёлое
//↩ Возврат
//▶️ Вызов
//⚙ Исключение
📌 Маркеры

Шесть маркеров SyntaxMarks

Каждый маркер — визуальный якорь для определённого типа операции

//✏
Edit

Изменение

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

Сумма = Сумма + 1; //✏
//⟳
Loop

Цикл

Начало цикла или рекурсии. Помогает быстро найти все итерации в функции.

Для Каждого ... Цикл //⟳
//⚡
Heavy

Тяжёлая операция

Запрос к БД, HTTP-вызов, файловая операция. Всё, что может быть медленным.

Выборка = Запрос.Выполнить(); //⚡
//↩
Return

Возврат

Точка выхода из функции. Важно видеть все места, откуда функция может завершиться.

Возврат Результат; //↩
//▶️
Call

Внешний вызов

Вызов другого модуля, API, side-effect. Показывает зависимости функции.

A1sLog.Info(Сообщение); //▶️
//⚙
Exception

Исключение

Попытка, Исключение, ВызватьИсключение. Блоки обработки ошибок.

Попытка //⚙
🎯 Правила

Когда ставить маркеры

Маркеры нужны в сложном коде. В простых функциях они избыточны

✅ Ставь

Когда ставить маркер

  • На каждое присваивание в сложной функции
  • На начало каждого цикла
  • На все точки выхода (Возврат)
  • На вызовы внешних модулей
  • На тяжёлые операции (запросы, файлы)
  • На обработку исключений
❌ Не ставь

Когда маркер избыточен

  • В однострочных функциях
  • На очевидные операции в простом коде
  • Если это загромождает чтение
  • В тривиальных getter/setter
  • Когда функция меньше 10 строк

Маркеры — специи, не основное блюдо. Не злоупотребляй!

💡 Советы

Продвинутое использование

Лайфхаки для работы с маркерами

Multi

Несколько маркеров

Можно ставить несколько маркеров на одну строку, если операция комбинированная:

Ответ = HTTP.Get(URL); //▶️ //⚡
Comment

С комментарием

Маркер можно дополнить пояснением:

Выборка.Следующий(); //⟳ Обход результата
Search

Поиск в IDE

Ищи //⚡ чтобы найти все тяжёлые операции в проекте. Или //↩ для всех точек выхода.

Break

Прерывание цикла

Для Прервать используй //✖:

Прервать; //✖
📝 Пример

Полный пример с маркерами

Реальная функция со всеми типами маркеров

Full Example

Загрузка и сохранение данных из API

// Загружает данные из API и сохраняет в базу. ✦ // // Параметры: // ➤ URL - Строка: Адрес API. // ➤ Таймаут - Число: Таймаут в секундах. // // Возвращает: // ⬅ Булево - Успех операции. Функция ЗагрузитьИСохранить(URL, Таймаут) Экспорт ib = "Синхронизируем внешние данные с локальной БД"; Попытка //⚙ // Получаем данные Ответ = A1sWeb.Get(URL, Таймаут); //▶️ //⚡ Если НЕ Ответ.Успех Тогда A1sLog.Warn("Ошибка загрузки: " + Ответ.Ошибка); //▶️ Возврат Ложь; //↩ КонецЕсли; // Парсим JSON Данные = A1sJ.Parse(Ответ.Тело); //▶️ // Сохраняем в базу Записано = 0; //✏ Для Каждого Элемент Из Данные Цикл //⟳ НоваяЗапись = Справочники.Товары.СоздатьЭлемент(); //✏ ЗаполнитьЗначенияСвойств(НоваяЗапись, Элемент); //▶️ НоваяЗапись.Записать(); //⚡ Записано = Записано + 1; //✏ КонецЦикла; A1sLog.Info("Загружено записей: " + Записано); //▶️ Возврат Истина; //↩ Исключение //⚙ A1sLog.Error("Критическая ошибка", ИнформацияОбОшибке()); //▶️ Возврат Ложь; //↩ КонецПопытки; КонецФункции
📋 Шпаргалка

Быстрый справочник

Копируй и используй

Cheatsheet

Все маркеры SyntaxMarks

//✏ Изменение (Edit)
//⟳ Цикл (Loop)
//⚡ Тяжёлая операция (Heavy)
//↩ Возврат (Return)
//▶️ Внешний вызов (Call)
//⚙ Исключение (Exception)
← Назад

Intention Block

Однострочное описание намерения функции

Перейти →
Следующий →

Все стандарты

Полный список стандартов A1sCode

Перейти →