🏷️ Стиль именования

Единые правила наименования для всей экосистемы

Высоко
🐱 Кот Айван
Хорошее имя — половина документации. Если функция называется ПолучитьАктивныхПользователей, не нужен комментарий. Плохое имя типа Данные1 — тёмный лес для всех.

PascalCase

Все идентификаторы в 1С пишутся в PascalCase — каждое слово с заглавной буквы.

✅ Правильно
ИмяКлиента
МассивТоваров
ТекущаяДата
СуммаЗаказа
НомерДокумента
❌ Неправильно
имяКлиента      // camelCase
массив_товаров  // snake_case
ТЕКУЩАЯДАТА     // UPPERCASE
Суммазаказа     // Нет разделения слов

API методы

Публичные методы библиотек A1sCode используют английские глаголы.

Стандартный словарь

Глагол Назначение Пример
Of Создание из параметров A1sAR.Of(1, 2, 3)
On Fluent-обёртка A1sVT.On(Таблица)
Fill Заполнение A1sAR.Fill(Массив, 0)
Pick Выбрать поля A1sDS.Pick(Стр, "Ключ")
Omit Исключить поля A1sDS.Omit(Стр, "Секрет")
Filter Фильтрация A1sAR.Filter(Массив, "v > 0")
Sort Сортировка A1sVT.Sort(Таблица, "Дата")
Map Преобразование A1sAR.Map(Массив, "v * 2")
Merge Слияние A1sDS.Merge(Стр1, Стр2)
Union Объединение множеств A1sAR.Union(М1, М2)
Почему английский? Это индустриальный стандарт. Filter понятен всем, кто знает JavaScript, Python, C#. ОтфильтроватьМассивПоУсловию — только для русскоязычных.

Переменные

Переменные называй существительными на русском языке.

Правила

  • Осмысленное имя, отражающее содержимое
  • Без венгерской нотации (без префиксов типа)
  • Коллекции — во множественном числе
✅ Хорошо
ТекущийПользователь
СписокТоваров
МассивОшибок
СуммаДокумента
ДатаНачала
НомерСтроки
❌ Плохо
Данные           // Что за данные?
Врем1            // Непонятно
стрИмя           // Венгерская нотация
arrItems         // Английский
X                // Однобуквенные

Исключения

Однобуквенные имена допустимы:

  • i, j, k — индексы в циклах
  • v — текущий элемент в Filter/Map выражениях

Булевы значения

Булевы переменные и функции называй предикативно — как утверждение, на которое можно ответить "да" или "нет".

Паттерны

Паттерн Пример
Это... ЭтоНовыйДокумент
Есть... ЕстьОшибки
Можно... МожноРедактировать
Нужно... НужноОбновить
...Заполнен ДоговорЗаполнен
...Активен ПользовательАктивен
✅ Хорошо
ДокументПроведен
ЕстьПраваНаЗапись
НужноПересчитать
ЭтоГрупповаяОбработка
МожноУдалить
❌ Плохо
Флаг              // Флаг чего?
Режим             // Не булево по смыслу
ПроверкаДаты      // Это процесс, не булево
СтатусАктивности  // Многозначно

Модули

Библиотеки A1sCode следуют единому паттерну именования.

Структура

Компонент Паттерн Пример
Общий модуль A1s + Аббревиатура A1sAR, A1sDS
Обработка (Fluent) A1sDP_ + Аббревиатура A1sDP_AR, A1sDP_VT

Аббревиатуры модулей

AR — Arrays
DS — Data Structures
VT — Value Tables
VL — Value Lists
Q — Query
J — JSON
X — XML
S — Strings
Log — Logging
Web — HTTP
AI — AI/LLM

Шпаргалка

Переменные
ИмяКлиента — PascalCase, русский, существительное
Булевы
ДокументЗаполнен — предикатив, утверждение
API методы
Of, Filter, Sort — английские глаголы
Модули
A1sAR / A1sDP_AR — префикс + аббревиатура