Задачи дня
- Понять идею библиотеки: минимализм, читаемость, повторное использование.
- Установить/подключить A1sCode в тестовую базу.
- Выполнить 3 «пробных» вызова функций.
- Осознать роли модулей: A1sQ, A1sO, A1sS, A1sLog, A1sJ, A1sX, A1sArrays, A1sLocks.
- Сформировать рабочее окружение: конфигурация + расширение (при необходимости).
Что такое A1sCode
- Набор лаконичных утилит и паттернов для разработки в 1С.
- Фокус: короткие функции, предсказуемое поведение, простые имена.
- Цель: выше скорость разработки, ниже когнитивная нагрузка.
Плюсы
- Меньше «шумного» кода — больше сути.
- Единая терминология и подходы.
- Быстрые утилиты для данных, строк, дат, запросов.
Где применять
- Внутренние утилиты проекта.
- Интеграции, отчёты, фоновые обработки.
- Шаблоны для типовых задач (валидация, преобразование).
Подключение в проект
- Создайте тестовую базу или используйте песочницу.
- Добавьте модули библиотеки (как общий модуль/модули) или подключите расширение с A1sCode.
- Убедитесь, что модули доступны на клиенте/сервере согласно их назначению.
Рекомендация: держать A1sCode в отдельном репозитории, версии — по тегам. Паспорт модуля — в шапке комментариями (id, версия, владелец, ссылки).
Первый запуск: 3 коротких примера
1) Проверка пустого значения
// Пример: A1sO.Empty / A1sO.NotEmpty
Если A1sO.Empty(Неопределено) Тогда
Сообщить("OK: пустое значение распознано.");
КонецЕсли;
Если A1sO.NotEmpty("Текст") Тогда
Сообщить("OK: значение не пустое.");
КонецЕсли;
2) Быстро привести к строке
// Пример: A1sS.AsString
Сообщить(A1sS.AsString(123)); // "123"
Сообщить(A1sS.AsString(Истина)); // "Истина"
Сообщить(A1sS.AsString(Дата(2025, 8, 27))); // "27.08.2025"
3) Мини-выгрузка запроса
// Пример: A1sQ.Unload — безопасная выгрузка результата запроса в ТаблицуЗначений
ЗапросТекст = "ВЫБРАТЬ 1 КАК One";
Таблица = A1sQ.Unload(ЗапросТекст);
Сообщить("Строк: " + Таблица.Количество());
Примечание: подробности по запросам — с Дня 3 по День 9.
Паттерны A1sCode
- Короткие функции (одна задача — одна функция).
- Идемпотентность где возможно (повторные вызовы безопасны).
- Явные имена (Empty, AsString, NumOrZero — без сюрпризов).
- Мини-зависимости и переиспользуемые утилиты.
- Логи по делу (A1sLog) и короткие сообщения.
Практика (15–30 минут)
- Создайте общий модуль A1sSandbox и добавьте процедуру ТестДня1().
- Вызовите в ней:
A1sO.Empty,A1sS.AsString,A1sQ.Unload. - Выведите результаты через
Сообщить()илиA1sLog.Info().
Процедура ТестДня1() Экспорт
// 1) Пусто/не пусто
Если A1sO.Empty(Неопределено) Тогда
A1sLog.Info("День 1", "Empty работает");
КонецЕсли;
// 2) В строку
Стр = A1sS.AsString(Число(42));
A1sLog.Info("День 1", "AsString: " + Стр);
// 3) Выгрузка запроса
Таблица = A1sQ.Unload("ВЫБРАТЬ 1 КАК One");
A1sLog.Info("День 1", "Количество строк: " + Таблица.Количество());
КонецПроцедуры
Чек-лист
- □ Подключил A1sCode к базе.
- □ Выполнил ТестДня1() без ошибок.
- □ Зафиксировал версию библиотеки и окружения.
Что дальше
Завтра разберём архитектуру библиотеки: принципы организации модулей, зоны ответственности, типовые сценарии подключения.