Инструмент для изучения конфигураций. Может быть интересен и полезен тем, кто любит копаться в коде.
Для его работы не нужна платформа, не нужна никакая IDE. Нужен только доступ в интернет и браузер. Позволяет копаться в коде даже со смартфона.
Вот что он умеет:
- Отображает дерево метаданных конфигурации
- Отображает тексты всех модулей со стандартной подсветкой синтаксиса (кроме защищенных)
- Отображает свойства общих модулей
- Примитивная навигация по процедурам и функциям
- Отображает статистику использования платформы
Этого мало, но и проект пока что мал. Можно сказать – младенец, ему ещё и месяца нет. Я регулярно буду добавлять новые функции и рассказывать об этом. Он родился как часть проекта по анализу кода, поэтому вскоре мы увидим некоторые инструменты и результаты анализа.
Как это выглядит
Для вас – это просто статичный сайт, набор HTML файлов с текстами модулей, состоящий из страницы содержания, и страниц с текстами.
Дерево метаданных
В шапке любой страницы мы видим название и версию конфигурации, а также текущий режим компиляции. По каждому типу метаданных мы видим список объектов и ссылки на доступные модули. Возможен просмотр всех типов модулей, включая модули форм и модули команд.
Возможен просмотр отдельных свойств и элементов метаданных: общие картинки, элементы стилей, подписки на события, регламентные задания, и т.п.
Модули приложения добавлены в список общий модулей:
- Модуль управляемого приложения (@ManagedApplicationModule)
- Модуль обычного приложения (@OrdinaryApplicationModule)
- Модуль внешнего соединения (@ExternalConnectionModule)
- Модуль сеанса (@SessionModule)
В таблице общих модулей в колонках отображены основные свойства:
- G – «Глобальный»
- S – «Сервер»
- CS – «Вызов сервера»
- P – «Привилегированный»
- COA – «Клиент (Обычное приложение) »
- CMA – «Клиент (Управляемое приложение) »
- EC – «Внешнее соединение»
- RU – «Повторное использование возвращаемых значений»
- S – На время сеанса
- R – На время вызова
Страницы текстов модулей
В шапке мы видим название и версию конфигурации. Для общих модулей выведены все свойства. Для остальных модулей только имя, синоним, и комментарий. Тексты модулей анализируется с учётом выбранного режима компиляции. Всё что игнорируется препроцессором, игнорируется и здесь.
Все вызовы процедур и функций "кликабельны", и приводят в нужное место интересующего модуля. В текстах добавлены ссылки на все модули менеджеров.
Статистика использования платформы
Для анализа доступны большинство функций глобального контекста платформы.
Они сгруппированы в соответствии с разделами синтаксис-помощника.
В первой колонке "№" - номер группы, во второй "Кол-во" - количество функций в группе.
В третьей колонке "Исп." - количество функций, задействованных в конфигурации.
В четвёртой колонке "М." - количество модулей конфигурации, в которой задействованы функции группы.
В пятой колонке "Ф." - количество функций конфигурации, в которой задействованы функции группы.
Это не отдельные вызовы, а именно количество функций, т.е. если в одной функции СтрДлина вызывается несколько раз, в колонке "Ф." она будет посчитана только один раз для этой функции.
Страница для просмотра каждой группы
Страница для просмотра статистики каждой функции
По каждой функции собраны все найденные варианты использования. В колонке "Refs" - количество функций, где найден этот вариант. По цифре в этой колонке можно кликнуть и увидеть список ссылок на вызывающие функции.
В колонке вариант использования - описание варианта. Имена параметров и известные значения отображены вместе, т.е.:
СтрДлина(Строка @@Строка) - означает вызов функции с первым параметров по имени "Строка", содержащем какую-то строку.
СтрДлина(Строка "Включить") = 8 - означает вызов функции с первым параметром по имени "Строка", содержащем строку "Включить", и возвращающий значение 8
СтрДлина(Строка "КонецФункции" "КонецПроцедуры") - означает вызов функции с первым параметром по имени "Строка", содержащем одну из двух возможных строк "КонецФункции", или "КонецПроцедуры"
Если значения всех параметров известны и однозначны, и результат функции зависит только от значений её параметров, то её результат будет вычислен. В этой версии это доступно только для функций работы со строками, числами, и датами.
Логика работы программ пока не учитывается, поэтому значения параметров могут быть не корректны. Но всегда можно кликнуть на вызывающую функцию, и посмотреть как оно на самом деле.
Для свободного просмотра открыта демо-конфигурация БСП:
Её тексты распространяются согласно лицензии CC BY 4.0
Также сформированы тексты для конфигураций:
Доступ к ним только по запросу, для официальных пользователей 1С.