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

Итак, вот входные требования, чтобы изменить ситуацию:
- справка должна быть "под рукой"
- справка должна быть актуальна именно для текущей ситуации, то есть "контекстная"
- справка должна быть с картинками и хорошо оформлена
- справка должна быть в актуальном состоянии, т.е. легко дополняемая
Предлагается небольшое расширение, которое закрывает все эти требования. Разработчик сможет относительно легко добавлять описание функционала в поле, напоминающим страницу Word - с разметкой текста и картинками, а пользователь получит доступ из того места, где она нужна. И все это без лишних затрат.
Преимущества:
- Вся работа со справкой происходит в режиме "Предприятие" - удобно добавлять и поддерживать в актуальном состоянии - закрываем требование по простоте актуализации и поддержки.
- Справка оформлена в виде поля форматированного документа - легко редактировать, легко добавлять картинки и оформлять - закрываем требование по хорошему оформлению, картинкам и еще раз по простоте поддержки.
- Доработанный модуль БСП "на лету" программно добавляет кнопки вызова в нужные формы через механизм подключаемых команд - закрываем требование "под рукой" и "актуальна для текущего объекта".
- Расширение не громоздкое: один регистр сведений, одна константа, несколько картинок и несколько модулей: как добавленных, так и заимствованных с доработками.
- Можно выбрать картинку для кнопки справки.
- К одной форме можно добавлять несколько статей справки. Для каждой статьи будет своя кнопка.
- Если одну справку нужно добавить в разные формы, то предусмотрен механизм донорства - одна статья справки может подключаться в несколько форм без копирования содержимого.
- Расширение легко подключается во все популярные стандартные базы, использующие БСП.

Как это выглядит на практике
- Разработчик понимает, что в такой-то форме требуется описание нового функционала или инструкция пользователям
- Разработчик создает новую запись в регистре и описывает изменения
- Оформление статьи происходит как в Word или как в письме Outlook - картинки вставляются в текст копипастом из буфера, текст сразу имеет нормальный размер, легко форматируется.
- Разработчик указывает имя формы и идентификатор команды, заполняет поля: заголовок статьи, заголовок кнопки, краткое описание. Записывает изменения.
- Пользователь сразу видит кнопку при открытии формы, при нажатии на нее статья демонстрируется в режиме чтения.
Описание архитектуры для разработчиков
В основе расширения лежит регистр сведений "кспр_КонтекстнаяСправка" с двумя измерениями типа строка: ИмяФормы; ИмяРаздела.

Измерения описывают, куда добавлять кнопку и с каким идентификатором. При этом автоматически поддерживается уникальность идентификаторов команд для подсистемы БСП "Подключаемые команды".
Содержимое справки хранится в ресурсе с типом "ХранилищеЗначения". В форме ресурс разворачивается в ПолеФорматированногоДокумента, при записи формы происходит обратная трансформация в Хранилище значения и изменения записываются в регистр.
Кнопки добавляются на форму через механизм подключаемых команд модификацией стандартных процедур "ПриОпределенииВидовПодключаемыхКоманд", "ПриОпределенииКомандПодключенныхКОбъекту"
Описание пользовательского интерфейса
Команда для вызова списка статей (список записей регистра сведений) располагается в подсистеме "НСИ и Администрирование". Т.к. статьи добавляет разработчик, то для редактирования статей нужны права "Полные права" или "Администрирование. Для просмотра статей должна быть доступна роль "БазовыеПраваБСП".

Форма списка
Традиционная форма списка регистра.
Доступна кнопка просмотра и подключения копии справки - об этом ниже.

Форма записи
В форме данные расположены на нескольких закладках.
Основная закладка "Содержание справки" - именно в ней выполняется большая часть работы.

Разработчик видит справку так, как будет видеть ее пользователь - без изменений или искажений.
На закладке "Шапка" можно указать описание, заголовок кнопки, заголовок окна, даже картинку кнопки - для этого указать имя картинки из библиотеки. Возможна настройка порядка нескольких статей через реквизит "Порядок".

На закладке "Настройки" можно отключить показ справки без непосредственного удаления статьи. Это может быть удобно, если справка в разработке и нет желания смущать пользователей черновым вариантом.

О закладке "Аватары" будет сказано чуть позже.
Имя формы
Для добавления новой статьи необходимо знать внутреннее имя формы.
Его легко можно определить через механизм платформы "Информация для технического специалиста".

Нужно просто скопировать содержимое из окна в соответствующий реквизит.
Имя статьи
Имя статьи (раздела) может быть произвольным, главное, чтобы имя было уникальным в разрезе имен форм. В названии допускаются пробелы, цифры, специальные символы.
Заголовки
Доступно заполнение двух заголовков:
- заголовок кнопки - название говорит само за себя. Определяет текст кнопки для вызова справки.
Здесь есть нюанс. Если статья только одна, то механизм БСП "минимизирует" и показывает только картинку. Это глобальная картинка справки, которую можно задать в настройках. Если картинка не задана, то всегда будет показан текст

- заголовок статьи - это заголовок окна. Например, на картинке ниже можно посмотреть как для пользователя выглядит заголовок статьи - "Настройка подписей доверенностей"

КЭШ формы
После записи справка готова к показу, но с одним нюансом. Дело в том, что формы кэшируются при открытии, поэтому ранее открытая форма не будет обновлять список подключенных команд, а будет брать его из КЭШ. Чтобы сбросить КЭШ в низу списка статей есть кнопка "Обновить повторно используемые значения", которая сбрасывает КЭШ.

Также кнопка продублирована в форме справки на закладке "Настройки".

Обращаю внимание, что КЭШ сбрасывается только у текущего сеанса, т.е. разработчик не может сбросить КЭШ другого пользователя. Чтобы пользователь сбросил КЭШ ему нужно вызвать аналогичную команду или просто перезапустить базу. Я не стал городить огород и захламлять интерфейс пользователя непонятными и ненужными ему командами. Иногда проще просто перезапустить базу. Разработчику же необходимо видеть в оперативном режиме как будет выглядеть кнопки вызова на форме, поэтому ему сброс КЭШа необходим.
Настройки расширения
У подсистемы всего одна настройка - возможность выбрать внешний вид кнопки справки, которая будет видна пользователю. Доступны для выбора несколько вариантов - выбирайте на свой вкус.
Задать вид кнопки можно в окне настроек расширения. Окно вызывается из списка регистра в подменю "ЕЩЕ" --> "Настройки подсистемы".

Для удобства сверху показаны примеры того, как будет выглядеть тот или иной вариант.

Доноры и аватары
Нередки бывают случаи, когда одну и ту же статью необходимо показывать сразу в нескольких формах. Например в форме списка документов и форме самого документа. Т.к. архитектура имеет в своей основе регистр сведений - ссылка отсутствует - поэтому есть два выхода:
1) просто копировать все содержимое в другую запись. Понятно, что это нежелательный вариант, т.к. при изменении одной статьи нужно искать и изменять содержимое всех копий.
2) воспользоваться механизмом аватаров - когда одна справочная статья получает содержимое из другой статьи. Для этого в шапке ставим галку "Является аватаром другой справки" и указываем ключевые поля справки-донора. При этом в текущем окне мы видим содержимое донора, но поле находится в режиме "только просмотр", плюс добавляется информационная запись сверху.

В справке-доноре можно посмотреть список его "аватаров".
Выводы
Простой механизм, который позволяет облегчить жизнь как разработчику, так и пользователю.
Пользуюсь сам, поэтому и решил опубликовать на Инфостарт - стараюсь выкладывать только проверенные жизнью решения.
Планы на будущее
Планирую добавить выгрузку/загрузку содержимого, чтобы можно было обмениваться содержимым между различными базами. Возможно добавлю иерархический справочник "Список статей", где можно будет сформировать структуру всех статей и пользователь сможет посмотреть "а что еще есть".
Вопросы по архитектуре
Почему регистр, а не справочник?
Я исходил от подключаемых команд БСП. Там важна уникальность команд, которая в случае регистра поддерживается автоматически. А в справочнике нет. Да, справочник позволил бы не городит огород с аватарами, но я решил так. Кто хочет - может реализовать свой вариант.
Техническая информация
Опишу как подключить расширение для неопытных пользователей.
В режиме "Конфигуратор"
- скачиваете файл расширения
- в главном меню вызываете список расширений: "Когфигурация" --> "Расширения конфигурации"
- добавляете новое расширение - имя, синоним, назначение, префикс - произвольные, т.к. они заменятся на значения из файла.
- новое расширение добавится в список расширений. Снимаете галки "Безопасный режим", "Защита от опасных действий"
- двойным щелчком открываете конфигурацию расширения
- для конфигурации расширения вызываете меню "Действия" --> "Конфигурация" --> "Загрузить конфигурацию из файла"
- в диалоге выбираете скачанный файл
- затем снова "Действия" --> "Конфигурация" --> "Обновить конфигурацию расширения"
- обновление конфигурации расширения можно выполнить только в монопольном режиме с завершением работы всех пользователей и фоновых заданий
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.12.205, 3.1.11.466
- 1С:ERP Управление предприятием 2, релизы 2.5.27.49, 2.5.26.118
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.199.13, 3.0.195.40, 3.0.190.22
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.199.13, 3.0.195.40, 3.0.190.22
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.37.72, 3.1.36.45
- Управление торговлей, редакция 11, релизы 11.5.27.49
Вступайте в нашу телеграмм-группу Инфостарт