gifts2017

Справка 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) 06.10.09 13:30
Выкладываю, может кому и пригодится.
Реализация в 1С, как говорится, на собственное усмотрение. Здесь же, только пример "как".
Данная справка намного нагляднее и лучше, чем в самой 1С.
Оценивайте, ругайте и т.п., т.к. хочу знать ваше мнение, нужно это или нет.
2. Владимир Пушин (vladnet) 06.10.09 13:54
В самом файле лучше поправить на вот это:

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

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

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

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

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


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

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

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


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


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

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

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

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