Написал библиотеку функций для облегчения работы всем, кто предпочитает делать проекты через код. Использую сам, существенно облегчает написание.
Задача библиотеки (назвал Авророй) - упрощение работы в коде путём предоставления разработчику простого и структурированного API для выполнения как можно большего числа стандартных действий БАС. К сожалению, далеко не все действия можно впихнуть в функции, (хотя умудрился полукостыльным методом впихнуть невпихуемое в случае с шаблонами).
В общем, ссылка на скачивание: https://cloud.mail.ru/public/Dtmr/S4TjGgopm
Подробное описание:
Библиотека состоит из объектов (на момент написания первой версии их 12 штук), каждый из которых несёт определённый функционал. Объекты содержат функции (которые добавляются по мере выхода новых версий библиотеки), каждая из которых делает определённое действие в рамках функционала объекта.
Вызов функций осуществляется путём обращения к несложному API. Все команды задокументированы в справочнике библиотеки. Справочник представляет из себя модуль, содержащий только информацию и не выполняющий никаких действий (а для большей пользы записал туда ещё и список известных API BAS, буду благодарен разработчику или членам комьюнити за помощь в систематизации и этой информации).
Каждая функция описана в справочнике, так же указаны необходимые для её вызова параметры. Пример:

В верхней строке указано имя функции и аргументы. В нижней в квадратных скобках перед описанием [1.0.0], [1.0.1] указана версия библиотеки, в которой появилась данная функция.
Сам справочник содержит в виде отдельных экшенов поля с информацией о функциях тех самых 12 объектов:

Каждый объект отвечает за свой функционал. Отдельно первым в списке справочник, содержащий методы API BAS.
Пример использования.
Объект AURORA содержит две функции:
- aurora.help() - справка по библиотеке
- aurora.check() - проверка верссии библиотеки

Если ваш проект использует функцию, например, версии 1.0.2, то вы можете прописать в OnApplicationStart код вида
var block = '176998609'
aurora.check('1.0.2')
И тогда Аврора заставит пользователя обновиться до актуальной версии, в которой эта функция уже есть:

Пока что выкладываю версии в обыкновенное облако, но если проект будет пользоваться популярностью, задумаюсь об официальном сайте.
Как видите, все логи цветные, за вывод логов отвечает отдельный объект alg{ };
Изучив его функции в справочнике вы можете увидеть, зачем в приведённом выше коде есть переменная block, содержащая id блока вашего кода.
Весь вывод лога построен на виде:
[номер потока][id блока][текущее время][имя функции/аккаунта]текст лога.
Можно так же без переменной [имя функции/аккаунта].
Сразу расскажу про именование объектов. Задача была - создать как можно более простые трёхбуквенные имена, не пересекающиеся (что важно) с именами возможных переменных.
Не очень удобно называть объект log, учитывая что пользователи на автомате будут называть словом log переменную, содержащую выводимый в лог текст. После чего имя объекта затрётся и при следующем вызове будет ошибка.
Потому вместо var log = {} Аврора использует var alg = {} и т.д.
alg в данном случае означает "aurora log", значение сокращений в именах всех объектов описаны в библиотеке.
Пример вызова функций объекта alg:
var block = '176998609'
alg.allcolors()
выведет список всех доступных цветов и их кодировки в RGB:

Запрос цвета происходит ПО ИМЕНИ ЦВЕТА, а не по RGB:
[[RED]] = alg.color('красн')
А вот в переменную по запросу выводится код цвета в RGB:

Цвет лога указывается через три звёздочки(***):
var block = '176998609';
alg.one('Пример зелёного лога***зел')
alg.name('ok.ru','Фирменный цвет "одноклассников"***ок')

Если не указывать в логе цвет, лог будет серым:
var block = '176998609'
alg.one('Пример серого лога')
alg.name('Имя','Пример серого лога с именем')

(для обозначения имени аккаунта я выбрал синий цвет, в приведённой ниже таблице цветов он называется "name" или "имя" и присваивается имени автоматически, для вывода имени функций выбрал коричневый - "func", "функц", "функ")
Если не указать в коде перед вызовам функций, завязанных на лог, идентификатор блока в переменной block, Аврора попросит указать айдишник:
alg.one('Лог, который не будет выведен без указания id блока')

Я думаю, это не лишнее, указать id блока просто, это нужно сделать только однажды в начале блока, а с ним отладка и контроль проекта полегче будет. Дополнительно используйте имена и цвета чтобы ориентироваться в логе было просто.
Для тех, кто не знает, что такое идентификаторы блоков:

Далее, можно выводить лог с двумя и тремя цветами:
var block = '176998609';
alg.one('Лог одного цвета***зел')
alg.two('В этом логе***жёлт','два цвета***бел')
alg.three('Ссылка на гугл***усп','google.com***син','синего цвета***авито')
alg.name3('avito.ru***авито','Фирменный цвет***ok','Авито***авито','зелёный***ок')

На практике мне никогда не пригождалось больше трёх цветов, но если будет запрос, сделаю функции с большим их количеством.
Достаточно подробная документация позволит легко воспользоваться любой функцей.
Например, щёлкнув в выпадающем меню на нужную функцию

Вы можете копировать текст из поля

И вставить в ваш код:
[[TEXT]] = 'Текст Без Пробелов'
[[TEXT_RESULT]] = atx.spaces([[TEXT]])
