Проверка орфографии в приложениях, которые нас окружают, уже давно стало обычным делом. Но тем не менее, в 1С такая возможность не реализована для полей редактирования текста. В представленной внешней обработке я предлагаю методику, которая позволяет с помощью расширения, выполнять проверку орфографии в любом количестве текстовых полей. Для этого нужно добавить ДВА общих модуля. Один для функций, выполняемых на клиенте, второй для функций, выполняемых на сервере. В модуль формы добавляется код инициализации данных для проверки орфографии, и события обработки кнопок контекстного меню. Предложенный метод не требует изменения элементов форм, добавления кода в модуль формы вполне достаточно.
Механизм проверки орфографии использует бесплатное API «Яндекс.Спеллер», которое позволяет выполнять в сутки 10 тысяч обращений или обрабатывать 10 миллионов символов.
Интерактивно это работает следующим образом. Контекстное меню, выпадающее по нажатию правой кнопки мыши, содержит пункт «Выполнить проверку орфографии:». По выбору этого пункта, запускается процесс поиска орфографических ошибок. Найденные ошибки добавляются в контекстное меню ниже пункта «Выполнить проверку орфографии:». Кнопки ошибок содержат информацию о неправильно написанном слове и слово, на которое предлагается его заменить. Выбор любого из этих пунктов, выполняет замену неверно написанного слова на предложенный вариант. Сделанное исправление, убирает не актуальные ошибки из списка. После исправления всех орфографических ошибок, в контекстном меню остается добавленным только пункт «Выполнить проверку орфографии:». Если проверка не найдет ошибок, то появится диалог «Ошибок в орфографии не найдено.».
Код открыт. Обработка демонстрирует методику организации проверки орфографии в текстовых полях. Количество обрабатываемых полей может быть любым. Подключение еще одного поля формы на проверку орфографии, потребует вызова ДВУХ функций инициализации:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
...
ОбщегоНазначения_Сервер.ИнициализироватьОрфографию(Элементы,Команды,"Текст3");
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
...
СтруктрураПроверкиОрфографии.Вставить("Текст3",Новый Структура("МасОшибок,ТекстПроверялся,ПутьКДанным",Новый Массив,Объект["Текст3"],"Текст3"));
ИЛИ
СтруктрураПроверкиОрфографии.Вставить("Текст3",Новый Структура("МасОшибок,ТекстПроверялся,ПутьКДанным",Новый Массив,Объект["Текст3"],"Объект.Текст3"));
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.188.17
Вступайте в нашу телеграмм-группу Инфостарт
