- В качестве редактара кода используется замечательная bsl_console от salexdv
- При анализе модулей (настройка "регулярками", до платформы 1С 8.3.23) используется отличная внешняя NativeAPI компонента RegEx1CAddin
- При анализе модулей (настройка "кодом 1С") используется код из проекта bsl-parser
- Вдохновение для дальнейшей реализации взято от мощной подсистемы "Инструменты разработчика"
Порядок использования:
- Подключить расширение. Отключить у расширения безопасный режим, так как расширение работает с файлами. Если у расширения установлена защита от опасных действий, то при анализе модулей будет выдаваться окошко об установке внешней компоненты RegEx1CAddin.
- Настроить параметры подсказки в "Администрирование" - "Настройки контекстной подсказки".
- В "Конфигурации" -> "Релизы" настроить использование контекстной подсказки конкретной конфигурации (описано ниже).
- Настроить расписание загрузки из исходных кодов нужной конфигурации в справочнике "Релизы"
- Указать в справочнике "Релизы" для нужной конфигурации место хранения индексов метаданных. Сохраняется только глобальный контекст (процедуры/функции глобальных модулей и список общих неглобальных модулей). Для неглобального контекста индексы заполняются в момент вызова подсказки и сохраняются только в клиентском кэше на время сеанса ИБ. Варианты хранения индексов:
- "Не использовать", если для этой конфигурации нужно отключить контекстную подсказку и оставить типовой механизм загрузки.
- "В каталоге", если индексы должны сохраняться в выбранном каталоге. Для клиент-серверной ИБ конвертации каталог должен быть доступен с сервера 1С.
- "В информационной базе", если индексы должны сохраняться в ИБ конвертации в РС "Безопасное хранилище данных". Ключи метаданных имеют вид "КД3<GUID конфигурации>_<Имя индекса>"
- "Не сохранять", если индексы глобального контекста не сохраняются, а всегда заполняются в момент вызова подсказки. Для больших конфигураций можент приводить к замедлению активизации элементов обработчиков.
- Дождаться выполнения регламентного задания для этой конфигурации или загрузить метаданные с помощью измененной обработки "Загрузка структуры конфигурации из файлов XML/EDT многопоточно (КД3)".
Если в расписании регламентного задания поставить датой окончания прошедшую дату, то обновление конфигурации из исходных кодов не будет выполняться по расписанию, но будет работать контекстная подсказка по данным файлов из указанного каталога исходников.
Как работает:
- Поля обработчиков заменяются на поля HTML документов с работающей подсказкой
- Если в состав конвертаций входит несколько конфигураций (релизов), то на страницах обработчиков появляется группа "Контекстная подсказка" в которой можно выбрать нужную конфигурацию
- Если для конфигурации указано расписание и каталог для загрузки из исходных кодов, то подсказка выполняется по файлам исходных кодов, иначе используются загруженные в 1С метаданные в справочниках "Объекты", "Свойства", "Значения"
- Отключить расписание загрузки из исходных кодов нужной конфигурации в справочнике "Релизы"
- С помощью модифицированной обработки "Загрузка структуры конфигурации из файлов XML/EDT многопоточно (КД3)" загрузить метаданные и их индексы. Сохраняются процедуры/функции глобальных и неглобальных общих модулей, список общих модулей, процедуры/функции модулей объекта и модулей менеджера объекта. Варианты хранения индексов:
- "Не использовать", если не нужно загружать/хранить дополнительные метаданные контекстной подсказки.
- "В каталоге", если индексы должны сохраняться в выбранном каталоге. Для клиент-серверной ИБ конвертации каталог должен быть доступен с сервера 1С.
- "В информационной базе", если индексы должны сохраняться в ИБ конвертации в РС "Безопасное хранилище данных". Ключи метаданных имеют вид "КД3<GUID конфигурации>_<Имя индекса>"
- "Не хранить", если индексы глобального контекста не сохраняются, а всегда заполняются в момент вызова подсказки.
- Модифицированная версия типовой обработки с возможностью загрузки объектов метаданных в несколько потоков
- В клиент-серверном варианте возможна загрузка метаданных объектов параллельно до 8 потоков (количество потоков выбирается в настройках обработки), в файловом варианте всегда выполняется загрузка в 1 поток
- Добавлен детальный прогресс загрузки по объектам
- Загружаются данные для контекстной подсказки (общие модули, методы общих модулей / модулей объектов)
- Добавлен режим загрузки на серерве. Если выбран режим "На клиенте", то все файлы передаются с клиента на сервер через временное хранилище. В режиме "На серерве" чтение данных файлов выполняется сразу на сервере.
Замечания:
- Используется модифицированная версия bsl_console (добавлены два метода). Изменения можно посмотреть здесь: https://github.com/GenVP/bsl_console. Методы добавляются в код bsl_console в момент распаковки исходников.
- Проверялось на 1С:Предприятие 8.3 (8.3.21.1775)