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

24.10.24

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

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

Скачать файл

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

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

См. также

SALE! 15%

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159889    876    399    

862

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7963    59    24    

70

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

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

9360 руб.

17.05.2024    23567    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10499    36    25    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15469    35    7    

70

SALE! 35%

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    188117    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

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

15000 12750 руб.

07.10.2021    17339    6    32    

42

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

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7738    8    35    

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

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

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


Надеюсь, поделитесь :) Хотя, должен признать, что на не очень больших файлах вроде синтакс-помощника, распаковка и так весьма быстро идет.
5. Evg-Lylyk 4842 03.08.11 08:27 Сейчас в теме
6. detec 136 03.08.11 10:13 Сейчас в теме
Вещь довольно интересная, однако какая всё же практическая польза от данного функционала? Ведь справка по конфигурации зашивается в cf-файл. Думаю, что техническим писателям было бы удобно разрабатывать справку в привычных инструментах, а потом как-нибудь автоматически заливать сконвертированный проект в распаковынные файлы конфигурации.
7. orefkov 1152 03.08.11 11:31 Сейчас в теме
(6)
Раньше в семерке было проще - создал ты допустим свою ВК.
Написал к ней als-файл.
Пользователи твоей ВК кидают als-файл в bin и вуаля - описание методов твоей ВК - в конфигураторе в штатном СП.
В 8ке так не прокатит, и дополнить СП чем-то своим - низзя.
9. Yashazz 4791 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 1336 10.08.11 12:11 Сейчас в теме
(10)главное начало положено
для практического применения необходима так же возможность добавлять новые файлы справки - вроде бы в каталоге много подобных файлов
12. RustIG 1747 10.09.11 16:06 Сейчас в теме
(0) посмотрите пожалуйста мою разработку:
может быть появятся идеи совместного использования? например, можно ли с помощью вашей разработки создать шаблон под названием "Синтакс-помощник" (это верхний главный узел), где ветками дерева будут какие-либо главы из синтакс-помощника (это тоже узлы-группы дерева), и далее уже постатейно расшифровывать процедуры, методы, свойства и т.д. ???
14. tormozit 7231 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 53 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;
// дальше код прежний
Показать
Оставьте свое сообщение