Как обеспечить отображение справки во внешнем отчете или обработке 1С 8.3

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Проверка базовых свойств метаданных

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

  1. Откроем окно редактирования внешнего отчета.
  2. Перейдем на закладку Прочее и убедимся, что кнопка Справка содержит написанный вами текст.
  3. Теперь самое важное: перейдем к форме отчета. В дереве метаданных выберем форму и откроем ее свойства (Alt + Enter).
  4. Найдем свойство Автоматическое получение справки (AutoHelp). Оно должно быть установлено в значение Истина.
  5. Проверим свойство Справка. В этом поле должен быть выбран соответствующий раздел справки вашего объекта. Если там пусто, форма «не знает», какую именно страницу HTML-документа ей нужно вызвать.

Проанализируем ситуацию, когда отчет создается путем копирования существующего. Часто флажок «включать в содержимое справки» (характерный для объектов конфигурации) во внешних отчетах отсутствует в явном виде. Однако, если вы создадите внутренний отчет в составе конфигурации, настроите в нем справку и сохраните его как внешний файл (.erf или .epf), эти настройки перейдут во внешний объект.

Борьба с кэшированием справочной информации

Одной из самых частых причин, по которой изменения в справке не видны пользователю, является агрессивное кэширование платформой 1С:Предприятие 8.3. Когда вы открываете внешний файл, платформа сохраняет его описание во временных папках пользователя. Если вы изменили справку, сохранили файл и открыли его снова под тем же именем, система может подтянуть старую версию из кэша.

Выясним, как принудительно обновить эти данные. Существует несколько проверенных способов:

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

Способ 2: Очистка временных файлов. Справка внешних объектов часто извлекается во временную директорию Local\1C\1cv8\.... Полная очистка папок кэша пользователя — радикальный, но эффективный метод. Разберем по шагам, где искать эти файлы:

  1. Закройте все сеансы 1С.
  2. Перейдите в папку %LOCALAPPDATA%\1C\1cv8\.
  3. Удалите все папки с длинными именами-идентификаторами (например, 239d4b...).
  4. Запустите 1С заново и откройте отчет.

Программный вызов справки: гарантированный метод

Если стандартный механизм F1 не срабатывает из-за особенностей релиза платформы (что иногда случается в версиях типа 8.3.16.1063), мы можем реализовать вызов справки программно. Рассмотрим ситуацию: мы добавим на форму свою кнопку «Инструкция».

В модуле формы мы можем использовать метод ОткрытьСправку(). Посмотрим на пример кода, который позволяет открыть раздел справки принудительно:


&НаКлиенте
Процедура КомандаИнструкция(Команда)
    // Вызываем стандартный метод открытия справки для текущей формы
    ОткрытьСправку();
КонецПроцедуры

Если нам нужно сослаться на конкретный раздел или файл, структура вызова может быть сложнее. Однако для большинства внешних отчетов достаточно того, чтобы в свойствах формы была корректно указана ссылка на раздел справочной информации самого объекта. Проанализируем преимущество этого метода: вы полностью контролируете контекст и можете даже выводить разные разделы справки в зависимости от того, на какой закладке формы находится пользователь. В качестве альтернативы можно использовать расширение для автоматического размещения контекстной справки на формах.

Особенности HTML-разметки во внешних отчетах

Платформа 1С использует собственный упрощенный движок для отображения HTML-контента в окне справки. Если ваша справка «не открывается» или выглядит как белый лист, возможно, дело в некорректном HTML-коде. Посмотрим на критические требования:

Чистота тегов: Не рекомендуется копировать текст напрямую из Microsoft Word. Это вносит огромное количество лишних стилей и XML-разметки, которые могут «повесить» просмотрщик справки. Используйте максимально простую верстку.

Структура документа: Убедитесь, что ваш текст обрамлен базовыми тегами. Пример правильной структуры справочной страницы:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Руководство по работе с отчетом</h1>
<p>Данный отчет позволяет анализировать остатки товаров на складах.</p>
<strong>Важно:</strong> перед запуском выберите период.
</body>
</html>

Также помните, что язык интерфейса играет ключевую роль. Если вы создали справку для русского языка (ru), а пользователь запустил 1С с английским интерфейсом, платформа будет искать справку для языка en. Если она не найдена — справка не отобразится. Всегда проверяйте соответствие языковых настроек в редакторе справки и в сеансе пользователя.

Влияние способа запуска (Файл-Открыть vs Дополнительные отчеты)

Рассмотрим разницу в поведении справки в зависимости от того, как запущен отчет. Если вы используете меню Файл — Открыть, отчет работает как временный объект. Если же вы регистрируете отчет в подсистеме Дополнительные отчеты и обработки (БСП), платформа фактически пересохраняет его в свою базу или временное хранилище.

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

Резюме действий для исправления проблемы

Подведем итог. Если справка не видна, выполните следующие действия по порядку:

  1. В конфигураторе проверьте наличие текста в разделе Справочная информация корня отчета.
  2. В свойствах формы проверьте флаг Автоматическое получение справки и привязку к разделу в поле Справка.
  3. Попробуйте переименовать отчет (Имя и Синоним) и сохранить его под новым именем файла — это исключит влияние кэша.
  4. Проверьте, не содержит ли HTML-код справки специфических скриптов или сложных стилей, которые блокируются платформой.
  5. Если ничего не помогает, используйте программный вызов ОткрытьСправку() в обработчике нажатия кнопки на форме.

Следуя этим шагам, вы сможете гарантировать, что пользователи вашего внешнего отчета всегда будут иметь доступ к актуальной документации прямо внутри интерфейса программы.

← На главную