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

24.10.24

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

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

Файлы

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработка представляет из себя что-то вроде синтакс-помощника, но с возможностью редактирования: можно перемещать/удалять строки, можно добавлять свою иерархию со своими 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    201056    1111    410    

1015

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

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

8400 руб.

20.08.2024    35163    203    104    

194

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23747    63    26    

92

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

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

16000 руб.

10.11.2023    16314    70    39    

88

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

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

9360 руб.

17.05.2024    34414    122    53    

164

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

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

20000 руб.

07.10.2021    20459    8    32    

44

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

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 руб.

22.11.2024    1529    1    0    

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

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

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


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