Есть ли в платформе 1С встроенный словарь орфографии и как он работает?

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

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

Спойлер: собственного доступного словаря у платформы 1С нет. Наблюдаемый эффект — это результат умной интеграции с возможностями операционной системы.

Причина проверки орфографии: движок WebKit и системные службы

Ключевую роль в проверке орфографии играет реквизит типа ФорматированныйДокумент. По своей сути, это поле для работы с HTML-содержимым. Возможности этого объекта иногда расширяют, создавая полноценный WYSIWYG редактор, или используют альтернативный универсальный ввод на WEB клиенте через поле HTML документ. Начиная с версии платформы 8.3.14, для отображения таких полей в клиентских приложениях под Windows используется браузерный движок WebKit. Особенности работы движка WebKit в платформе 1С объясняют, как именно происходит это взаимодействие с системными компонентами.

Этот движок, в свою очередь, активно взаимодействует с операционной системой, на которой он запущен. Одной из функций, которую WebKit заимствует у ОС, является встроенная служба проверки орфографии. Таким образом, то, что мы видим в 1С, — это не функция самой платформы, а работа системного словаря Windows, MacOS или Linux, доступ к которому поле ФорматированныйДокумент получает через WebKit.

Этот факт объясняет несколько моментов, замеченных в обсуждении на форуме:

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

Как тогда реализовать проверку орфографии программно?

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

Решение 1: Использование COM-объектов офисных приложений

Это классический и надежный способ. Если на компьютере пользователя установлен Microsoft Office, можно программно обратиться к приложению Word для проверки текста. Для этого используется технология COM. Вы можете использовать программную проверку орфографии средствами MS Word, чтобы автоматизировать этот процесс в фоновом режиме.

Преимущества:

Недостатки:

Примерно по такой же схеме реализована проверка орфографии в некоторых конфигурациях, например, в 1С:Документооборот, где можно выбрать для проверки MS Word или OpenOffice.

Решение 2: Внешние онлайн-сервисы (API)

В интернете существует множество сервисов, предоставляющих API для проверки орфографии. Из 1С можно отправлять HTTP-запросы с текстом на такой сервис и получать в ответ результат проверки. Например, большой популярностью пользуется проверка орфографии в 1С при помощи Яндекс Спеллер, которая позволяет легко обрабатывать обычные строковые поля. Подобные технологии машинного зрения и API применяются не только для проверки ошибок, но и для таких задач, как распознавание документов (паспорт, ВУ, СТС) с целью автоматического заполнения реквизитов.

Преимущества:

Недостатки:

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

Решение 3: Собственная реализация

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

Преимущества:

Недостатки:

Итак, подведем итог. "Волшебной" проверки орфографии, встроенной в ядро платформы 1С, нет. Эффект в поле ФорматированныйДокумент — это работа связки "движок WebKit + системный словарь ОС", и программно обратиться к этому механизму нельзя. Для решения прикладных задач по проверке орфографии следует выбирать один из альтернативных методов.

← На главную