Coder Social home page Coder Social logo

bsl-context-collector's Introduction

Context collector for BSL (Сборщик контекста)

Конфигурация позволяет собирать и хранить данные справки 1С. За основу проекта взяты разработки Валерия Агеева (@awa) и его проект MetaRead.

Схема работы

  1. Готовим каталог с файлами справки. У каждой платформы это файлы 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.

  1. Создаем из конфигурации проекта новую базу. Конфигурацию можно взять из релизов или собрать с помощью утилиты ring.

  2. Открываем информационную базу. Переходим по пути Сервис -> Обработка справочной информации.

  3. В обработке заполняем поле Путь до каталога справки.

  • Нажимаем на кнопку Заполнить доступные платформы. В табличной части будут заполнены доступные каталоги справок в разрезе версий платформы.
  • Нажимаем на кнопку Чтение справки. Алгоритм прочитает каждый доступный каталог со справкой из табличной части.

В результате действий выше информационная база будет заполнена контекстом по каждой версии платформы, которые были в табличной части выше.

Структура конфигурации

Основная идея: отправная точка это Тип. Например:

  • Управляемая форма
  • Глобальный контекст - общий глобальный тип. Например, метод СтрНайти() относится к данному типу
  • ДокументОбъект.<Имя документа>
  • и т.п.

У каждого типа могут быть:

  • Свойства
  • Значения
  • Методы
  • События
  • Конструкторы

Справочник Типы

Справочник является отправной точкой. В подчинении у справочника - Справочник.ВерсииТипов, тем самым объединяя разные вариации типа по версиям платформы.

Справочник Версии типов

Для каждой версии платформы создается отдельная версия типа. Форма элемента справочника должна стать центральной точкой редактирования версии типа. Справочник подчинен Справочник.Типы.

Справочник События

Справочник подчинен Справочник.ВерсииТипов. У типов могут быть события. Например, для типа ДокументОбъект.<Имя документа>:

  • ОбработкаЗаполнения
  • ОбработкаПроведения
  • ПередЗаписью
  • ПриЗаписи
  • и т.д.

Для каждого события вариант синтаксиса хранится в справочнике Справочник.Перегрузки. Например, для события ОбработкаПроведения вариантом синтаксиса является ОбработкаПроведения(Отказ, РежимПроведения).

Справочник Методы

Справочник подчинен Справочник.ВерсииТипов.

У типов могут быть методы. Например, для типа Массив:

  • Добавить
  • Удалить
  • Количество
  • и т.п.

У методов может быть несколько вариантов синтаксиса. Как и для событий, варианты хранятся в справочнике Справочник.Перегрузки. Например, для события Добавить вариантом синтаксиса является Добавить(Значение).

Существуют методы с несколькими вариантами синтаксиса. Например, у типа ТабличныйДокумент метод ПолучитьОбласть имеет два варианта:

  • По адресу ПолучитьОбласть(НомерПервойСтроки, НомерПервойКолонки, НомерПоследнейСтроки, НомерПоследнейКолонки)
  • По имени ПолучитьОбласть(ИмяОбласти)

Справочник Перегрузки

Справочник подчинен Справочник.События и `Справочник.Методы. В справочнике хранятся варианты синтаксисов методов и событий. Примеры есть в двух разделах выше.

В справочнике есть:

  • Имя варианта - если у варианта нет имени, по умолчанию заполняется значением Основной
  • Параметры (аргументы) - аргументы методов и событий
  • Описание - описание варианта, если таковое присутствует

Справочник Конструкторы

TODO: В процессе разработки

Перечисление Версии платформы

В перечисление через конфигуратор вручную добавляются версии платформы, которые будут использоваться в конфигурации. На данный момент созданы значения в диапазоне: от 8.2.16 до 8.3.18

Перечисление Контексты выполнения

Значениями перечисления заполняются табличные части "Контекст выполнения" во многих справочниках. Например Справочник.Методы.

Как вести разработку

Для разработки используются следующие таргеты:

Используется:

  • Русский вариант синтаксиса
  • Модульное тестирование (пока не опубликовано)
  • Разработка по gitflow

Прежде чем кодить нужно:

  • Убедиться, что cуществует issue
  • Обсудить идею с владельцем проекта

Лицензия

Используется лицензия MIT License

bsl-context-collector's People

Contributors

otymko avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.