Справка HTML в формах и обработках 1С (альтернатива 1С-ой)

Опубликовал Илья Ануфриев (aipnnov) в раздел Управление - Пользователю системы

Привожу пример использования собственной справочной информации в формах документов и обработок 1С 8.1. Это пример из действующей конфигурации, правда реализация её там сложнее , но основной принцип остался. Справочную информацию необходимо подготовить самим. Для этого можно воспользоваться сторонними программами, которые правда платные, но есть задумка сделать свою в 1С, если это понравится большинству.

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

Для просмотра распаковать архив в папку bin 1С. ("C:\Program Files\1cv81\bin") или в другую, с заменой адресов в коде обработки.

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

Наименование Файл Версия Размер
help.cab
.cab 9,15Mb
12.10.09
96
.cab 9,15Mb 96 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Илья Ануфриев (aipnnov) 158 06.10.09 13:30 Сейчас в теме
Выкладываю, может кому и пригодится.
Реализация в 1С, как говорится, на собственное усмотрение. Здесь же, только пример "как".
Данная справка намного нагляднее и лучше, чем в самой 1С.
Оценивайте, ругайте и т.п., т.к. хочу знать ваше мнение, нужно это или нет.
2. Владимир Пушин (vladnet) 223 06.10.09 13:54 Сейчас в теме
В самом файле лучше поправить на вот это:

Функция ФайлПолучитьКаталог(пИмяФайлаПолное) Экспорт
лПозицияСлэша=Макс(СтрНайтиПоследнееВхождение(пИмяФайлаПолное, "\"), СтрНайтиПоследнееВхождение(пИмяФайлаПолное, "/"));
Возврат Лев(пИмяФайлаПолное, лПозицияСлэша);
КонецФункции

url = ?(url="", "file:\\"+ФайлПолучитьКаталог(ИспользуемоеИмяФайла)+ "index.htm", url);

Тогда будет запускаться хоть откуда.
3. Владимир Пушин (vladnet) 223 06.10.09 14:02 Сейчас в теме
У меня в собственном решении справка лежит в виде chm, но уже думаю переходить на внутреннюю, пока не знаю как буду делать. Но за данный вариант спасибо, приму к сведению.

Сам же пока думаю реализовывать поиск и фильтрацию с помощью стандартных механизмов 1с. А саму справку хранить в html в справочнике.
4. rasswet (rasswet) 80 07.10.09 10:09 Сейчас в теме
"Для этого можно воспользоваться сторонними программами" а ты какими именно пользовался?
5. rasswet (rasswet) 80 07.10.09 10:23 Сейчас в теме
(2) СтрНайтиПоследнееВхождение не находит. пробую ваш вариант.
6. Владимир Пушин (vladnet) 223 07.10.09 10:25 Сейчас в теме
(5) Вот добавь еще эту функцию.

Функция СтрНайтиПоследнееВхождение(Знач пСтрока, пПодстрока) Экспорт
лДлинаПодстроки=СтрДлина(пПодстрока);
лПозицияВозвращаемая=0;
Пока Истина Цикл
лПозиция=Найти(пСтрока, пПодстрока);
Если лПозиция=0 Тогда Возврат лПозицияВозвращаемая; КонецЕсли;
Если лПозицияВозвращаемая<>0 Тогда лПозицияВозвращаемая=лПозицияВозвращаемая+лДлинаПодстроки-1; КонецЕсли;
лПозицияВозвращаемая=лПозицияВозвращаемая+лПозиция;
пСтрока=Сред(пСтрока, лПозиция+лДлинаПодстроки);
КонецЦикла;
КонецФункции


Кстати да поддерживаю вопрос raaswet чем пользуешься чтобы сам хелп делать.
7. rasswet (rasswet) 80 07.10.09 11:29 Сейчас в теме
(6) теперь {Форма.Форма(21)}: Преобразование значения к типу Число не может быть выполнено
АдресURL = Адрес + "index.htm#page=Часть31.html";
вобщем не получается.
написал
Адрес = ?(Адрес="", "file:\\"+ФайлПолучитьКаталог(ИспользуемоеИмяФайла)+ "index.htm", Адрес);
и две твои функции.
8. Владимир Пушин (vladnet) 223 07.10.09 12:55 Сейчас в теме
(7) Сложно сказать в чем там дело, попробуй отладчиком посмотреть.
9. rasswet (rasswet) 80 07.10.09 12:59 Сейчас в теме
(8) у тебя есть готовый вариант, где ты добавил то что советуешь? так делись же скорее)))
10. Владимир Пушин (vladnet) 223 07.10.09 13:04 Сейчас в теме
Вот так у меня работает:

Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
	Если url <> "" Тогда 
        Док = ЭлементыФормы.ПолеHTMLДокумента.Документ;
	Иначе
		Предупреждение("Адрес страницы справки не найден.",, "Ошибка.");
		Возврат;
	КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
	ЭлементыФормы.ПолеHTMLДокумента.Перейти(url); 
КонецПроцедуры


Функция СтрНайтиПоследнееВхождение(Знач пСтрока, пПодстрока) Экспорт 
	лДлинаПодстроки=СтрДлина(пПодстрока); 
	лПозицияВозвращаемая=0; 
	Пока Истина Цикл 
		лПозиция=Найти(пСтрока, пПодстрока); 
		Если лПозиция=0 Тогда Возврат лПозицияВозвращаемая; КонецЕсли; 
		Если лПозицияВозвращаемая<>0 Тогда лПозицияВозвращаемая=лПозицияВозвращаемая+лДлинаПодстроки-1; КонецЕсли; 
		лПозицияВозвращаемая=лПозицияВозвращаемая+лПозиция; 
		пСтрока=Сред(пСтрока, лПозиция+лДлинаПодстроки); 
	КонецЦикла; 
КонецФункции 


Функция ФайлПолучитьКаталог(пИмяФайлаПолное) Экспорт 
	лПозицияСлэша=Макс(СтрНайтиПоследнееВхождение(пИмяФайлаПолное, "\"), СтрНайтиПоследнееВхождение(пИмяФайлаПолное, "/")); 
	Возврат Лев(пИмяФайлаПолное, лПозицияСлэша); 
КонецФункции 

url = ?(url="", "file:\\" + ФайлПолучитьКаталог(ИспользуемоеИмяФайла)+ "index.htm", url);
...Показать Скрыть
11. Илья Ануфриев (aipnnov) 158 08.10.09 08:45 Сейчас в теме
Для составления "справки" можно использовать WinCHM, которая сохраняет файлы, по моему, в 3-х форматах .chm, .hlp и .htm (для инета). Есть еще ряд разных программ, надо искать в инете.
Ещё раз повторяю, это пример как можно использовать свое справочное руководство в 1С, а не скудный help, который предоставляет нам 1С. Реализация ее в своих конфигурациях может быть выполнена, как угодно вашей фантазии и как вам удобнее.
Можно сделать справочное руководство, точно такое же как у меня, используя файлы моего справочного руководства, там открыт весь код и если разобраться, то будет все понятно. Я делал сам руками, но использовал файлы 7-10 летней давности, которые в свою очередь "содрал" с какого-то обучающего java программированию сайта (сейчас уже не помню), доработав их до того состояния, которое вы видите.
12. Илья Ануфриев (aipnnov) 158 08.10.09 09:38 Сейчас в теме
Нашел программу WinCHM http://www.izone.ru/text/utilities/winchm.htm, использует те же java скрипты, что и уменя, но платная.

Кстати файл data.js в для справки не нужен, он служит для фиксации изменений в структуре справки, его можно вообще удалить. Остальное все элементарно, для изготовления страниц справки можно использовать б/п редакторы html, а остальные файлы в гл. директории изменить под свои страницы.

Решил написать собственную программу, для создания таких справок. Как сделаю, выложу. Может быть еще какие-нибудь мыслишки посетят мое "чело" за это время.
13. sir Ulrich von Liechtenstein (Путин) 24 08.10.09 10:15 Сейчас в теме
У меня тоже вся справка в htm до сих пор была оформлена кое как. Прикрутил всё к твоей обработке.
Спасибо.
14. sir Ulrich von Liechtenstein (Путин) 24 10.10.09 07:41 Сейчас в теме
Я только сейчас до видео добрался. Добавь в описание. Прикольная фича.
15. Илья Ануфриев (aipnnov) 158 12.10.09 11:20 Сейчас в теме
16. Анатолий (Yasen) 483 15.04.10 07:17 Сейчас в теме
Спасибо, отличная штука.
А почему именно WinCHM если есть бесплатные утилиты?
17. Илья Ануфриев (aipnnov) 158 15.04.10 08:24 Сейчас в теме
(16) Без разницы, какую утилиту использовать, ее я привел для примера. :D