1С:Предприятие 8.3+ · MIT License

Пишите меньше.
Делайте больше.

A1sCode — библиотека для 1С:Предприятие. Четыре модуля убирают шаблонный код при работе со структурами, массивами, справочниками и документами.

160+
экспортируемых функций
4
модуля
8
частей книги
MIT
открытая лицензия
Выпуск квартир · Excel → провести
// Прежде — 40 строк. Теперь:

Гр = A1sCatalogs.EnsureGroup(
    "Номенклатура", "Корпус А");

A1sCatalogs.EnsureBatch(
    "Номенклатура", Имена,
    A1sDS.Of("Родитель", Гр));

A1sDocs.On("ВыпускПродукцииУслуг",
        A1sDS.Of(
            "Дата",        '20260201',
            "Организация", МояОрг))
    .LoadRows("Продукция", ДанныеExcel)
    .Post();
Архитектура библиотеки

Четыре модуля — один стиль

Каждый модуль решает одну задачу. Они не зависят друг от друга, но отлично работают вместе.

🧱
A1sDS
Структуры и КЗ

Создание, трансформация и анализ структур. Заменяет шаблонный код «Новый Структура + N вызовов Вставить» на одну инлайн-строку.

Of(K1,V1 … K20,V20)
Merge · Defaults
Pick · Omit · Rename
RenameFields · GroupBy
Функций в модуле 35+
📐
A1sAR
Массивы

Операции над массивами без ручных циклов. Chunk для пачечной загрузки, Union/Difference для работы как с множествами, PickFilled для очистки данных.

Of(V1…V40, Unique?)
Chunk · Flatten
Union · Difference · Intersection
PickFilled · RemoveDuplicates
Функций в модуле 38+
📦
A1sCatalogs
Справочники

Полный жизненный цикл работы со справочниками. Ensure закрывает find-or-create одной строкой. EnsureUpdate — upsert для регулярных синхронизаций.

Ensure · EnsureBatch
EnsureUpdate · EnsureByType
MapRow · PickFromDocument
Refs · Count · Exists
Функций в модуле 55+
📄
A1sDocs
Документы

Создание, заполнение и проведение документов. LoadRowsMapped заменяет цикл с маппингом одним вызовом. PostAll проводит пачку с отчётом об ошибках.

Of · OfAuto · OfBase · Copy
LoadRows · LoadRowsMapped
Post · PostAll · UpdateAll
AllInPeriod · Details
Функций в модуле 55+
Документация

Кулинарная книга A1sCode

Восемь частей — от строительных блоков до реальных проектов. Каждый рецепт — рабочий код с объяснением каждой строки.

ЧАСТЬ 1
Строительные блоки
A1sDS и A1sAR — фундамент библиотеки. Of, Merge, Defaults, Chunk, PickFilled.
13 рецептов
ЧАСТЬ 2
Справочники
Ensure, EnsureUpdate, EnsureByType, MapRow, иерархия — полный цикл A1sCatalogs.
12 рецептов
ЧАСТЬ 3
Документы
Of, LoadRows, LoadRowsMapped, Post, PostAll, метаданные — жизненный цикл документа.
12 рецептов
ЧАСТЬ 4
Паттерны
Excel → документ, JSON с чужими полями, синхронизация, 500 документов пачками.
8 паттернов
ЧАСТЬ 5
Fluent API
On().Set().AddRows().Post() — цепочки для документов, справочников, структур, массивов.
9 рецептов
ЧАСТЬ 6
Антипаттерны
9 типичных ошибок с исправлениями. SelfTest. Чек-лист при загадочной ошибке.
9 антипаттернов
ЧАСТЬ 7
Реальные проекты
ЖК-застройщик, гостиница, ресторан, УК ЖКХ, CRM-интеграция — готовые обработки.
6 проектов
ЧАСТЬ 8
Справочник
160+ функций в одной таблице. Живой поиск, фильтр по модулю, сортировка.
160+ функций
Читать с начала — Часть 1 →
Примеры кода

Суперкод в действии

Реальные сценарии — до 10 строк вместо 40–60.

ПРИМЕР 01
Excel → выпуск за 5 строк
Dok = A1sDocs.Of("ВыпускПродукцииУслуг",
    A1sDS.Of("Дата", '20260201',
               "Организация", МояОрг));

A1sDocs.LoadRows(Dok, "Продукция", ДанныеExcel);
Ссылка = A1sDocs.Post(Dok);
ПРИМЕР 02
Upsert прайса одной командой
Для Каждого Поз Из ПрайсЛист Цикл
    A1sCatalogs.EnsureUpdate(
        "Номенклатура", Поз.Наименование,
        A1sDS.Of("Цена", Поз.Цена,
                   "Родитель", Гр));
КонецЦикла;
ПРИМЕР 03
Провести пачку с отчётом
Итог = A1sDocs.PostAll(
    A1sDocs.AllUnposted(
        "ВыпускПродукцииУслуг",
        '20260201', '20260228'));

Сообщить("✓ " + Итог.Success.Количество()
    + "  ✗ " + Итог.Failed.Количество());
Все 14 примеров →
Установка

Быстрый старт

Библиотека подключается в любую конфигурацию за несколько минут.

Подключение в конфигурации
// 1. Скопировать обработки в конфигурацию:
//    A1sDS.epf, A1sAR.epf,
//    A1sCatalogs.epf, A1sDocs.epf

// 2. Добавить общие модули (если нужно):
//    A1sQ — вспомогательные запросы

// 3. Использовать:
Ссылка = A1sCatalogs.Ensure(
    "Номенклатура", "Квартира 101",
    A1sDS.Of("Родитель", Гр));

// 4. Проверить установку:
A1sDocs.SelfTest();
A1sCatalogs.SelfTest();
A1sDS.SelfTest();
A1sAR.SelfTest();
1

Скачать библиотеку

Загрузить релиз с a1scode.ru или из репозитория. Четыре файла обработок.

2

Добавить в конфигурацию

Загрузить обработки в «Обработки» конфигуратора. Никаких изменений типовой конфигурации не требуется.

3

Запустить SelfTest

Вызвать A1sDocs.SelfTest() из консоли — убедиться что всё работает. Ожидаемый вывод: ✓ Пройдено N из N.

4

Начать с Кулинарной книги

Часть 1 покрывает A1sDS и A1sAR — базовые строительные блоки. Остальные части строятся на них.

Найти функцию за секунду

Полный справочник всех 160+ функций с живым поиском.
Фильтр по модулю, сортировка, бейджи v2.1.