Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Для тех, кто уже знаком с ОПИ, данный раздел можно пропустить.
Открытый Пакет Интеграций (ОПИ) - это open-source набор методов для простой и быстрой интеграции с различными популярными API. Он состоит из аналогичных по функционалу 1С-расширения (CFE), OS-пакета и программы для Windows и Linux, которые предоставляют готовые функции для работы с целым набором различных онлайн-сервисов.
- ОПИ бесплатен и имеет открытый исходный код на GitHub. Вы всегда можете получить последнюю версию библиотеки на странице репозитория, а подписавшись - узнавать о выходе обновлений. Все релизы сопровождаются статьями на Инфостарт и разделами единой документации. На Инфостарт вы можете подписаться уже хоть сейчас, а про документацию я расскажу далее.
- Удобная единая документация. Она расположена на сайте opi.neocities.org и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.
- Простая установка. ОПИ распространяется во множестве вариантах: как XML файлы расширения, как EDT проект расширения, как файл расширения формата .cfe (версия 1С 8.3.9), как файл пакета для OneScript и еще в целом наборе пакетов и файлов для Windows и Linux. Из этого набора вы всегда сможете выбрать тот способ установки, который лучше подойдет для вашей конкретной задачи
На момент последнего обновления данной статьи, доступны следующие API:
Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.
Airtable - облачная служба, позволяющая легко создавать и использовать реляционные базы данных, информация в которых будет хранится онлайн, на облаке сервиса
Мне лично Airtable очень напоминает Notion: оба сервиса имеют функционал как для создания самих баз данных, так и для организации ввода-вывода информации из них в различных формах, однако, если Notion позиционирует себя скорее как инструмент для ведения заметок и планирования задач, то Airtable делает фокус на хранение и использование данных в виде электронных таблиц. Содержащуюся там информацию, в дальнейшем, можно выводить в диаграммы и графики, что делает рассматриваемый сегодня сервис куда более применимым для нашей, так сказать, 1С-специфики
Но прежде чем мы перейдем к обзору работы с Airtable, рассмотрим список методов, которые были добавлены в данном обновлении:
- Методы работы с базами
- Получение списка баз
- Получения списка таблиц базы
- Создание базы
- Методы работы с таблицами
- Создание таблицы
- Изменение таблицы
- Методы работы с полями таблиц
- Создание поля
- Изменение поля
- Получение макетов полей: строкового, числового и пр.
- Методы работы с записями таблиц
- Получение списка записей таблицы
- Получение значения полей записи
- Создание записи
- Удаление записи
- Методы работы с комментариями
- Получение списка комментариев записи
- Создание комментария к записи
- Изменение комментария к записи
- Удаление комментария
Может показаться, что в некоторых разделах не хватает действий из стандартного набора создать-получить-изменить-удалить. Мне тоже так показалось, но, по каким-то причинам, их нет и в самой реализации API
Работа с сервисом
Кратенько рассмотрим принципы работы с Airtable
Основной способ взаимодействия с данным сервисом - веб-интерфейс по адресу airtable.com. Зарегистрировавшись и войдя в аккаунт, первым делом, вы можете создать базу данных и структуру таблиц для хранения информации под свои конкретные нужды.
Слегка плюшевая, но вполне стандартная табличная структура работы с данными: база -> таблица -> поля таблицы и записи. Редактор же напоминает больше интерфейс Google Sheet, нежели какого-нибудь SQL Studio - этакий компромисс между гибкостью серьезных СУБД и простотой электронных таблиц
Для организации хранения, в Airtable доступно множество различных типов полей: числовые, строковые, поля вложений, даты, ссылки, выбора варианта и пр. Каждый из них имеет свой особенный способ отображения в конструкторе таблиц, а также набор присущих только ему настраиваемых параметров. Помимо этого, особняком, есть и поля для связи таблиц между собой. В конструкторе по их значениям можно легко переходить для определения отношений двух строк из разных сущностей
Ничего необычного, но главный вопрос: "А зачем вообще хранить информацию в Airtable?"
Публикация таблиц
Начнем с простого: любую базу, по окончании настройки, можно сделать публично доступной на просмотр. На выбор есть 3 варианта организации доступа: по email, ссылке-приглашеню (и первый и второй вариант - для пользователей Airtbale), а также свободный доступ по публичному URL
При этом, разместить можно как всю базу целиком, так и лишь какой-нибудь конкретны View - заранее настроенный способ отображения таблицы. Так, можно, например, скрыть какие-нибудь колонки таблицы не для общего показа, настроить сортировку и фильтры данных, сгруппировать строки по определенным признакам и значениям полей
После публикации таблица выглядит примерно вот так. При внесении изменений в структуру данных или хранимую информацию, информация на публичной форме обновится вслед за ней
Интерфейсы
Следующим, после хранения и публикации, является функционал создания интерфейсов и форм. Под "интерфейсами" в Airtable подразумеваются способы визуализации данных: календари, галереи, канбан-доски и всякие другие красивые дашборды:
Строятся они, как не трудно догадаться, на основе наших заранее созданных таблиц. Сам процесс довольно интуитивный - основа вообще настраивается в мастере, где нужно просто тыкать подходящие варианты в выпадающих списках
Далее, в основном редакторе интерфейсов, уже можно настроить все более детально. Есть несколько видов диаграмм, также можно выводить табличные и текстовые расшифровки отображаемых данных. Сам же вывод будет динамически обновляться при изменение данных в БД
Формы
Помимо визуализации информации, в Airtbale еще есть инструментарий для создания форм заполнения и получения входных данных. Эти формы, также как и графики, создаются на основе полей таблиц, а принцип действия схож с таковым у любых других сервисов для сбора обратной связи, вроде Google Forms - заполненные пользователем данные, после подтверждения отправки, сохраняются в учетной системе
После окончания настройки формы, как и в случае таблиц/графиков, она может быть бесплатно опубликована по общедоступному адресу. Данные, введенные в нее пользователем, автоматически трансформируются в строки родительской таблицы, на которой форма основана. При необходимости, доступ к заполнению можно ограничивать паролями или по домену
В итоге у нас получается два основных сценария использования Airtbale (исключая возможность просто хранить там данные, конечно же):
- Визуализация хранимых данных в виде различных графиков и диаграмм
- Сбор данных из онлайн форм для последующего использования
При помощи интеграции мы сможем оперировать этими данными прямо из 1С - как на вход, так и на выход. Применение придумать не сложно: онлайн дашборд, как замена отчетам в 1С (с визуальной точки зрения - функционала, сравнимого с СКД, тут нету), дополнительное место для облачного хранения отчетных данных, механизм получения в 1С информации из форм для сбора обратной связи любых видов. Ниже приведено несколько примеров кода на 1С для лучшего понимания:
Еще больше примеров можно найти в документации
В заключении
Вот такой интересный сервис. Мы пробежались по верхам, но в Airtable есть еще много чего интересного, а Открытый пакет интеграций обязательно поможет вам организовать простое и удобное с ним взаимодействие.
Напоминаю, что функционал всех библиотек ОПИ, включая и эту, доступен в трех вариантах: расширения для 1С, пакета для OneScript и приложения для командной строки (CLI)
Ну и оцените обновленную страницу репозитория и новый интерфейс документации - по-моему, получилось отлично :)
Спасибо за внимание!
Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations
Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/latest
Другие статьи про Открытый пакет интеграций на Инфостарт:
Мой GitHub: https://gitub.com/Bayselonarrend Лицензия MIT: https://mit-license.org