Каталог решений - Проверка орфографии в полях форматированного документа в 1С: Документооборот КОРП ред. 3.0

Проверка орфографии в полях форматированного документа в 1С: Документооборот КОРП ред. 3.0

Проверка орфографии в полях форматированного документа в 1С: Документооборот КОРП ред. 3.0

В наличии

Проверка орфографии в элементах формы поля ввода типа «Форматированный документ» с помощью типового функционала в конфигурации «1С:Документооборот КОРП» редакция 3.0.

Категория:

Описание

Вводные данные: платформа «1С:Предприятие 8.3» (8.3.24.1586). Конфигурация «Документооборот КОРП» редакция 3.0 (3.0.15.41), далее — ДО. Установленный Microsoft Office или OpenOffice.

Задача: создание функционала проверки орфографии в полях ввода с видом «Поле форматированного документа».

Решение: в ДО уже есть функционал для полей ввода типа строка (например, элемент «Заголовок» и «Содержание» в «ФормаЭлемента» справочник «ДокументыПредприятия»). Учитывая это, реализовать решение очень просто. Достаточно сделать так же, как в форме «ФормаЭлемента» справочника «ДокументыПредприятия».

 

 

&НаКлиенте
Процедура ПроверитьОрфографию(Команда)
	
	#Если ВебКлиент Или МобильныйКлиент Тогда
		Возврат;
	#КонецЕсли

	// Проверяем одновременно оба поля
	ИДРазделитель = СокрЛП(Новый УникальныйИдентификатор());
	ТекстСодержания = Объект.Заголовок + Символы.Таб + ИДРазделитель + Символы.Таб + Объект.Содержание;
	ОписаниеОповещения = Новый ОписаниеОповещения("ЗавершениеПроверитьОрфографию", 
		ЭтотОбъект,
		Новый Структура("ИДРазделитель", ИДРазделитель));
	ОрфографияКлиент.ПроверитьОрфографиюТекст(ОписаниеОповещения, ТекстСодержания);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗавершениеПроверитьОрфографию(Результат, Параметры) Экспорт
	
	Если Результат.ТекстИзменен Тогда
		Разделитель = Символы.Таб + Параметры.ИДРазделитель + Символы.Таб;
		
		ТекстСодержания = Результат.ПроверяемыйТекст;
		Объект.Заголовок = Лев(ТекстСодержания, СтрНайти(ТекстСодержания, Разделитель) - 1);
		Объект.Содержание = Прав(ТекстСодержания, 
			СтрДлина(ТекстСодержания) - СтрНайти(ТекстСодержания, Разделитель) - СтрДлина(Разделитель) + 1);
		
		Модифицированность = Истина;
	КонецЕсли;	
	
КонецПроцедуры

                                                                 «ФормаЭлемента» справочника «ДокументыПредприятия»

С полем вида «Форматированный документ» немного сложнее.

По моему мнению, самый простой вариант в этом случае — задействовать типовое решение ДО.

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

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

В формах, в которых будет проводиться проверка, также необходимо модифицировать функционал:

  • добавить кнопку и команду вызова проверки;
  • добавить экспортную процедуру в модуль формы для передачи результата проверки и загрузки результата в поле вида «Форматированный документ».

Ниже показан код решения для формы «ФормаЭлемента» документа «Задача».

&НаСервере
&После("ПриСозданииНаСервере")
Процедура ИСВС_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ИСВС_СобытияФормДоп.ПриСозданииНаСервереПосле(ЭтаФорма);
		
КонецПроцедуры

&НаКлиенте
Процедура ИСВС_КомандаПроверитьОрфографию(Команда) Экспорт
	#Если ВебКлиент Или МобильныйКлиент Тогда
		Возврат;
	#КонецЕсли
	
 	ОрфографияКлиент.ИСВС_ПроверитьОрфографиюТекущегоЭлементаФормы(ЭтотОбъект);
КонецПроцедуры	

&НаКлиенте
Процедура ИСВС_ЗагрузитьHTMLДокументВРеквизитФормы(Параметры) Экспорт
	ИСВС_ЗагрузитьHTMLВПолеФорматированногоДокументаНаСервере(Параметры);
КонецПроцедуры	

&НаСервере
Процедура ИСВС_ЗагрузитьHTMLВПолеФорматированногоДокументаНаСервере(Параметры)
	 ЭтотОбъект[Параметры.ИмяРеквизита].УстановитьHTML(Параметры.HTMLДокумент,Параметры.Вложения);
КонецПроцедуры  

                                                      код решения для формы «ФормаЭлемента» документа «Задача»

Полный код проверки прикреплен к статье файлом cfe.

P.S. Сам метод типовой проверки достаточно простой, и на Инфостарте наверняка есть статьи об использовании словарей редактора Microsoft Word в 1С с помощью «com». В ДО все это можно наглядно увидеть в общем модуле «ОрфографияКлиент». Конечно, интереснее было бы использовать проверку с помощью нейросетей, но лень-матушка.

has been added to your cart:
Оформление заказа