Обзор open-source проектов для работы с 1С на GitHub. Часть I.

26.06.2020      507600

Инфостарт – неофициальное сообщество 1С-разработчиков, которое много лет приветствует и поддерживает OpenSource-проекты. Многие инструменты для разработки и интеграции, выложенные на Инфостарте, развиваются на площадке GitHub.

Это удобно, поскольку позволяет разделить контекст: выводить в публикации Инфостарта расширенное описание для профильного сообщества и находить единомышленников, ссылаясь при этом на всегда актуальную версию, опубликованную на GitHub.

Мы сделали для вас обзор опенсорсных проектов и рассказываем о том, как они развиваются на Инфостарте. Чтобы составить подборку, мы изучили материалы нашего сообщества, выложенные на GitHub.

Важно: В наш перечень вошли только опубликованные на Инфостарте решения, получившие наиболее высокие оценки в сообществе GitHub. В качестве голосов указано количество добавлений в «Избранное» у проекта на GitHub.

Экосистема OneScript

OneScript (https://github.com/EvilBeaver/OneScript) (201 голос) – бесспорный лидер GitHub по рейтингу разработок, связанных с 1С, скриптовый движок, который выполняет скрипты, написанные на языке 1С:Предприятие. На Инфостарте проект OneScript представлен полноценной рубрикой, куда на данный момент входит 48 публикаций.

Родительская организация oscript-library (https://github.com/oscript-library) – содержит оригиналы или форки репозиториев, в которых ведется разработка пакетов, и является источником готовых подключаемых библиотек и самостоятельных приложений для решения задач по автоматизации 1С. В организацию подключено 109 репозиториев, каждый из которых решает свою важную задачу, имеет высокий рейтинг и заслуживает отдельного обзора. На Инфостарте можно ознакомиться со статьей, где кратко описаны имеющиеся библиотеки.

Кроме обзорной статьи, есть отдельные руководства по использованию наиболее популярных приложений OneScript:

Отдельно стоит выделить популярные внешние компоненты, используемые в среде OneScript:

  • gui https://github.com/ret-Phoenix/oscript-simple-gui (40 голосов) – внешняя компонента, позволяющая реализовать пользовательский интерфейс к приложениям, написанным на OneScript. О том, как рисовать формы для приложений на OneScript подробно описано в публикации https://infostart.ru/public/540284/.

  • sql https://github.com/ret-Phoenix/oscript-sql (37 голосов) – внешняя компонента, реализующая возможность работы с базами данных из OneScript. Поддерживаются базы: sqlite, MS SQL Server, MySQL, PostgreSQL. На Инфостарте разработка представлена публикацией https://infostart.ru/public/672461/.

  • winext https://github.com/ret-Phoenix/WinExt (11 голосов) – библиотека взаимодействия с ОС Windows. Позволяет находить фрагменты экрана, управлять мышкой, посылать сочетания клавиш. Подробное описание внешней компоненты WinExt на Инфостарте https://infostart.ru/public/953598/.

OneScript.Web https://github.com/EvilBeaver/OneScript.Web (48 голосов) – кроссплатформенный MVC-фреймворк, основанный на ASP.NET MVC, с помощью которого можно создавать легковесные сайты и управлять их контентом на языке 1С. На Инфостарте проект представлен циклом публикаций по веб-разработке на 1Script (https://infostart.ru/public/722160/, https://infostart.ru/public/783435/, https://infostart.ru/public/821424/ и https://infostart.ru/public/1063641/).

Инструменты для тестирования кода

Не менее популярны на GitHub инструменты для тестирования кода в 1С и пакеты готовых тестов для них:

Важно: проект xUnitFor1C прекратил развитие в репозитории xDrivenDevelopment – дальнейшее развитие происходит в рамках проекта Vanessa-Add.

Поддержка синтаксиса 1С во внешних редакторах кода

Поддержка кода 1С представлена на GitHub целым рядом репозиториев:

  • 1c-syntax https://github.com/1c-syntax/1c-syntax (88 голосов) – подсветка синтаксиса 1С в текстовых редакторах VS Code, Atom, Sublime Text,. Проект, где разрабатывается описание грамматики языка 1С на основе формата TextMate, откуда в дальнейшем производится конвертация грамматик для поддерживаемых редакторов. Описание проекта на Инфостарте – https://infostart.ru/public/450868/.

  • Поддержка языка 1С:Предприятие 8 (BSL) в VSC https://github.com/1c-syntax/vsc-language-1c-bsl (85 голосов) – плагин для Visual Studio Code, который добавляет поддержку синтаксиса в файлах *.bsl и *.os. Позволяет работать с исходниками выгруженной из конфигуратора конфигурации. Поддерживает автодополнение глобального контекста, методов общих модулей после «точки», шаблоны кода, отображение списка методов текущего файла, переход к определению, подсказку по параметрам методов, синтаксис-помощник для 1С и OneScript (включая библиотеки oscript-library). С помощью проекта BSL LS позволяет в режиме реального времени получать замечания по качеству кода по любому файлу с кодом 1С или OneScript. Описание проекта на Инфостарте – https://infostart.ru/public/450868/.

  • Поддержка языка 1С:Предприятие 8 (BSL) в VIM https://github.com/andreevlex/vim-language-1c-bsl (22 голоса) – плагин для VIM, который добавляет подсветку встроенного языка 1С:Предприятие 8 файлам *.bsl и *.os. На Инфостарте разработка представлена публикацией https://infostart.ru/public/678020/.

  • Раскраска кода 1С в CodeMirror https://github.com/sikuda/codemirror-1C (13 голосов) – исходники и плагин к Wordpress с подсветкой кода в CodeMirror. Можно использовать, в том числе, для раскраски кода в управляемых формах 1С. На Инфостарте представлена публикацией https://infostart.ru/public/994455/.

  • Поддержка языка 1С:Предприятие 8 (BSL) в Atom https://github.com/1c-syntax/atom-language-1c-bsl (10 голосов) – плагин для Atom, который добавляет поддержку синтаксиса в файлах *.bsl и *.os. На Инфостарте разработка представлена публикацией https://infostart.ru/public/450868/.

  • Поддержка языка 1С:Предприятие 8 (BSL) в Sublime Text https://github.com/1c-syntax/sublime-language-1c-bsl (8 голосов) – плагин для Sublime, который добавляет поддержку синтаксиса в файлах *.bsl и *.os. На Инфостарте разработка представлена публикацией https://infostart.ru/public/450868/.

Статический анализ кода 1С в SonarQube

Для сбора диагностик качества кода 1С на GitHub также представлено несколько проектов:

  • BSL Language Server https://github.com/1c-syntax/bsl-language-server (120 голосов) – реализация Language Server Protocol для языка 1C (BSL). Основная задача проекта – статический анализ качества кода 1С во внешних редакторах, в т.ч. под EDT и даже в конфигураторе 1С. Показывает результат диагностик качества в процессе редактирования кода, реализует быстрые исправления» (quick fixes) для ряда диагностик. Позволяет форматировать код в редакторе, показывает когнитивную сложность метода и многое другое. Является универсальным серверным приложением, которое можно подключать к различным редакторам кода, а также запускать в качестве анализатора с выводом информации в json. На Инфостарте разработка представлена в публикациях https://infostart.ru/public/1089670/ и https://infostart.ru/public/1117485/.

  • SonarQube 1C (BSL) Community Plugin https://github.com/1c-syntax/sonar-bsl-plugin-community (119 голосов) – поддержка языка 1С:Предприятие 8 и OneScript для SonarQube. Регистрирует диагностики, предоставляемые BSL Language Server, подсвечивает исходный код 1С:Предприятие в SonarQube, реализует расчет базовых метрик и количества строк кода. Публикация с описанием установки плагина SonarQube на Инфостарте https://infostart.ru/public/1089670/ , а философия проекта описана в https://infostart.ru/public/1096770/.

  • Экспорт диагностик из АПК для SonarQube https://github.com/otymko/acc-export (47 голосов) – позволяет выгрузить результат анализа кода из 1С:АПК в SonarQube. Описание работы с acc-export на Инфостарте – https://infostart.ru/public/1089670/ и https://infostart.ru/public/1117485/.

  • Конвейер проверки качества кода 1C https://github.com/Stepa86/jenkins-pipeline-1C-to-sonar (19 голосов) – Jenkinsfile для проверки качества кода. Для анализа используются проверки АПК, EDT и BSL LS. Объектом исследования являются исходники конфигурации в формате EDT, выгруженные из хранилища 1С ГитКонвертором. Для конвертации замеров производительности из 1С в файл покрытия требует дополнительной установки https://github.com/Stepa86/perf-measurements-to-cover. Результаты проверок предназначены для анализа в SonarQube. На Инфостарте проект представлен в публикации https://infostart.ru/public/1117485/.

  • Экспорт диагностик 1С:EDT для SonarQube https://github.com/Stepa86/stebi (18 голосов) – приложение на OneScript, которое позволяет трансформировать результаты валидации исходников от 1С:EDT в json-файл для SonarQube. Дополнительно умеет получать версию конфигурации, изменять параметры, удалять неактуальные диагностики и файлы на поддержке (для удаления файлов на поддержке репозиторий требует установки https://github.com/Stepa86/v8metadata-reader). Подключение приложения в jenkinsfile для проверки качества кода описано в публикации https://infostart.ru/public/1117485/.

     

Фреймворки для интеграции с 1С

Еще одна важная категория – инструменты для интеграции с 1С. В эту категорию также вошли фреймворки, позволяющие разрабатывать приложения с использованием объектной модели, аналогичной той, что применяется в 1С:Предприятии.

  • Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 https://github.com/vbondarevsky/Connector (167 голосов) – библиотека для работы с HTTP запросами. Берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п. Поставляется в виде конфигурации, содержащей общий модуль, который можно использовать в своих решениях. Репозиторий с библиотекой OneScript, содержащей аналогичную функциональность – https://github.com/vbondarevsky/1connector. Описание использования разработки представлено в публикации Инфостарта https://infostart.ru/public/709325/.

  • Metadata.js https://github.com/oknosoft/metadata.js (159 голосов) – библиотека для разработки бизнес-ориентированных и учетных offline-first приложений на JavaScript. Предоставляет программисту высокоуровневые объекты данных, аналогичные тем, которыми пользуются программисты 1С (перечисления, справочники, документы, регистры и т.д.), инструменты декларативного описания метаданных и автогенерации интерфейса, схожие по функциональности с метаданными и формами платформы 1С. На Инфостарте фреймворк описан в публикациях https://infostart.ru/public/535370/ и https://infostart.ru/public/540168/.

  • PinkRabbitMQ library https://github.com/BITERP/PinkRabbitMQ (115 голосов) – внешняя Native API компонента для 1C 8.3, которая реализует методы для работы с сервером Rabbit MQ через TCP IP протокол (репозиторий включает исходникина C++). На Инфостарте проект представлен в публикации https://infostart.ru/public/1099423/.

  • FoxyLink Integrations https://github.com/FoxyLinkIO/FoxyLink (60 голосов) – подсистема для фиксации событий, предоставляет унифицированную модель для надежного управления задачами интеграции и запуска их на кластере серверов «1С:Предприятие 8». Описание функциональности подсистемы на Инфостарте представлено в публикации https://infostart.ru/public/1091360/

  • Simple1C https://github.com/ivan816/simple-1c (51 голос) – транслятор запросов и LINQ-провайдер для 1С, библиотека на .NET для обмена данными с 1С:Бухгалтерией. Репозиторий содержит исходники исполняемого приложения, которое преобразует запрос в формате языка запросов 1С в чистый sql для исполнения его на реальной СУБД и позволяет выполнять обычные запросы языка 1С (выбрать * из Справочник.Контрагенты) без участия самой 1С - напрямую через СУБД. Публикация на Инфостарте https://infostart.ru/public/532535/.

  • 1C# (OneCSharp) https://github.com/zhichkin/one-c-sharp (41 голос) – платформа для разработки серверных приложений, доступных через web, позволяет сделать интеграцию между SQL-базами более гибкой. На Инфостарте проект представлен в публикациях https://infostart.ru/public/1244088/, https://infostart.ru/public/1226230/ и https://infostart.ru/public/1228025/.

  • Telegram Database library for 1C:Enterprise https://github.com/Infactum/telegram-native (37 голосов) – внешняя компонента 1С Native API для взаимодействия с Telegram без Bot API. В репозитории представлены исходники на C++. Описание проекта на Инфостарте – https://infostart.ru/public/834836/.

  • Web фреймворк на платформе 1С:Предприятие https://github.com/1cwa/OneCWebFramework (25 голосов) – Позволяет эффективно и быстро создавать веб-порталы к существующим прикладным решениям на платформе 1С:Предприятие без привлечения веб-разработчиков. Описание проекта на Инфостарте – https://infostart.ru/public/1237578/.

  • Google Analytics + 1C:Enterprise https://github.com/petypen/GA_SAMPLE (22 голоса) – пример обработки взаимодействия 1С:Предприятия и Google Analytics. На Инфостарте проект описан в публикации https://infostart.ru/public/723481/.

  • PHP-драйвер к OData-интерфейсу 8.3 https://github.com/Falseclock/dbd-php (7 голосов) – позволяет кэшировать данные из 1С для интеграции с сайтами, использующими в качестве СУБД PostgreSQL, MSSQL и MySQL. Описание проекта на Инфостарте https://infostart.ru/public/605427/.

Инструменты разработчика

И, конечно, наиболее широко на GitHub представлены различные инструменты для разработчиков:

 

Мы планируем продолжить обзоры проектов на GitHub, оформленных в виде публикаций на Инфостарте. Публикуйте описания своих проектов и мы расскажем о них в следующем обзоре!


Автор:
Аналитик


См. также

Новость Infostart Event Мероприятия

Модераторы конференции – это эксперты в своих областях, которые не только помогают докладчикам с выбором тем и доработкой материалов, но и делятся собственными знаниями и опытом, выступая с докладами и мастер-классами.

18.07.2024    909    user1950500    0       

17

Новость Infostart Event Мероприятия

У вас есть опыт и знания, которыми вы хотите поделиться с сообществом Инфостарт на ежегодной конференции, но не можете определиться с выбором темы? Воспользуйтесь подсказками от модераторов каждой секции, которые собрали самые актуальные темы своего направления.

01.07.2024    2319    AnastasiaKl    18       

19

Новость Aнализ&Управление Мероприятия

Большая часть участников уже оставили свои отзывы о событии и оценили понравившиеся доклады. Подвели итоги голосования и составили ТОП-20 лучших докладов конференции.

28.06.2024    1735    user997184    4       

18

Новость Infostart Event Мероприятия

В этом году на INFOSTART TECH EVENT 2024 появится особый трек – мы выделим в программе отдельные слоты для начинающих 1С-специалистов.

26.06.2024    1570    user997184    17       

18

Новость Инфостарт Infostart Event Мероприятия

Если вы слышите звуки фанфар – вам не кажется. С 10 по 12 октября в Санкт-Петербурге состоится INFOSTART TECH EVENT 2024. Это значит, мы уже на низком старте: собрали команду модераторов, которая уже приступила к формированию программы конференции.

24.06.2024    2030    user997184    6       

17

Новость Aнализ&Управление Мероприятия

Помимо видео и презентаций докладов, все участникам конференции «Анализ и Управление в ИТ-проектах» доступны транскрибации – текстовые версии докладов.

20.06.2024    1306    user997184    0       

1

Новость Infostart Event Мероприятия

С 10 по 12 октября 2024 года в питерском отеле «Санкт-Петербург» пройдет 14-я­ конференция INFOSTART EVENT для сообщества 1С. Не забудьте запланировать участие. Прием заявок на доклады уже открыт!

17.06.2024    1996    eselyanina    2       

19

Новость Infostart Event Мероприятия

Приглашаем компании принять участие в конференции в качестве партнеров INFOSTART TECH EVENT – масштабного события, собирающего специалистов из сферы 1С по всей России.

14.06.2024    1183    AnastasiaKl    0       

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 26.06.20 17:43
(0) Полезная подборка.

В свое время создал список разработок на платформе .NET для 1С. Но там именно .NET. Может кому будет интересно.

https://github.com/YPermitin/YellowYard.NET
mvsemenov; Upiterus; i.c.h; support; +4 Ответить
2. JohnyDeath 301 27.06.20 20:20 Сейчас в теме
Фундаментальненько!
Впрочем, от Виктории меньшего и не ожидаешь.
Спасибо!
artbear; kolya_tlt; support; YPermitin; CyberCerber; i.c.h; PowerBoy; +7 Ответить
3. comol 5068 15.09.20 16:47 Сейчас в теме
А кто-то читает комменты к этой статье? Можно её сделать публикацией? В поиске не находится нормальным человеком... а ещё и удалится не дай боже.. а тот кто сделал если бы поддерживал был бы очень крутой труд
ArtiKDA; artbear; +2 Ответить
4. artbear 1558 15.09.20 17:32 Сейчас в теме
(3) Олег, конечно, комменты читаются.
Мы планируем расширить эту новость, сделав ее нечто большим, чем публикация.
Пока планы не раскрою, совсем скоро выпустим )
5. comol 5068 15.09.20 17:36 Сейчас в теме
(4) Огонь! А то еле нашел - и то поисками среди чатов :). А статья крутая.
Оставьте свое сообщение