Почему не открывается справочная информация при смене языка интерфейса в 1С и как это исправить?

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

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

Почему возникает ошибка и не отображается справка

Проанализируем архитектуру хранения документации в платформе 1С:Предприятие. Справочная информация объектов метаданных и форм хранится в виде HTML-страниц раздельно для каждого языка, зарегистрированного в дереве метаданных в ветке Общие — Языки.

В платформе жестко заложено следующее поведение:

  1. Привязка к языку сеанса. Когда пользователь нажимает кнопку вызова справки, платформа запрашивает раздел документации строго для того кода языка, который назначен текущему пользователю в качестве языка интерфейса программы.
  2. Отсутствие автоматического отката (fallback). Если для языка текущего сеанса текст справки в объекте метаданных не заполнен, платформа не пытается автоматически подставить текст на основном языке конфигурации (русском). Вместо этого система открывает системную страницу с ошибкой отсутствия раздела.
  3. Штатные команды формы. Стандартное свойство формы КнопкаСправки и вызов по клавише F1 жестко привязаны к встроенному механизму и не имеют настроек переопределения языка по умолчанию.

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

Способ 1. Заполнение справки через Конфигуратор для отдельных объектов

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

  1. В главном меню Конфигуратора перейдем в пункт Конфигурация — Язык редактирования конфигурации (этот же переключатель доступен в нижней строке состояния справа). Выберем нужный язык, например, азербайджанский.
  2. Откроем свойства интересующего объекта метаданных или управляемой формы и выберем пункт Справочная информация.
  3. Если перевод уже готов, введем локализованный текст в открывшемся встроенном HTML-редакторе.
  4. Если же цель состоит в том, чтобы пользователи видели хотя бы исходную справку (без перевода), переключим язык редактирования обратно на русский, откроем справку объекта, перейдем на вкладку «Текст» и скопируем исходный HTML-код. Затем снова сменим язык редактирования на азербайджанский и вставим скопированный HTML-код на вкладку «Текст».

После сохранения и обновления конфигурации базы данных при работе под иностранным интерфейсом система найдет заполненную страницу и покажет справочную информацию.

Способ 2. Пакетное копирование справки через выгрузку конфигурации в файлы

Когда в конфигурации сотни документов, справочников и отчетов, ручное копирование текстов справки через интерфейс Конфигуратора занимает слишком много времени. В такой ситуации применим автоматизированный подход с выгрузкой метаданных в файлы XML и HTML.

Разберем алгоритм пакетного переноса:

  1. Выгрузим структуру конфигурации в файлы. Для этого в меню Конфигуратора выберем Конфигурация — Выгрузить конфигурацию в файлы... Либо выполним выгрузку из командной строки с помощью параметра пакета:
    
    "C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /IBConnectionString "..." /DumpConfigToFiles "C:\ConfigDump"
    
  2. Изучим полученный каталог. В структуре файлов справочная информация объектов сохраняется в виде HTML-страниц, где в именах файлов или подкаталогах фигурирует код языка (например, суффикс ru.html).
  3. С помощью любого скрипта автоматизации (PowerShell или Bash) выполним поиск всех файлов русской справки и создадим их дубликаты с кодом целевого языка (например, копируем Help_ru.html в Help_az.html).
  4. Загрузим измененные файлы обратно в базу через пункт меню Конфигурация — Загрузить конфигурацию из файлов... или пакетный запуск с ключом /LoadConfigFromFiles.
  5. Применим изменения в структуре базы данных.

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

Способ 3. Переопределение кнопки вызова справки на управляемой форме

Если дублирование страниц в метаданных нежелательно (например, из-за увеличения размера метаданных или сложности последующего обновления на типовые релизы), можно реализовать собственный механизм открытия документации.

Рассмотрим порядок реализации:

  1. В свойствах формы отключим стандартное отображение справки, установив свойство КнопкаСправки = Ложь.
  2. Добавим в командную панель формы собственную кнопку со стандартной картинкой вопроса.
  3. Создадим общую форму просмотра справки с реквизитом типа Строка, отображаемым на форме как элемент управления Поле HTML-документа.
  4. В обработчике нажатия кнопки проанализируем текущий язык пользователя. Если локализованный текст справки отсутствует в макетах конфигурации, программно подгрузим текст на русском языке и откроем нашу форму.

Способ 4. Вынос справочной информации во внешнюю базу знаний

Для крупных международных систем эффективным решением является отказ от встроенной справки в пользу внешних веб-порталов (Wiki, Confluence, внутренний сайт поддержки). В этом случае по нажатию кнопки помощи выполняется перенаправление в браузер:


&НаКлиенте
Процедура КомандаСправка(Команда)
    АдресСправки = "https://wiki.company.com/docs/" + ТекущийЯзык() + "/sales_order";
    ПерейтиПоНавигационнойСсылке(АдресСправки);
КонецПроцедуры

Такой подход позволяет актуализировать справочные материалы и переводы силами методистов без необходимости постоянного внесения изменений в конфигурацию и обновления баз данных пользователей.

← На главную