← Назад к вопросам

Что знаешь про стандарты разработки 1С?

1.0 Junior🔥 171 комментариев
#Стандарты разработки#Опыт и софт-скиллы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Стандарты разработки 1С

Стандарты разработки — это набор правил и соглашений для обеспечения качества кода и его поддерживаемости в 1С Предприятии. Это критично в командной разработке и при долгосрочной поддержке систем.

Соглашения об именовании

// Процедуры и функции - PascalCase
Процедура ВычислитьИтоги()
Функция ПолучитьДанные()

// Локальные переменные
ПеременнаяСКрасивымНазванием = "значение";

// Константы - UPPERCASE
СТАНДАРТНЫЙ_РАЗМЕР = 100;

Архитектурные стандарты

Слоистая архитектура:

  • Presentation Layer (Формы, отчёты)
  • Application Layer (Бизнес-логика)
  • Domain Layer (Сущности)
  • Infrastructure Layer (БД, API)

Зависимости только в одну сторону (вниз по слоям).

Правила обработки ошибок

Попытка
    РезультатЗапроса = Запрос.Выполнить();
Исключение
    Если ОшибкаБД Тогда
        ПроцедураОбработкиОшибкиБД();
    КонецЕсли;
КонецПопытки;

Правила:

  • Ловись только там, где можешь обработать
  • Логируй все критичные ошибки
  • Не писмай пустые блоки Исключение
  • Пробрасывай ошибку выше при невозможности обработать

Работа с БД

Запросы:

  • ВСЕГДА используй параметризованные запросы
  • Избегай конкатенации строк с пользовательским вводом
  • Выбирай только нужные колонки, не ВЫБИРАЙ
  • Используй GROUP BY вместо циклов
Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |  Товар,
    |  СУММА(Количество) КАК КоличествоИтого
    |ИЗ РегистрНакопления.НаличиеТоваров
    |ГРУППИРОВАТЬ ПО Товар");
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Результат = Запрос.Выполнить();

Индексы:

  • На колонки в WHERE
  • На внешние ключи
  • На часто сортируемые поля

Безопасность

// Проверка прав
Если НЕ ПравоДоступа("Редактирование", Справочники.Товары) Тогда
    ВызватьИсключение("Нет прав");
КонецЕсли;

Стандарты защиты:

  • Никогда не конкатенируй SQL с пользовательским вводом
  • Валидируй данные на всех границах
  • Проверяй права перед критичными операциями
  • Логируй все попытки несанкционированного доступа

Тестирование

// Unit-тесты обязательны
// Структура: Arrange — Act — Assert
Процедура Тест_ВычислениеСуммы()
    СуммаПервая = 100;
    СуммаВторая = 50;
    РезультатСложения = СуммаПервая + СуммаВторая;
    Утверждать(РезультатСложения = 150);
КонецПроцедуры

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

Best practices:

  • Избегай циклов в запросах
  • Кэшируй повторные вычисления
  • Переиспользуй соединения
  • Периодически профилируй код
  • Используй постраничную выдачу для больших результатов

Документирование

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

Инструменты контроля

  • Sonar 1C для анализа кода
  • Встроенная проверка синтаксиса в IDE
  • Обязательный code review перед merge
  • Automated testing для регрессии

Ключевые принципы

DRY (Don't Repeat Yourself) — не дублируй код

SOLID — следуй принципам проектирования

KISS (Keep It Simple) — не усложняй

Читаемость — код пишется один раз, читается много раз

Maintainability — думай о будущем разработчике

Соблюдение стандартов экономит 80% времени при поддержке и снижает количество ошибок в 5+ раз.