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

24.10.24

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

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

Скачать файл

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

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

12000 руб.

02.09.2020    171909    964    403    

924

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

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

8400 руб.

20.08.2024    14428    109    46    

108

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

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

22200 руб.

06.10.2023    17317    43    15    

75

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

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

9360 руб.

17.05.2024    27312    96    48    

138

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

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

15000 руб.

10.11.2023    11922    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191290    1153    0    

920

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

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

20000 руб.

07.10.2021    18102    7    32    

42

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

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

3600 руб.

27.12.2024    1138    2    0    

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

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

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


Надеюсь, поделитесь :) Хотя, должен признать, что на не очень больших файлах вроде синтакс-помощника, распаковка и так весьма быстро идет.
5. Evg-Lylyk 4914 03.08.11 08:27 Сейчас в теме
6. detec 136 03.08.11 10:13 Сейчас в теме
Вещь довольно интересная, однако какая всё же практическая польза от данного функционала? Ведь справка по конфигурации зашивается в cf-файл. Думаю, что техническим писателям было бы удобно разрабатывать справку в привычных инструментах, а потом как-нибудь автоматически заливать сконвертированный проект в распаковынные файлы конфигурации.
7. orefkov 1153 03.08.11 11:31 Сейчас в теме
(6)
Раньше в семерке было проще - создал ты допустим свою ВК.
Написал к ней als-файл.
Пользователи твоей ВК кидают als-файл в bin и вуаля - описание методов твоей ВК - в конфигураторе в штатном СП.
В 8ке так не прокатит, и дополнить СП чем-то своим - низзя.
9. Yashazz 4804 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 1342 10.08.11 12:11 Сейчас в теме
(10)главное начало положено
для практического применения необходима так же возможность добавлять новые файлы справки - вроде бы в каталоге много подобных файлов
12. RustIG 1836 10.09.11 16:06 Сейчас в теме
(0) посмотрите пожалуйста мою разработку:
может быть появятся идеи совместного использования? например, можно ли с помощью вашей разработки создать шаблон под названием "Синтакс-помощник" (это верхний главный узел), где ветками дерева будут какие-либо главы из синтакс-помощника (это тоже узлы-группы дерева), и далее уже постатейно расшифровывать процедуры, методы, свойства и т.д. ???
14. tormozit 7250 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 54 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 765 15.12.24 20:39 Сейчас в теме
(19) Теперь ошибки не выдает при каждом клике, спасибо!
Оставьте свое сообщение