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С.
Превращаем 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, обмена с сайтами,
мобильными приложениями.
🚀 Итого экономии
80%
меньше кода для типовых задач
50+
готовых функций
2 мин
на подключение
Каждая функция проверена в боевых условиях. Документация на русском. Поддержка сообщества.