Зачастую среднестатистическому разработчику на платформе 1С достаточно проверять свой код вручную с помощью этого инструмента - это занимает не так много времени, но приносит массу пользы.
В этой статье я рассматриваю только ручную проверку, как минимум с этого стоит начать, а потом уже озадачиваться пайплайнами CI/CD с OneScript, Jenkins и SonarCube.
Что такое BSL Language Server
BSL Language Server - это инструмент для статического анализа кода на языке 1С.
Он позволяет автоматически выявлять ошибки кодирования и запросов к базе данных, а благодаря подробному описанию ошибок является также инструментом обучения и развития правильных навыков для разработчиков на платформе 1С.
Сам по себе он представляет консольное Java-приложение, предназначенное для запуска из командной оболочки, при этом анализировать нужно заранее сохранённые файлы в указанной директории.
Использовать приложение из командной строки для ручного анализа кода неудобно, поэтому на базе BSL Language Server появились и другие инструменты, с возможностью анализа кода на языке 1С из интерфейса приложений.
О некоторых подобных инструментах для ручного анализа кода были публикации и здесь, например:
Все они предполагают использование каких-то "кастомных" инструментов на базе BSL Language Server.
Но на мой взгляд, самым простым и доступным для использования вариантом является расширение Language 1C (BSL) для VS Code.
Использование расширения для VS Code
Установка VS Code
Поскольку расширение предназначено для редактора Visual Studio Code, предварительно нужно установить сам редактор:
- Скачать редактор по ссылке.
- Установить редактор в каталог своего пользователя - можно устанавливать без полномочий администратора компьютера.
Установка расширений
Нужно установить следующие расширения.
Ссылки приведены на страницы в маркетплейсе, сами расширения можно установить прямо из VS Code через панель расширений (значок в панели слева или сочетание клавиш Ctrl + Shift + X, а дальше поиск по наименованию).
- Language 1C (BSL) - расширение, добавляющее поддержку языка 1С и языка запросов 1С в VS Code, в его составе есть BSL Language Server.
Не помню, нужно ли устанавливать для него OneScript, если что, можно скачать здесь. - Russian Language Pack for Visual Studio Code - включает поддержку русского языка в интерфейсе VS Code.
Если хорошо ориентируетесь в английском интерфейсе, можно не устанавливать. - Необязательные, но желательные расширения для исправления орфографических ошибок:
- Code Spell Checker - базовая проверка орфографии в редакторе.
Обязателен в случае установки следующего расширения. - Russian - Code Spell Checker - проверка орфографии на русском языке.
- Code Spell Checker - базовая проверка орфографии в редакторе.
Как проверять код
Для проверки кода 1С в редакторе VS Code с помощью плагина Language 1C (BSL) не обязательно сохранять файл с кодом.
Достаточно:
- Скопировать код из модуля в конфигураторе 1С.
- Создать новый (пустой) файл в VS Code (меню File - New Text File или сочетание клавиш Ctrl + N).
- Указать для файла язык 1C BSL (bsl).
Сделать это можно двумя способами:- Выбрать язык в нижней панели справа:
- С помощью сочетания клавиш Ctrl + K M (то есть нажать одновременно Ctrl и K, а после отдельно нажать M).
При этом отобразится окно выбора языка из списка, нужно выбрать 1C BSL (bsl):
- Выбрать язык в нижней панели справа:
- Вставить скопированный ранее код на языке 1С в VS Code в окно файла с выбранным языком.
После этого должен запуститься BSL Language Server, информация о его запуске будет отображаться в нижней панели слева:
После запуска код будет автоматически проверен, а в панель проблем в нижней части VS Code будет выведена информация по найденным проблемам.
На скриншоте ниже пример проблем в одном нетиповом общем модуле в старой конфигурации:
- 922 - общее количество проблем.
- 34 - критические проблемы.
- 475 - предупреждения.
- 413 - небольшие проблемы.
При нажатии на строку описания проблемы автоматически выбирается соответствующая строка кода.
При нажатии на гиперссылку в строке описания проблемы вызывается диалог открытия страницы с подробным описанием ошибки, обоснованием, почему это именно ошибка, и (во многих случаях) примером, как нужно делать взамен.
Если добавить домен с описаниями проблем в список доверенных расположений, диалоговое окно больше выводиться не будет, будет сразу открываться нужная страница.
Чтобы изменения кода анализировались автоматически, например, при вставке нового кода в то же окно редактора, в файле настроек BSL Language Server должна быть установлена настройка "computeTrigger": "onType".
Зачем всё это нужно
Если внимательно читать информацию и выполнять рекомендации, указанные на страницах описания ошибок, можно:
- научиться избегать подобных ошибок в будущем;
- усвоить на практике некоторые особенности платформы 1С и стандарты разработки 1С;
- сделать свой код качественнее и проще в поддержке и доработке.
Однако нужно быть готовым к тому, что не все проблемы удастся решить. Например, если приложение 1С работает в среде Windows, а в коде используется COM-объект, то просто так заменить его использование может быть проблематичным или невозможным. Но если не планируется миграция на Linux, то это и не нужно.
В подобных случаях можно игнорировать такие проблемы или отключить эти диагностики в том же файле настроек BSL Language Server.