Среди возможностей расширения:
- удобные методы работы со стандартными типами (Строка, Число, Массив, Структура, ТаблицаЗначений)
- стандартными интерфейсами (Запросы, Формы, Объекты, Метаданные)
- работа с часто встречающимися внешними системами (API, Word, Excel)
- и универсальные инструменты нашей собственной разработки (Универсальная Форма, Механизмы).
Лицензия MIT, код открыт и доступен на Гитхабе. С этого момента планируется человеческая история версий (в рамках стандартных механизмов 1С). Любой вклад приветствуется (хотя код-ревью может быть жесткое).
TL,DR: Много потенциально полезного кода за 1 СтартМани (или качайте бесплатно на Гитхабе https://github.com/Shadawn/A1-Export).
На всякий случай уточняю - А1Э это библиотека. Сама по себе она ничего не делает. У неё нет пользовательского интерфейса, где можно "ткнуть галки". Они предназначена для использования программистами.
Предупреждение - документация по библиотеке оставляет желать лучшего. Я планирую это исправить в следующих релизах.
Основные модули, интересные для общественности:
А1Э_Ворд - содержит замечательную функцию А1Э_Ворд.Напечатать(), которая позволяет получить Ворд-документ. Работает в веб-клиенте!
А1Э_Даты - всякие функции для работы с Датами. Например, содержит функции ИзЖСОН / ДляЖСОН, позволяющие превратить дату 1С из/в дату формата JSON.
А1Э_ДопРеквизиты - дополнительные реквизиты это очень удобная штука для небольших доработок, но обращаться к ним неудобно. Этот модуль предоставляет функции вроде А1Э_ДопРеквизиты.Значение(ОбъектИлиСсылка, ИмяДопРеквизита, ...), которые делают работу значительно удобнее.
А1Э_Запросы - содержит функции для работы с запросами.
А1Э_Иерархии - в А1Э иерархиями я называю массивы структур массивов соответствий и т. д. - то, что в Javascript было бы объектом.
А1Э_Коннектор - интегрирована великолепная публикация //infostart.ru/public/709325/ (интеграция разрешена в рамках лицензии Apache 2.0).
А1Э_Массивы - исправляет слабость стандартных механизмов 1С в области массивов. Например, было бы логично, если бы у Массива был бы метод .Сортировать(). В стандартной 1С его нет. В этом модуле он есть - и еще куча полезных функций.
А1Э_Метаданные - всякие функции для работы с метаданными.
А1Э_Механизмы - этот модуль заслуживает отдельной статьи. Он позволяет делать инкапсулированные блоки функциональности и подключать их к объектам метаданных.
ВАЖНО!: Текущий код сам по себе не заработает. Для того, чтобы механизмы работали, их необходимо подключить. Эта процедура автоматизирована (смотрите А1Э_Механизмы.СоздатьРасширениеМеханизмов). GUI доступно в расширении А1И.
А1Э_Общее - сюда складывается то, что не поместилось в специализированные модули. Могут представлять интерес А1Э_Общее.ЗначениеСвойства(Объект, ИмяСвойства), которое позволяет получить свойство объекта - или вернет Неопределено, если у объекта этого свойства нет.
А1Э_Объекты - модуль для работы с объектами (СправочникОбъект., ДокументОбъект.). Так, содержит функцию .Записать(Объект), которая запишет объект "правильно" (проведенный - перепроведет, непроведенный или справочник - запишет). Сильно упрощает написание кода групповых обработок данных.
А1Э_ПовторноеИспользование - меня раздражает в БСП то, что если в модуле у 1 функции нужно кэшировать значение, мне требуется создать отдельный модуль. Поэтому в своей библиотеке я сделал универсальную функцию А1Э_ПовторноеИспользование.РезультатФункции(ИмяФункции, П1, П2...).
А1Э_СКД - вы помните наизусть код для программного выполнения СКД? Я помню - А1Э_СКД.РезультатВыполнения(СКД, КомпоновщикНастроек, Результат, ДанныеРасшифровки). 1 Строка, удобно писать и читать. Вывод зависит от типа результата (ТабДок, ТаблицаЗначений, ДеревоЗначений).
А1Э_Строки - много удобных методов.
А1Э_Структуры - много удобных методов.
А1Э_ТаблицыЗначений - по историческим причинам содержит также и МассивыСтруктур. В частноти, практически все методы ТаблицыЗначений реализованы для МассивовСтруктур. Также есть .РаспознатьКолонку(ТаблицаЗначений, Колонка, НоваяКолонка, Алгоритм).
А1Э_Тестирование - экспериментальный модуль для дымового тестирования прямо в 1С. Позволяет проверить, что формы открываются и документы проводятся.
А1Э_УниверсальнаяФорма - этот модуль также заслуживает отдельной статьи. Он позволяет использовать УниверсальнуюФорму, в которую передается процедура, которая будет вызвана в ПриСозданииНаСервере. Таким образом, не надо пилить формы под каждую ерундовину. Кроме того, этот модуль позволяет добавлять компоненты - реюзабельные блоки пользовательского интерфейса, например:
МассивОписаний = Новый Массив;
А1БСП_КомпонентДополнительныйРеквизит.ДобавитьОписание(МассивОписаний, ИмяДополнительногоРеквизита);
А1Э_УниверсальнаяФорма.ДобавитьРеквизитыИЭлементы(ЭтаФорма, МассивОписаний);
Этот код создаст на форме реквизит и элемент нужного типа, загрузит его значение при открытии и сохранит его при записи. Все это удовольствие - в 1 строку кода (важна 2 строка, 1 и 3 - вспомогательные и пишутся 1 раз для всех реквизитов)!
ВАЖНО: Обработчики универсальной формы надо предварительно добавить на форму. Об этом будет рассказано отдельно. Этот процесс также автоматизирован и выполняется вместе с добавлением обработчиков механизмов.
А1Э_Файлы - если Вы разрабатывали под веб-клиент, то слышали про такую штуку как "Расширение для работы с файлами" - и связанные с ним пляски с бубном. А1Э_Файлы.ПоказатьВыборФайла() спешит на помощь - оно в веб-клиенте проверит наличие расширения, предложит его установить а потом вернет исполнение Вашему коду. В нормальном клиенте оно также отработает нормально.
А1Э_Формы - модуль для программного создания объектов формы (реквизитов, элементов, команд, кнопок и прочего).
Библиотека совместима с любыми конфигурациями. Некоторые возможности библиотеки основаны на механизмах БСП. Например, при попытке получения значения дополнительного сведения в конфигурации, не имеющей регистра "Дополнительные сведения", Вы получите исключение. Можно просто не использовать соответствующие функции.
Подключается как расширение (версии 8.3.12 и старше).