A1sCode vs БСП: когда альтернатива становится необходимостью

A1sCode дополняет БСП: убирает рутину, не навязывает архитектуру и делает код дружелюбным к ИИ‑ассистентам.

Основные болевые точки БСП

1) Избыточная многословность

Там, где нужна одна операция, появляется 5–10 строк избыточной обвязки кодом. (доп.расход на токены при работе с ИИ)

2) Принудительная архитектура

Встраивание в экосистему БСП поднимает порог входа и стоимость сопровождения. (при работе с ИИ требует огромного контекстного окна)

3) Производительность команды

Длинные идентификаторы и многообвязки ухудшают читаемость и мешают ИИ‑генерации (больше токенов на ИИ-обработку = больше стоимость!).

Избыточная многословность — честное сравнение

Задача: получить ссылку пользователя по ИдентификаторПользователяИБ. Сначала — «ручной» чистый 1С, затем — тот же смысл через A1sCode.

Шаг 1. Чистый 1С

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
  Пользователи.Ссылка КАК Ссылка
Из
  Справочник.Пользователи КАК Пользователи
  ГДЕ
    Пользователи.ИдентификаторПользователяИБ = &UID";
Запрос.УстановитьПараметр("UID", UID);
Таб = Запрос.Выполнить().Выгрузить();
Пользователь = ?(Таб.Количество() > 0, Таб[0].Ссылка,
    Справочники.Пользователи.ПустаяСсылка());

Шаг 2. Через A1sCode (одна операция)

Пользователь = A1sQ.ValueQ(
  "ВЫБРАТЬ Ссылка
  ИЗ Справочник.Пользователи
  ГДЕ ИдентификаторПользователяИБ = &UID",
  Справочники.Пользователи.ПустаяСсылка(),
  UID
);

Экономия строк, встроенная обработка ошибок и значение по умолчанию «из коробки».

Принудительная архитектура — не про нас

Производительность — меньше ритуала, больше смысла

Шаг 1. Стандартный запрос (много шагов)

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество
ИЗ Справочник.Пользователи
ГДЕ НЕ ПометкаУдаления";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Выборка.Следующий();
Количество = Выборка.Количество;

Шаг 2. A1sCode (одна строка)

Количество = A1sQ.ValueQ(
  "ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.Пользователи
  ГДЕ НЕ ПометкаУдаления",
  0
);

ИИ‑совместимость: меньше токенов, предсказуемее подсказки

Короткие примитивы

Функции типа A1sQ.ValueQ, CountQ, ExistsQ уменьшают объём промптов и количество ошибок ИИ.

Стандартизированные паттерны

QT → Unload / FirstRow → Default — единый контракт для генерации кода.

Процесс разработки с ИИ

Смотри страницу «Как разрабатывается A1sCode»: мини‑итерации, self‑tests, жёсткая обработка ошибок.

Открыть процесс

Целевые сценарии

Прототипы и MVP

Есть = A1sQ.ExistsQ(
  "ВЫБРАТЬ Ссылка
  ИЗ Справочник.Номенклатура
  ГДЕ Код = &Код",
  КодТовара);

Интеграция в существующий проект

Обучение и отчёты

Топ = A1sQ.Unload(
"ВЫБРАТЬ ПЕРВЫЕ 10 Контрагент,
СУММА(СуммаДокумента) КАК Оборот
ИЗ Документ.Продажа
ГДЕ Дата МЕЖДУ &D1 И &D2
СГРУППИРОВАТЬ ПО Контрагент
УПОРЯДОЧИТЬ ПО Оборот УБЫВ",
D1, D2);

Бизнес‑аргументы

Экономика

  • Освоение: 2–4 часа
  • Скорость типовых задач: +30%
  • Кодовая база: –50% строк
  • Ошибки: –20%

ROI для команды

  1. Джуниоры входят быстрее
  2. Мидлы пишут быстрее
  3. Сеньоры меньше тратят на ревью
  4. ИИ генерирует качественнее

Попробуйте ровно один модуль

Подключите A1sQ в текущий проект. Не зайдёт — удалите за 5 минут. Зайдёт — добавьте остальное выборочно.