bsl2jsdoc - Генератор документации по файлам исходных текстов конфигурации (расширения) 1С: Предприятие 8.3

25.10.22

Разработка - Инструментарий разработчика

Генератор документации по файлам исходных текстов конфигурации (расширения) 1С: Предприятие 8.3. Используются "стандартные" для 1С комментарии описания методов.

Проект на Gitlab

 

 

Тема betterdocs

 

 

Пример

Gitlab pages https://shmalevoz.gitlab.io/bsl2jsdoc по коду библиотеки общих методов

Требуемое оформление кода

Обрабатывается код общих модулей области #ПрограммныйИнтерфейс

Лидирующий непрерывный блок комментария в начале модуля служит его описанием

Предполагается стандартное оформление комментариев методов по стандарту вендора

строки с пустым комментарием считаются окончание блока в описании метода

шаблон:

// <Описание метода>
// 
// Параметры:
//    <Имя> - <Тип[, Тип, ...]> [- Описание параметра]
//    <Имя> - <Тип[, Тип, ...]> [- Описание параметра]
//
// Возвращаемое значение:
//    <Тип[, Тип, ...]> [- Описание возвращаемого значения]
//
// Пример:
//    Произвольный текст примера использования

пример:

// Сравнивает версии. Возвращает 
// -1 если Версия1 < Версия2
// 0 если Версия1 = Версия2
// 1 если Версия1 > Версия2
// 	При наличии статуса разработки в какой-либо версии и равенстве вышестоящих
// 	частей, версия со статусом разработки считается младшей
// 	Если часть строки версии содержит нечисловые символы, то они обрабатываются следующим образом
// 		любые символы < (alpha = a) < (beta = b) < rc < # < (pl = p)
// 	, нечисловые строки регистроНЕзависимы
//
// Параметры: 
// 	Версия1 - Строка - Cтрока версии 1
// 	Версия2 - Строка - Cтрока версии 2
//
// Возвращаемое значение:
//   Число
// 
// Пример:
// ВерсияСравнить("1", "1.0") = -1
// ВерсияСравнить("1.0", "1.01") = -1
// ВерсияСравнить("1.01", "1.1") = 0
// ВерсияСравнить("1", "1.10") = -1
// ВерсияСравнить("1.10", "1.10b") = 1
// ВерсияСравнить("1.10b", "1.10.0") = -1
//  
Функция ВерсииСравнить(Версия1, Версия2) Экспорт
  ...

Установка

Для формирования html документации требуется установленный nodejs

например, для Ubuntu

sudo apt install nodejs -y

Скрипт генерации документации и зависимости

git clone -b stable https://gitlab.com/shmalevoz/bsl2jsdoc.git
cd bsl2jsdoc
git submodule init
git submodule update --remote

Использование

bsl2jsdoc make --projectdir путь/корня/проекта --src подкаталог/проекта/исходных/кодов --dst подкаталог/документации/проекта

Команды

  • make - объединение команд bsl2js и js2html
  • bsl2js - формирует в каталоге dst/js jsdoc-совместимые файлы аннотаций по исходных кодам общих модулей конфигурации (расширения)
  • js2html - формирует в каталоге dst/html окончательную документацию по файлам jsdoc аннотаций

Опции, обязательные

  • --projectdir - базовый каталог проекта конфигурации (расширения) 1С
  • --src - подкаталог проекта, содержащий исходные файлы. для команд bsl2js или make подкаталог проекта, содержащий выгрузку конфигурации, для команды js2html подкаталог файлов аннотаций jsdoc
  • --dst - целевой подкаталог документации

Опции, необязательные

  • --names-prefix - используемый для отбора объектов префикс имен. по-умолчанию для конфигурации пустой, для расширения префикс имен расширения
    • для конфигураций - если не задано, то общие модули, исключая содержащие знак подчеркивания; иначе общие модули, имеющие заданный префикс
    • для расширений - если не задано, то общие модули, содержащие префикс расширения; иначе общие модули, имеющие заданный префикс
  • --template - имя используемой для рендеринга html темы документации. допустимы docdash (по-умолчанию), betterdocs
  • --srcbaseurl - URL публикации исходных кодов конфигурации (расширения), например https://site/project/branche/src/config
  • --disable-info - отключить вывод информационной строки, использовать для сборочных линий/неизвестных терминалов/в случае ошибки выполнения tput
  • --man-prefix - префикс имен общих макетов, содержащих примеры использования (в markdown формате)
  • --man-config - имя общего макета, содержащего настройки примеров использования (см. https://jsdoc.app/about-tutorials.html)
  • --dedug - вывод отладочных сообщений
  • --help - вывод справки по использованию

Линии сборки Gitlab/Github/...

Пример шага сборочной линии Gitlab.

Предполагается, что bsl2jsdoc объявлен в зависимостях проекта, например

git submodule add -b stable https://gitlab.com/shmalevoz/bsl2jsdoc.git depends/bsl2jsdoc
# предопределенное имя шага для публикации на pages.gitlab.io
pages:

  image: 
    name: node:latest

  #
  # Изменяемые переменные, заполнить путями проекта
  #
  variables:
    # подкаталог исходных кодов bsl (выгрузки конфигурации в файлы)
    SOURCES: "src/config"
    # целевой каталог генерируемой документации
    DESTINATION: "build/docs"
    # базовый адрес опубликованных исходных кодов bsl
    SRCBASEURL: "https://gitlab.com/{user}/{project}/-/tree/{branch}/{path}/{to}/{sources}"
    # префикс имен общих макетов руководств
    MANPREFIX: "ом_man"
    # имя общего макета с настройками руководств
    MANCONFIG: "ом_manconfig"
    # префикс имен общих макетов статичных файлов, имя файла в комментарии макета
    STATICPREFIX: "ом_stc"
  before_script:
    # bsl2jsdoc как зависимость проекта
    - cd "$CI_PROJECT_DIR"
    - git submodule init depends/bsl2jsdoc
    - git submodule update --remote depends/bsl2jsdoc
    # зависимости самого bsl2jsdoc
    - cd "$CI_PROJECT_DIR/depends/bsl2jsdoc"
    - git submodule init
    - git submodule update --remote
  script:
    # сборка документации
    - > 
      $CI_PROJECT_DIR/depends/bsl2jsdoc/bsl2jsdoc make 
      --disable-info 
      --projectdir $CI_PROJECT_DIR 
      --src "$SOURCES" 
      --dst "$DESTINATION" 
      --srcbaseurl "$SRCBASEURL"
      --man-prefix "$MANPREFIX" 
      --man-config "$MANCONFIG" 
      --static-prefix "$STATICPREFIX"
    # и ее перенос в каталог публикации
    - mv $CI_PROJECT_DIR/$DESTINATION/html $CI_PROJECT_DIR/public
  
  # сформированная документация как артефакт для pages
  artifacts:
    paths:
      - public

  # запуск шага только для тэгов (релизов)
  only:
    - tags
  except:
    - branches

Ограничения

  • В описании модулей (ведущий блок комментария) markdown не работает, необходимо использовать прямые html вставки. Связано с тем, что в блоке описания выведены свойства модуля по метаданным и для форматирования использована прямая html разметка. Ограничение на использование markdown только для описания модулей

Подробности

Для построения домашней страницы документации используются

  • Синоним, идентификатор, версия конфигурации (расширения) по метаданным
  • Общий макет <префикс имен>README

Состав подсистем, общих модулей и их свойств заполняется по данными конфигурации (расширения).

Все описания трактуются как тексты в формате markdown, включено расширение merdaid

Для использования прочих шаблонов оформления документации необходимо использовать команду bsl2js. В каталоге $dst/js проекта будут сформированы файлы с jsdoc-совместимыми аннотациями, к ним применить любой шаблон оформления jsdoc (примерный список с демо-примерами)

В js документации используются нестандартные тэги @category и @subcategory, необходмиые для группировок темой betterdocs. При использовании собственных настроек jsdoc.json и/или других тем оформления добавить в jsdoc.json "allowUnknownTags": [ "category", "subcategory" ]

Рекомендуется указывать опцию --srcbaseurl, в таком случае будут сформированы ссылки на объявления методов в исходном коде модулей

Применяемые настройки шаблонов оформления

  1. при наличии, из файла jsdoc.json базового каталога проекта
  2. иначе применяются настройки по-умолчанию проекта шаблонов

Особенности используемых тем

  • docdash - поиск происходит по именам как модулей, так и методов. группировка модулей в панели навигации отсутствует
  • betterdocs - поиск только по именам модулей. есть трехуровневая группировка модулей по подсистемам в панели навигации

Внесенные в темы изменения

  • изменена цветовая палитра
  • увеличена ширина панелей навигации
  • переведены на русский заголовки элементов
  • удалено кодирование имен файлов в URI.

См. также

Анализ & Управление в ИТ-проектах, 30 мая - 1 июня 2024 г., Санкт-Петербург

Программная инженерия Управление проектом Архитектура Мероприятия Россия Платные (руб)

Практическая конференция для аналитиков и руководителей проектов 1С. 30 мая - 1 июня 2024 г. Санкт-Петербург, отель Cosmos Saint-Petersburg Pribaltiyskaya Hotel, ул. Кораблестроителей 14

42000 руб.

27.05.2023    22440    709    0    

153

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124928    682    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7768    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4280    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178645    1083    0    

861

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.15.111.

2220 руб.

04.07.2022    6931    26    1    

24

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.144.49.

1728 руб.

20.01.2022    6706    10    0    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. charmillion 01.12.22 16:19 Сейчас в теме
Пример по адресу: https://shmalevoz.gitlab.io/bsl2jsdoc не открывается.

Работает только на общих модулях?
+
3. sandr13 34 03.12.22 17:34 Сейчас в теме
... ну и что получается в результате?
+
4. shmalevoz 304 03.12.22 21:59 Сейчас в теме
(1) На самом деле как оказалось gitlab.io заблокирован Роскомнадзором где-то в апреле. При использовании например прокси он открывается
+
Оставьте свое сообщение