gifts2017

Просмотр и редактирование hbk-файлов (синтакс-помощник и другие справочные файлы)

Опубликовал Дмитрий (r0610201) в раздел Программирование - Инструментарий

Просмотр и редактирование hbk-файлов - справочной информации 1с, в том числе и синтакс-помощника. Реализовано на управляемых формах, но ничего не мешает переделать под толстого клиента.

Обработка представляет из себя что-то вроде синтакс-помощника, но с возможностью редактирования: можно перемещать/удалять строки, можно добавлять свою иерархию со своими html-файлами и шаблонами по подстановке в текст модуля. Алгоритм работы примерно следующий:

  1. Читаем файл hbk (shcntx_ru.hbk - основная часть синтакс-помощника, например).
  2. При этом в каталоге временных файлов создается каталог shcntx_ru (имя выбранного файла), где будет происходить вся дальнейшая работа.
  3. Редактируем иерархию файла: перемещаем строки, перетаскиванием изменяем иерархию, удаляем, создаем новые и т.д. Существует три вида строк, насколько я понял: папка с описанием, папка и раздел. Все эти виды строк помечаются соответствующей пиктрограммой.
  4. Редактирование html-файлов пока возможно только сторонними редакторами, открываем нужный html-файл в .\shcntx_ru\FileStorage, редактируем, потом в обработке выбираем этот файл и жмем "Записать HTML=файл". Или создаем новый (обязательно в .\shcntx_ru\FileStorage), указываем в обработке к нему путь и опять же записываем.
  5. Редактирование файла st происходит непосредственно в обработке, простейший пример можно глянуть либо в уже существующих разделах, либо нажав на кнопку "Установить стандартный шаблон". После редактирования надо нажать на кнопку "Записать st-файл".
  6. После редактирования (разделов, html-файлов, st-файлов) необходимо нажать на кнопку "Собрать файл", после чего в рабочем каталоге (каталог временных файлов плюс имя файла-hbk) будет создан новый файл hbk.
  7. Далее либо руками копируем его в каталог bin, либо жмем в обработке "Все действия/Заменить исходный файл". Эта команда может не выполниться, если в конфигураторе уже был открыт синтакс-помощник или соответствующий файл справки. Если все нормально, получаем сообщение "Файл успешно скопирован".
  8. В рабочем каталоге всегда сохраняется оригинальный файл с именем "original.hbk", в любой момент командой "Все действия/Восстановить исходный файл" можно вернуть оригинал на место, либо командной "Все действия/Прочитать исходный файл" прочитать оригинальный файл.

Известные недостатки:

  1. Добавленные строки не ищутся в индексе. Структура индекса уже разобрана, но вот записи пока еще нет, ожидается чуть позднее.
  2. Добавленные файлы не ищутся в полнотекстовом поиске. Вот тут пока вообще не очень ясно, полнотекстовый поиск не хранится в hbk-файле, кажется.
  3. Поскольку файл синтакс-помощника состоит из двух файлов (shcntx_ru.hbk и shlang_ru.hbk), то не всегда получается четко управлять порядком строк, видно на картинке "Результат работы".

Благодарности:

Огромное спасибо создателям zip.exe, unzip.exe и V8Unpack.exe, без этих программ гораздо труднее было бы распаковать hbk-файл. Также спасибо TormozIT за файл стилей синтакс-помощника.

 

P.S. Редактировать можно, разумеется, не только синтакс-помощник, но и справку, которая отображается по F1 в конфигураторе и предприятии. О любых ошибках, замечаниях и предложениях просьба писать в комментарии, возможно, я буду развивать обработку. Текст открытый, так что при желании можете и сами :)

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка по просмотру и редактированию
.epf 305,22Kb
02.08.11
192
.epf 305,22Kb 192 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ийон Тихий (cool.vlad4) 02.08.11 15:36
Наконец-то кто-то сделал, а то мне было в лом разбиратся...
2. Misha ⁠ (Magister) 02.08.11 16:00
Хм... интересно :)
Я тут недавно делал свой аналог V8Unpack, но так и не доделал - надо будет посмотреть, как он с hbk-файлами себя поведет. По крайней мере работать минимум раз в 20 быстрее должен :)
3. Яков Коган (Yashazz) 02.08.11 22:53
ВАУ!!! Сбылась моя мечта - хоть кто-то докопался-таки до синтакс-помощника!!! плюстыща к cool.vlad4, долгожданная вещь!
4. Дмитрий (r0610201) 03.08.11 08:03
Magister пишет:

Хм... интересно

Я тут недавно делал свой аналог V8Unpack, но так и не доделал - надо будет посмотреть, как он с hbk-файлами себя поведет. По крайней мере работать минимум раз в 20 быстрее должен


Надеюсь, поделитесь :) Хотя, должен признать, что на не очень больших файлах вроде синтакс-помощника, распаковка и так весьма быстро идет.
5. Евгений Люлюк (Evg-Lylyk) 03.08.11 08:27
6. Андрей Д. (detec) 03.08.11 10:13
Вещь довольно интересная, однако какая всё же практическая польза от данного функционала? Ведь справка по конфигурации зашивается в cf-файл. Думаю, что техническим писателям было бы удобно разрабатывать справку в привычных инструментах, а потом как-нибудь автоматически заливать сконвертированный проект в распаковынные файлы конфигурации.
7. Александр Орефков (orefkov) 03.08.11 11:31
(6)
Раньше в семерке было проще - создал ты допустим свою ВК.
Написал к ней als-файл.
Пользователи твоей ВК кидают als-файл в bin и вуаля - описание методов твоей ВК - в конфигураторе в штатном СП.
В 8ке так не прокатит, и дополнить СП чем-то своим - низзя.
8. Роман (rommario) 03.08.11 16:52
9. Яков Коган (Yashazz) 03.08.11 20:12
(7) Именно! Множество удобств происходило от того, что можно было писать свои als. Авось теперь и для 8.Х сможем.
10. Misha ⁠ (Magister) 04.08.11 14:21
r0610201 пишет:
Надеюсь, поделитесьХотя, должен признать, что на не очень больших файлах вроде синтакс-помощника, распаковка и так весьма быстро идет.

Пока что делится особо нечем, есть только распаковка, и та не до конца доделана.
11. - - (Rebelx) 10.08.11 12:11
(10)главное начало положено
для практического применения необходима так же возможность добавлять новые файлы справки - вроде бы в каталоге много подобных файлов
12. г. Казань Рустем Гумеров (Rustig) 10.09.11 16:06
(0) посмотрите пожалуйста мою разработку:
может быть появятся идеи совместного использования? например, можно ли с помощью вашей разработки создать шаблон под названием "Синтакс-помощник" (это верхний главный узел), где ветками дерева будут какие-либо главы из синтакс-помощника (это тоже узлы-группы дерева), и далее уже постатейно расшифровывать процедуры, методы, свойства и т.д. ???
13. Евгений Фамилия (internetname) 20.10.11 10:46
(6) detec,
Если нужно запускать справку не заходя в 1С, то вещь полезная.
14. Сергей Старых (tormozit) 21.12.11 22:08
Использовал процедуру построения дерева отсюда в подсистеме "Инструменты разработчика" (выйдет в версии 2.22) для реализации дерева содержания архива синтакс-помощника. Спасибо!
15. Kostya Zhurov (It-developer) 15.02.12 12:41
Интересно, научная работа :)
Пока не вижу как применимо, но интересно
16. Владимир Чаклин (vec435) 09.03.12 20:01
имхо, цель не только читать вне системы но и попробовать создать шаблон на основе hbk
17. Алексей Митин (amitin78) 24.05.16 20:45
Всем доброго дня. Обработка супер. Но есть маленькие недочеты. Во первых при чтении файла не прославляться активность у подчиненных элементов. При этом не работает создание файла ntml если несколько главных разделов. Читается только первый. Или это у меня только такие проблемы.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа