Context collector for BSL (Сборщик контекста)
Конфигурация позволяет собирать и хранить данные справки 1С. За основу проекта взяты разработки Валерия Агеева (@awa) и его проект MetaRead.
Схема работы
- Готовим каталог с файлами справки. У каждой платформы это файлы
shcntx_ru.hbk
иshcntx_root.hbk
. Их нужно положить в каталог с номером версии платформы. Например:
├── syntax # Базовый каталог, который нужно будет указывать при импорте в 1С
│ └── 8.3.10 # Каталог со справкой определенной версии платформы
| ├── shcntx_ru.hbk # Файла справки на русском языке
| ├── shcntx_root.hbk # Файла справки на английском языке
Файлы shcntx_ru.hbk
и shcntx_root.hbk
нужно распаковать в текущий каталог. Например, с помощью утилиты 7-zip
.
-
Создаем из конфигурации проекта новую базу. Конфигурацию можно взять из релизов или собрать с помощью утилиты
ring
. -
Открываем информационную базу. Переходим по пути
Сервис
->Обработка справочной информации
. -
В обработке заполняем поле
Путь до каталога справки
.
- Нажимаем на кнопку
Заполнить доступные платформы
. В табличной части будут заполнены доступные каталоги справок в разрезе версий платформы. - Нажимаем на кнопку
Чтение справки
. Алгоритм прочитает каждый доступный каталог со справкой из табличной части.
В результате действий выше информационная база будет заполнена контекстом по каждой версии платформы, которые были в табличной части выше.
Структура конфигурации
Основная идея: отправная точка это Тип
. Например:
Управляемая форма
Глобальный контекст
- общий глобальный тип. Например, методСтрНайти()
относится к данному типуДокументОбъект.<Имя документа>
- и т.п.
У каждого типа могут быть:
- Свойства
- Значения
- Методы
- События
- Конструкторы
Типы
Справочник Справочник является отправной точкой. В подчинении у справочника - Справочник.ВерсииТипов
, тем самым объединяя разные вариации типа по версиям платформы.
Версии типов
Справочник Для каждой версии платформы создается отдельная версия типа. Форма элемента справочника должна стать центральной точкой редактирования версии типа. Справочник подчинен Справочник.Типы
.
События
Справочник Справочник подчинен Справочник.ВерсииТипов
.
У типов могут быть события. Например, для типа ДокументОбъект.<Имя документа>
:
ОбработкаЗаполнения
ОбработкаПроведения
ПередЗаписью
ПриЗаписи
- и т.д.
Для каждого события вариант синтаксиса хранится в справочнике Справочник.Перегрузки
. Например, для события ОбработкаПроведения
вариантом синтаксиса является
ОбработкаПроведения(Отказ, РежимПроведения)
.
Методы
Справочник Справочник подчинен Справочник.ВерсииТипов
.
У типов могут быть методы. Например, для типа Массив
:
Добавить
Удалить
Количество
- и т.п.
У методов может быть несколько вариантов синтаксиса. Как и для событий, варианты хранятся в справочнике Справочник.Перегрузки
.
Например, для события Добавить
вариантом синтаксиса является Добавить(Значение)
.
Существуют методы с несколькими вариантами синтаксиса. Например, у типа ТабличныйДокумент
метод ПолучитьОбласть
имеет два варианта:
- По адресу
ПолучитьОбласть(НомерПервойСтроки, НомерПервойКолонки, НомерПоследнейСтроки, НомерПоследнейКолонки)
- По имени
ПолучитьОбласть(ИмяОбласти)
Перегрузки
Справочник Справочник подчинен Справочник.События
и `Справочник.Методы.
В справочнике хранятся варианты синтаксисов методов и событий. Примеры есть в двух разделах выше.
В справочнике есть:
- Имя варианта - если у варианта нет имени, по умолчанию заполняется значением
Основной
- Параметры (аргументы) - аргументы методов и событий
- Описание - описание варианта, если таковое присутствует
Конструкторы
Справочник TODO: В процессе разработки
Версии платформы
Перечисление В перечисление через конфигуратор вручную добавляются версии платформы, которые будут использоваться в конфигурации. На данный момент созданы значения в диапазоне: от 8.2.16 до 8.3.18
Контексты выполнения
Перечисление Значениями перечисления заполняются табличные части "Контекст выполнения" во многих справочниках. Например Справочник.Методы
.
Как вести разработку
Для разработки используются следующие таргеты:
- Платформы 1С 8.3.16.1659
- Редактор EDT 2020.5
- Плагин проверки исходных кодов с помощью проекта
BSL LS
: bslls-connector-for-edt или ru.capralow.dt.bslls.validator на выбор.
Используется:
- Русский вариант синтаксиса
- Модульное тестирование (пока не опубликовано)
- Разработка по
gitflow
Прежде чем кодить
нужно:
- Убедиться, что cуществует issue
- Обсудить идею с владельцем проекта
Лицензия
Используется лицензия MIT License