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



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

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

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

17 Comments

  1. aipnnov

    Выкладываю, может кому и пригодится.

    Реализация в 1С, как говорится, на собственное усмотрение. Здесь же, только пример «как».

    Данная справка намного нагляднее и лучше, чем в самой 1С.

    Оценивайте, ругайте и т.п., т.к. хочу знать ваше мнение, нужно это или нет.

    Reply
  2. vladnet

    В самом файле лучше поправить на вот это:

    Функция ФайлПолучитьКаталог(пИмяФайлаПолное) Экспорт

    лПозицияСлэша=Макс(СтрНайтиПоследнееВхождение(пИмяФайлаПолное, «»), СтрНайтиПоследнееВхождение(пИмяФайлаПолное, «/»));

    Возврат Лев(пИмяФайлаПолное, лПозицияСлэша);

    КонецФункции

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

    Тогда будет запускаться хоть откуда.

    Reply
  3. vladnet

    У меня в собственном решении справка лежит в виде chm, но уже думаю переходить на внутреннюю, пока не знаю как буду делать. Но за данный вариант спасибо, приму к сведению.

    Сам же пока думаю реализовывать поиск и фильтрацию с помощью стандартных механизмов 1с. А саму справку хранить в html в справочнике.

    Reply
  4. rasswet

    «Для этого можно воспользоваться сторонними программами» а ты какими именно пользовался?

    Reply
  5. rasswet

    (2) СтрНайтиПоследнееВхождение не находит. пробую ваш вариант.

    Reply
  6. vladnet

    (5) Вот добавь еще эту функцию.

    Функция СтрНайтиПоследнееВхождение(Знач пСтрока, пПодстрока) Экспорт

    лДлинаПодстроки=СтрДлина(пПодстрока);

    лПозицияВозвращаемая=0;

    Пока Истина Цикл

    лПозиция=Найти(пСтрока, пПодстрока);

    Если лПозиция=0 Тогда Возврат лПозицияВозвращаемая; КонецЕсли;

    Если лПозицияВозвращаемая<>0 Тогда лПозицияВозвращаемая=лПозицияВозвращаемая+лДлинаПодстроки-1; КонецЕсли;

    лПозицияВозвращаемая=лПозицияВозвращаемая+лПозиция;

    пСтрока=Сред(пСтрока, лПозиция+лДлинаПодстроки);

    КонецЦикла;

    КонецФункции

    Кстати да поддерживаю вопрос raaswet чем пользуешься чтобы сам хелп делать.

    Reply
  7. rasswet

    (6) теперь {Форма.Форма(21)}: Преобразование значения к типу Число не может быть выполнено

    АдресURL = Адрес + «index.htm#page=Часть31.html»;

    вобщем не получается.

    написал

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

    и две твои функции.

    Reply
  8. vladnet

    (7) Сложно сказать в чем там дело, попробуй отладчиком посмотреть.

    Reply
  9. rasswet

    (8) у тебя есть готовый вариант, где ты добавил то что советуешь? так делись же скорее)))

    Reply
  10. vladnet

    Вот так у меня работает:

    Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
    Если url <> «» Тогда
    Док = ЭлементыФормы.ПолеHTMLДокумента.Документ;
    Иначе
    Предупреждение(«Адрес страницы справки не найден.»,, «Ошибка.»);
    Возврат;
    КонецЕсли;
    КонецПроцедуры
    
    Процедура ПриОткрытии()
    ЭлементыФормы.ПолеHTMLДокумента.Перейти(url);
    КонецПроцедуры
    
    
    Функция СтрНайтиПоследнееВхождение(Знач пСтрока, пПодстрока) Экспорт
    лДлинаПодстроки=СтрДлина(пПодстрока);
    лПозицияВозвращаемая=0;
    Пока Истина Цикл
    лПозиция=Найти(пСтрока, пПодстрока);
    Если лПозиция=0 Тогда Возврат лПозицияВозвращаемая; КонецЕсли;
    Если лПозицияВозвращаемая<>0 Тогда лПозицияВозвращаемая=лПозицияВозвращаемая+лДлинаПодстроки-1; КонецЕсли;
    лПозицияВозвращаемая=лПозицияВозвращаемая+лПозиция;
    пСтрока=Сред(пСтрока, лПозиция+лДлинаПодстроки);
    КонецЦикла;
    КонецФункции
    
    
    Функция ФайлПолучитьКаталог(пИмяФайлаПолное) Экспорт
    лПозицияСлэша=Макс(СтрНайтиПоследнееВхождение(пИмяФайлаПолное, «»), СтрНайтиПоследнееВхождение(пИмяФайлаПолное, «/»));
    Возврат Лев(пИмяФайлаПолное, лПозицияСлэша);
    КонецФункции
    
    url = ?(url=»», «file:\» + ФайлПолучитьКаталог(ИспользуемоеИмяФайла)+ «index.htm», url);
    

    Показать

    Reply
  11. aipnnov

    Для составления «справки» можно использовать WinCHM, которая сохраняет файлы, по моему, в 3-х форматах .chm, .hlp и .htm (для инета). Есть еще ряд разных программ, надо искать в инете.

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

    Можно сделать справочное руководство, точно такое же как у меня, используя файлы моего справочного руководства, там открыт весь код и если разобраться, то будет все понятно. Я делал сам руками, но использовал файлы 7-10 летней давности, которые в свою очередь «содрал» с какого-то обучающего java программированию сайта (сейчас уже не помню), доработав их до того состояния, которое вы видите.

    Reply
  12. aipnnov

    Нашел программу WinCHM http://www.izone.ru/text/utilities/winchm.htm, использует те же java скрипты, что и уменя, но платная.

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

    Решил написать собственную программу, для создания таких справок. Как сделаю, выложу. Может быть еще какие-нибудь мыслишки посетят мое «чело» за это время.

    Reply
  13. Путин

    У меня тоже вся справка в htm до сих пор была оформлена кое как. Прикрутил всё к твоей обработке.

    Спасибо.

    Reply
  14. Путин

    Я только сейчас до видео добрался. Добавь в описание. Прикольная фича.

    Reply
  15. aipnnov

    (14) Добавил.

    Reply
  16. Yasen

    Спасибо, отличная штука.

    А почему именно WinCHM если есть бесплатные утилиты?

    Reply
  17. aipnnov

    (16) Без разницы, какую утилиту использовать, ее я привел для примера. 😀

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *