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

24.10.24

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка по просмотру и редактированию hbk-файлов (старая версия)
.epf 305,22Kb
263
263 Скачать (1 SM) Купить за 1 850 руб.
Просмотр и редактирование hbk-файлов (версия для WebKit):
.epf 306,23Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Обработка представляет из себя что-то вроде синтакс-помощника, но с возможностью редактирования: можно перемещать/удалять строки, можно добавлять свою иерархию со своими 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 в конфигураторе и предприятии. О любых ошибках, замечаниях и предложениях просьба писать в комментарии, возможно, я буду развивать обработку. Текст открытый, так что при желании можете и сами :)

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.8.302

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    180094    1001    403    

954

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    21507    144    81    

143

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    19397    51    19    

84

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    13164    55    33    

73

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29501    101    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18796    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1936    2    0    

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

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

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


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

Пока что делится особо нечем, есть только распаковка, и та не до конца доделана.
11. ValeriVP 1349 10.08.11 12:11 Сейчас в теме
(10)главное начало положено
для практического применения необходима так же возможность добавлять новые файлы справки - вроде бы в каталоге много подобных файлов
12. RustIG 1842 10.09.11 16:06 Сейчас в теме
(0) посмотрите пожалуйста мою разработку:
может быть появятся идеи совместного использования? например, можно ли с помощью вашей разработки создать шаблон под названием "Синтакс-помощник" (это верхний главный узел), где ветками дерева будут какие-либо главы из синтакс-помощника (это тоже узлы-группы дерева), и далее уже постатейно расшифровывать процедуры, методы, свойства и т.д. ???
14. tormozit 7269 21.12.11 22:08 Сейчас в теме
Использовал процедуру построения дерева отсюда в подсистеме "Инструменты разработчика" (выйдет в версии 2.22) для реализации дерева содержания архива синтакс-помощника. Спасибо!
15. It-developer 26 15.02.12 12:41 Сейчас в теме
Интересно, научная работа :)
Пока не вижу как применимо, но интересно
16. vec435 17 09.03.12 20:01 Сейчас в теме
имхо, цель не только читать вне системы но и попробовать создать шаблон на основе hbk
17. amitin78 24.05.16 20:45 Сейчас в теме
Всем доброго дня. Обработка супер. Но есть маленькие недочеты. Во первых при чтении файла не прославляться активность у подчиненных элементов. При этом не работает создание файла ntml если несколько главных разделов. Читается только первый. Или это у меня только такие проблемы.
18. dtfmffff 15.02.18 08:28 Сейчас в теме
есть ли где-нибудь спецификация по ключам V8Unpack.exe ?
19. redtram 47 21.10.24 20:01 Сейчас в теме
Немножко допилил, чтоб работало на WebKit (новых платформах), автор добавь обновленную версию (кину в ЛС) или хотя бы коммент в закреп? :)

&НаКлиенте
Процедура HTMLДокументСформирован(Элемент)

	Документ = Элемент.Документ;
	Если Документ.readyState <> "complete" Тогда
		Возврат;
	КонецЕсли;
	
	//Сформируем файл стилей
	//Если Не БылСформированФайлСтилей Тогда 
	
	css = "body 
		|{
		|	margin: 5px 5px 5px 5px;
		|	padding: 0px 0px 0px 0px;
		|	background: #ffffff; 
		|	color: #000000;
		|	font-family: Tahoma, Arial, Helvetica, sans-serif;
		|	font-size: 70%;
		|	width: 100%;
		|}
        |
		|table
		|{
		|	font-size: 100%;
		|}
        |
		|p
		|{
		|	margin-top: 0em;	
		|}
        |
		|.V8SH_pagetitle     { display: none }
		|.V8SH_title     { background: gainsboro; font-weight: bold }
		|.V8SH_textarea     { padding: 5px 5px 5px 5px; }
		|.V8SH_heading     { text-decoration: underline; font-weight: bold }
		|.V8SH_chapter     { font-weight: bold }
		|.V8SH_rubric      { text-decoration: underline }
		|.V8SH_codesample  { font-family: Courier New; background: #e6e6e6 });";
		
		
		Документ = Документ.defaultView.document;
		
		st yle = Документ.createElement("style");
		style.type = "text/css";
		
		// Добавляем CSS как текстовый узел
		style.appendChild(Документ.createTextNode(css));
		
		// Добавляем элемент <st yle> в <head> документа
		Документ.head.appendChild(style);		
		БылСформированФайлСтилей = Истина;
		
		//Добавляем необходимые обработчики
		ДобавитьОбработчик Документ.onclick, HTMLonclick;

	//КонецЕсли;
	
	//Включаем возможность редактирования
	//Документ.body.ContentEditable = "true";
	
	//Отключаем автоматические переносы строк
    //Документ.Body.noWrap = Истина;
	
	//Посмотрим на картинки
	Для Каждого Элемент Из Документ.childNodes Цикл
		Если НРег(Элемент.tagName) = "img" И Не ПустаяСтрока(Элемент.href) Тогда
			Если Найти(Элемент.outerHTML, "v8help://" + Пространство + "/") > 0 Тогда
				Элемент.outerHTML = СтрЗаменить(Элемент.outerHTML, "v8help://" + Пространство + "/", "");
				ПутьККартинке = Сред(Элемент.href, СтрДлина("v8help://" + Пространство) + 2);
				ИзвлечьИзFileStorage(ПутьККартинке);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры //HTMLДокументСформирован
Показать


+

&НаКлиенте
Функция HTMLonclick(ДанныеСобытия)

	Если Элементы.РежимРедактирования.Пометка Тогда
		Возврат Ложь;
	КонецЕсли;
	
	srcElement = ДанныеСобытия.srcElement;
// дальше код прежний
Показать
Serg2000mr; +1 Ответить
20. Serg2000mr 696 15.12.24 20:39 Сейчас в теме
(19) Теперь ошибки не выдает при каждом клике, спасибо!
Оставьте свое сообщение