Конфигурация позволяет собирать и хранить данные справки 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