К основному содержанию
A1sCode
Быстрый старт
Site build 3.7.5 · практика

Суперкод без стены листингов

Выберите бизнес-сценарий слева. Сначала поймите намерение и контракт, затем прочитайте один активный пример.

9 сценариев18 примеровMILA-комментарииИнтерактивный словарь
1
ЗадачаЧто должно измениться в бизнесе
2
КонтрактКакие данные входят и выходят
3
КодОдин активный листинг с понятиями
📄 Сценарий 1

Создать и провести документ

Самый частый сценарий — создать документ, заполнить шапку, добавить строки в табличную часть и провести. Раньше это 40 строк, теперь 8.

A1sDocsA1sDSA1sAR
ЗадачаСоздать и провести документ
Что изучаемA1sDocs, A1sDS, A1sAR
ЧтениеВыберите пример во вкладках справа
До / послеСравнить с классическим кодом 1С
✗ Раньше (классический 1С)
// 40 строк, куча служебного кода
НовыйДок = Документы.ВыпускПродукцииУслуг
    .СоздатьДокумент();
НовыйДок.Дата = ТекущаяДата();
НовыйДок.Организация = Орг;
НовыйДок.Склад = Склад;
НовыйДок.Комментарий = "Загружено из Excel";

НоваяСтрока = НовыйДок.Продукция.Добавить();
НоваяСтрока.Номенклатура = НомСсылка;
НоваяСтрока.Количество = 1;
НоваяСтрока.Сумма = 3500000;
// ... повторить для каждой строки ...

НовыйДок.Записать(
    РежимЗаписиДокумента.Проведение);
СсылкаНаДок = НовыйДок.Ссылка;
✓ Теперь (A1sCode)
// MILA · Намерение: собрать и провести выпуск без ручного управления объектом
// Результат: шапка, строки и проведение выражены тремя самостоятельными действиями
// Описываем шапку документа как данные, а не как последовательность присваиваний
Док = A1sDocs.Of("ВыпускПродукцииУслуг",
    A1sDS.Of(
        "Дата",         '20260201',
        "Организация", Орг,
        "Склад",       Склад,
        "Комментарий", "Загружено из Excel"));

// Загружаем весь набор строк одной операцией: исходная таблица остаётся источником истины
A1sDocs.LoadRows(Док, "Продукция", ДанныеExcel);

// Проводим только полностью подготовленный документ и получаем ссылку
Ссылка = A1sDocs.Post(Док);
01
Загрузка выпуска продукции из массива строк
Создаём документ, добавляем несколько квартир в ТЧ, проводим. Имена номенклатуры передаём строками — EnsureByType сам найдёт/создаст ссылки.
A1sDocs A1sDS A1sAR
1С:Предприятие 8.3+MILA: намерение → граница → результат
1C
НамерениеЗагрузка выпуска продукции из массива строк
РезультатСоздаём документ, добавляем несколько квартир в ТЧ, проводим
// ─────────────────────────────────────────────────
// Шаг 1: Список квартир — просто строки
// ─────────────────────────────────────────────────
Квартиры = A1sAR.Of(
    A1sDS.Of("Название", "Квартира 101", "Площадь", 42.5, "Цена", 3500000),
    A1sDS.Of("Название", "Квартира 102", "Площадь", 38.0, "Цена", 3100000),
    A1sDS.Of("Название", "Квартира 103", "Площадь", 55.2, "Цена", 4400000));

// ─────────────────────────────────────────────────
// Шаг 2: Создаём документ — шапка одной структурой
// ─────────────────────────────────────────────────
Dok = A1sDocs.Of("ВыпускПродукцииУслуг",
    A1sDS.Of(
        "Дата",        '20260201',
        "Организация", МояОрганизация,   // ссылка из переменной
        "Склад",       СкладГотовойПрод,
        "Комментарий", "Корпус А — февраль 2026"));

// ─────────────────────────────────────────────────
// Шаг 3: Добавляем строки в ТЧ
// AddRowAuto — сам разрешает "Квартира 101" в ссылку
// по типу реквизита Номенклатура из метаданных ТЧ
// ─────────────────────────────────────────────────
Для Каждого Квартира Из Квартиры Цикл
    A1sDocs.AddRowAuto(Dok, "Продукция",
        A1sDS.Of(
            "Номенклатура", Квартира.Название,  // строка → ссылка автоматом
            "Количество",   1,
            "Сумма",        Квартира.Цена));
КонецЦикла;

// ─────────────────────────────────────────────────
// Шаг 4: Провести — одна строка
// ─────────────────────────────────────────────────
СсылкаНаВыпуск = A1sDocs.Post(Dok);
Сообщить("✓ Выпуск создан: " + СсылкаНаВыпуск);
💡
AddRowAuto vs AddRow. Если вы передаёте строку (наименование) в поле-ссылку — используйте AddRowAuto: он посмотрит на тип реквизита в метаданных ТЧ и сам вызовет EnsureByType. Если у вас уже есть ссылки — используйте обычный AddRow, это быстрее.