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

26.06.2020      508439

Инфостарт – неофициальное сообщество 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, оформленных в виде публикаций на Инфостарте. Публикуйте описания своих проектов и мы расскажем о них в следующем обзоре!


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


См. также

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

До конференции INFOSTART TEAMLEAD&CIO EVENT осталось чуть больше 2-х месяцев. И мы объявляем розыгрыш пяти билетов на конференцию – прикрепляйте к комментариям ваши новогодние фото и ставьте лайки. Самые залайканные получат подарки.

сегодня в 15:30    123    eselyanina    5       

3

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

Сегодня мы расскажем про следующую секцию конференции INFOSTART TEAMLEAD&CIO EVENT – «Приемы, методы разработки, DevOps: эффективные практики». Модераторы секции – сотрудники Инфостарта: технический директор и ведущий 1С-разработчик.

вчера в 13:30    1128    AnastasiaKl    0       

16

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

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

09.12.2024    446    AnastasiaKl    0       

16

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

Сегодня мы представляем 5-ю из 7-ми секций конференции INFOSTART TEAMLEAD EVENT 2025 – «Методология управления в ИТ, ITSM, Service Desk, управление знаниями».

06.12.2024    1192    eselyanina    1       

17

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

Голосование за доклады конференции INFOSTART TEAMLEAD&CIO EVENT 2025 идет полным ходом, и первый тур завершится уже 10 декабря. Подавайте заявки на доклад – осталось всего 5 дней, чтобы выдвинуть свою кандидатуру на голосование.

05.12.2024    2063    eselyanina    2       

17

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

На конференции INFOSTART TEAMLEAD&CIO EVENT будет представлена секция, посвященная искусственному интеллекту и его применению в сфере информационных технологий. Рассказываем подробнее о секции и знакомимся с модератором.

04.12.2024    956    eselyanina    1       

19

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

Следующая секция конференции INFOSTART TEAMLEAD&CIO EVENT, о которой мы расскажем, – «Управление ИТ-инфраструктурой». Познакомимся с модератором и узнаем подробнее о темах, которые затронем в рамках секции.

02.12.2024    1088    eselyanina    0       

19

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

Вы уже можете изучить темы и отдать свой голос за спикеров, чьи выступления должны быть в финальной программе конференции. Голосование продлится до 10 декабря.

29.11.2024    1249    DaryaRasina    1       

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 302 27.06.20 20:20 Сейчас в теме
Фундаментальненько!
Впрочем, от Виктории меньшего и не ожидаешь.
Спасибо!
artbear; kolya_tlt; support; YPermitin; CyberCerber; i.c.h; PowerBoy; +7 Ответить
3. comol 5110 15.09.20 16:47 Сейчас в теме
А кто-то читает комменты к этой статье? Можно её сделать публикацией? В поиске не находится нормальным человеком... а ещё и удалится не дай боже.. а тот кто сделал если бы поддерживал был бы очень крутой труд
ArtiKDA; artbear; +2 Ответить
4. artbear 1563 15.09.20 17:32 Сейчас в теме
(3) Олег, конечно, комменты читаются.
Мы планируем расширить эту новость, сделав ее нечто большим, чем публикация.
Пока планы не раскрою, совсем скоро выпустим )
5. comol 5110 15.09.20 17:36 Сейчас в теме
(4) Огонь! А то еле нашел - и то поисками среди чатов :). А статья крутая.
Оставьте свое сообщение