A1sCodeбиблиотека 1С
A1sCode Assistant for 1C: Open Assistant. GPT is hosted on OpenAI servers — may require VPN to access.
Note: If external service assistant links don't open for everyone — try a different browser or network/provider.

Рецепты кода A1sCode

Шпаргалки: быстрые мини‑введения по библиотеке и по 1С.
Справочник A1sCode → Справочник 1С →

Превращаем 10 строк кода в 1. Готовые решения для ежедневных задач — от простых до профессиональных.

⚡ Мгновенная экономия времени

Каждая функция A1sCode экономит от 5 до 30 строк кода. При 50+ функциях в библиотеке — это тысячи строк, которые вам не придется писать и отлаживать.

🎯 Проверка пустой строки (самая частая задача)

Обычный код С A1sCode
Если НЕ ПустаяСтрока(СокрЛП(Строка)) И СокрЛП(Строка) <> "" Тогда // делаем что-то КонецЕсли; Если НЕ A1sS.IsBlank(Строка) Тогда // делаем что-то КонецЕсли;
💡 Экономия: Учитывает пустые строки, пробелы, табы, переносы. Используется в 80% проектов.

Изучить функцию

🚀 Запрос одной строкой (экономит 3 строки каждый раз)

Стандартный подход С A1sCode
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка КАК Товар ИЗ Справочник.Номенклатура"; Результат = Запрос.Выполнить(); Таблица = Результат.Выгрузить(); Таблица = A1sQ.Unload("ВЫБРАТЬ Номенклатура.Ссылка КАК Товар ИЗ Справочник.Номенклатура");
⚡ Результат: 4 строки превратились в 1. Код стал читаемее и компактнее.

Смотреть детали

🎨 Чистка текста от пользователей

Проблема Решение A1sCode
Ввод: " Иван Петров ООО \"Ромашка\" " // Куча лишних пробелов и переносов Результат = A1sS.NormalizeWhitespace(" Иван Петров ООО \"Ромашка\" "); // "Иван Петров ООО \"Ромашка\""
🛡️ Защита: Убирает лишние пробелы, табы, переносы. Идеально для обработки пользовательского ввода.

Попробовать

🎯 Параметры запроса через структуру

Много кода Элегантно
Запрос = Новый Запрос("ВЫБРАТЬ * ГДЕ Дата МЕЖДУ &НачДата И &КонДата И Контрагент = &Контрагент"); Запрос.УстановитьПараметр("НачДата", НачДата); Запрос.УстановитьПараметр("КонДата", КонДата); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос = A1sQ.CreateQ("ВЫБРАТЬ * ГДЕ Дата МЕЖДУ &НачДата И &КонДата И Контрагент = &Контрагент"); A1sQ.SetQParams(Запрос, Новый Структура("НачДата, КонДата, Контрагент", НачДата, КонДата, Контрагент));
📊 Статистика: При 5+ параметрах экономит 10+ строк. Меньше ошибок, больше читаемости.

Изучить подробнее

🔒 Безопасный поиск LIKE (защита от инъекций)

Опасно и громоздко Безопасно и просто
ПоискСтрока = "50% скидка"; // Пользователь может сломать запрос символами % и _ БезопаснаяСтрока = "%" + СтрЗаменить(СтрЗаменить(ПоискСтрока, "%", "[%]"), "_", "[_]") + "%"; Таблица = Новый Запрос("ВЫБРАТЬ * ГДЕ Наименование ПОДОБНО &Строка").Выполнить().Выгрузить(); БезопаснаяСтрока = "%" + A1sQ.EscapeLike("50% скидка") + "%"; Таблица = A1sQ.Unload("ВЫБРАТЬ * ГДЕ Наименование ПОДОБНО &Строка", БезопаснаяСтрока);
🔐 Безопасность: Автоматически экранирует спецсимволы. Защищает от неожиданного поведения поиска.

Безопасный поиск

📱 Чистка телефона регулярками

Было Стало
Телефон = "Тел: +7 (999) 123-45-67 доб. 123"; // Нужно убрать всё кроме цифр // Пришлось бы писать много СтрЗаменить... ЧистыйТелефон = A1sS.RegexReplace("Тел: +7 (999) 123-45-67 доб. 123", "\\D", ""); // Результат: "79991234567123"
🎯 Применение: Обработка телефонов, ИНН, номеров документов. Одна строка вместо десятка.

Мощь регулярок

📝 Логирование одной строкой

Стандартное логирование Быстрое логирование
СтруктураСобытия = Новый Структура; СтруктураСобытия.Вставить("Событие", "Импорт данных"); СтруктураСобытия.Вставить("Комментарий", "Начало загрузки файла товаров"); СтруктураСобытия.Вставить("УровеньЖурнала", УровеньЖурналаРегистрации.Информация); ЗаписьЖурналаРегистрации.Записать(СтруктураСобытия); A1sLog.Info("Импорт данных", "Начало загрузки файла товаров");
📊 Мониторинг: Есть также A1sLog.Error(), A1sLog.Warning(). Плюс получение логов за период.

Простое логирование

🗃️ Временные таблицы без головной боли

Сложно управлять Автоматическое управление
// Создаем ВТ Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ПОМЕСТИТЬ ВТ_Товары ИЗ Справочник.Номенклатура"); Запрос.Выполнить(); // Используем ВТ Запрос.Текст = "ВЫБРАТЬ * ИЗ ВТ_Товары"; Результат = Запрос.Выполнить(); // Не забыть удалить ВТ!!! // Создаем менеджер ВТ МенеджерВТ = A1sQ.CreateQWithTemps("ВЫБРАТЬ Ссылка ПОМЕСТИТЬ ВТ_Товары ИЗ Справочник.Номенклатура"); // Используем Результат = A1sQ.ExecuteBatch("ВЫБРАТЬ * ИЗ ВТ_Товары", МенеджерВТ); // Автоматически удаляется A1sQ.DestroyAllTemps(МенеджерВТ);
🎯 Профи-уровень: Никаких забытых временных таблиц. Чистая архитектура сложных запросов.

Мастерство запросов

📦 JSON без боли

Ручная сборка JSON Автоматическая сериализация
// Собираем JSON руками - много кода и ошибок СтрокаJSON = "{"; СтрокаJSON = СтрокаJSON + """Товар"":" + """" + Товар.Наименование + ""","; СтрокаJSON = СтрокаJSON + """Цена"":" + Цена + ","; // ... и так далее Данные = Новый Структура("Товар, Цена, Количество", Товар.Наименование, Цена, Количество); JSONСтрока = A1sJ.ToJSON(Данные); // {"Товар":"Хлеб","Цена":50,"Количество":2}
🌐 API-ready: Готовые данные для REST API, обмена с сайтами, мобильными приложениями.

JSON-магия

🚀 Итого экономии

80%
меньше кода для типовых задач
50+
готовых функций
2 мин
на подключение

Каждая функция проверена в боевых условиях. Документация на русском. Поддержка сообщества.

Начать использовать Все функции

Доп. рецепты

Пагинация seek

Надёжный обход огромных выборок «после ключа».

seek A1sQ

Экспорт ТД

HTML всегда, PDF — если поддерживается.

tabdoc export

ТД по макету

Шапка/строки/итог через области макета.

layout areas

JSON‑схема

Проверка типов/обязательности/диапазонов.

json schema