Проверка орфографии средствами Yandex Speller

07.11.18

Интеграция - WEB-интеграция

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

Скачать файлы

Наименование Файл Версия Размер
Проверка орфографии средствами Yandex Speller
.zip 219,98Kb
67
.zip 18.04.23 219,98Kb 67 Скачать

Проверка орфографии средствами Yandex Speller

Описание

Обработка производит проверку передаваемого текста средствами API Yandex Speller, довольно проста в использовании.

Может принимать различные параметры и опции для проверки (см. скриншоты). Например может игнорировать короткие слова, исключать переданые слова из строки с разделителями или заданого справочника.

Позволяет на основе распознаных ошибок создавать справочник-словарь исключений.

Строка может содержать как обычный текст, так и HTML разметку.

Опции:

  1. Пропускать верхний регистр
  2. Пропускать слова с цифрами
  3. Пропускать пути и ссылки
  4. Выявлять повторы слов
  5. Пропускать латиницу
  6. Не предлагать замену (только подсвечивать ошибки)
  7. Отмечать латиницу
  8. Распознавать текст как набор слов
  9. Пропускать рЕгИСтР
  10. Пропускать римские цифры

Есть возможность при отсутствии ошибок в переданном тексте автоматически закрывать форму.

Проверяет русский, английский и украинский языки.

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

Обращение происходит через HTTP GET (Я использовал бы Web сервисы, но платформа накладывает определенные ограничения, тем не менее в модуле есть закоменченный кусочек для соединения через WS).

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

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

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

Обработка использует только средства платформы, тестировалась на "голой" конфигурации 8.3.10.2561 УФ (Тонкий клиент), Win Server 2012R2.

На вскидку должна запуститься на чем угодно начиная с 8.3.6.1977 с отключенным режимом совместимости (Очень уж люблю СтрШаблон() ).

Красивости расчитаны на наличие IE-11 в системе, если у Вас все плохо, то поправьте следующую строку в модуле объекта: <meta http-equiv='X-UA-Compatible' content='IE=11'>

Спроектирована без  использования модальных окон и вызовов.

Обработка довольно подробно документирована, при вызове функции модуля объекта - все параметры подписаны.

Код открыт, можете править в свое удовольствие, только не продавайте отдельно саму обработку (только если в составе продукта).

 

Передаваемые параметры и полученный результат

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

Просто посмотрите, что возвращает закрытая форма или функция, там довольно интуитивно понятно)

 
 При инициализации формы с тонкого клиента
 
 При инициализации обработки на сервере

 

Примеры использования

Вариант "на клиенте":

Предположим вы хотите перед записью документа проверить правописание определенного реквизита, тогда Вы:

1) В модуле формы создаете процедуру "ПередЗаписью()"

2) В ней вызываете форму обработки, передав в нее структуру параметров (обязательно передайте значение ключа "Текст", иначе не имеет смысла, остальное заполниться по умолчанию). Также передайте владельца формы - ЭтаФорма.

!!! ЕСЛИ ВЫ НЕ ПЕРЕДАДИТЕ ВЛАДЕЛЬЦА ФОРМЫ, ТО ОБРАБОТКА ПОСЧИТАЕТ, ЧТО ВЫ ПРОСТО ЗАХОТЕЛИ ПОТЕСТИРОВАТЬ ЕЁ И СЕБЯ И СПРЯЧЕТ КНОПКИ "ОТМЕНИТЬ" и "ПРИНЯТЬ" !!!

Это сделано специально, но если Вы по какой то причине не хотите передавать владельца, Вы вполне можете закоментить процедуру "ПриОткрытии()" в обработке, это не повлияет на результат, а кнопки будут отображаться всегда.

3) Откройте форму, автоматически пройдет проверка. Если вы передали параметр "ЗакрытьЕслиБезОшибок" - Истина и не обнаружено ошибок, то форма будет сразу закрыта и вернет структуру с результатом проверки.

4) Если были обнаружены ошибки - пользователю будет предложено выбрать верные варианты и согласиться/не согласиться с правками.

5) Нажав кнопку Принять или Отмена (крестик) - форма закроется и вернет владельцу результат проверки или неопределено, соответсвенно.

 
На клиенте (упрощенный вызов)
 
На клиенте (с последующей ручной корректировкой)

 

Вариант "на сервере":

 

Предположим вы хотите лишить пользователя свободы воли выбора и автоматически исправлять ошибки, скажем перед записью документа:

1) В модуле объекта документа создаете процедуру "ПередЗаписью()"

2) Там создаете объект обработки.

3) У этого объекта вызываете единственную функцию YandexSpeller(), в которую можете передать кучу параметров (ну или только текст на проверку первым параметром, только он обязательный), конфигуратор подскажет параметры.

4) Функция вернет структуру с ошибками и всевозможными данными, естественно включая исправленный текст.

 
На сервере (упрощенный вызов)
 
На сервере (возвращает исправленный текст и ошибки)

 

Листинг модуля объекта

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

 
YandexSpeller()

Ответы на вопросы

  • Q: Подскажите как сделать полосу прокрутки в поле HTML?
  • A: В модуле формы, в процедуре "СобратьHTML()" сотрите "overflow: hidden;"

 

  • Q: Почему при вызове формы пропадают кнопки "Принять" и "Отмена"
  • A: При создании формы обработки ПроверкиОрфографии из другой формы - не забывайте передавать параметром владельца "ЭтаФорма"

     

  • Q:  У меня очень длинные строчки с текстом, как настроить их авто перенос?
  • A: В модуле формы, в процедуре "СобратьHTML()" добавьте в блок <style></style> вариации следующего (можете посмотреть в гугле за что отвечает каждая строка).
pre {
	white-space: pre-line;
	word-wrap: break-word;
	word-break: break-all;
	width: 100%;
}

 

UPD 17.11.10

  • Изменил разбор XML ответа
  • Внешний вид формы
  • Добавил проверку на битую кодировку
  • Содержание HTML поля теперь IE=11
  • При смене значения JS скрипт перекрашивает Select в зависимости от Option
  • Поправил ошибку возникающую при использовании словаря и отсутсвии орфографических ошибок

 

UPD 18.04.23

  • Добавил возможность проверять и исправлять Наименования любых справочников. Может быть полезно, если у Вас не очень грамотные менеджеры и надо "починить" постфактум.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TODO:

  • При проверке справочника запоминать исправленные слова и проверять из этого соответсвия до проверки яндексом
  • Использовать асинхронную проверку
  • Отображать статус проверки
  • Добавить описание в модуль объекта для типовых конфигураций
  • Возможность проверять не только Наименование справочника, но и любой другой строковый реквизит

 

 Буду рад отзывам, комментариям, а также звездочкам :3 

 

 

Обработка правописание орфография управляемые формы yandex yandex speller http get html dom парсинг

См. также

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ 3. Отчеты по данным загруженным в регистры сведений. 4. В версии "с функцией автозагрузки данных" предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

600 руб.

25.05.2021    11784    9    4    

8

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Данная обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.

6000 руб.

02.02.2021    14497    34    43    

19

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    85275    142    211    

297

Прайс-лист с фотографиями, выгрузкой в Excel с подсчетом суммы заказа, загрузкой заказа в Управление торговлей 11 (Россия) и Управление торговлей для Беларуси 3

Прайсы Загрузка и выгрузка в Excel Оптовая торговля WEB-интеграция Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Прайс-лист для программы 1С: Управление торговлей 11 и Управление торговлей для Беларуси 3, позволяющий: 1) Формировать прайс-лист с фотографиями; 2) Сохранить прайс-лист в Excel с формулами, подсчитывающими количество и сумму заказа; 3) Передать сформированный прайс-лист по каналу ftp на сайт; 4) Сохранить прайс-лист в формате CSV; 5) Загрузить сделанный по прайс-листу заказ обратно в программу.

6000 руб.

04.09.2014    120922    44    105    

53

Sync1C: Синхронизация 1С и OpenCart

WEB-интеграция Оптовая торговля Розничная торговля Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

3840 руб.

30.03.2018    41938    78    133    

82

Merlion Commander Версия 1.3.9.2 - июль 2022 г. (Интеграция с 1С: УT, редакция 11.4, 1С:Розница 2.3,1С:ERP Управление предприятием 2, УТ 10.3, редакция веб-сервиса MERLION API 3.0 от 18.08.2021)

Оптовая торговля Розничная торговля WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Расширении конфигурации "Управление торговлей, редакция 11" для работы с веб-сервисом Мерлион с помощью Merlion API. Расширение и набор подключаемых дополнительных обработок позволяет без изменения конфигурации получить возможность работы с API крупнейшего российского дистрибьютора http://merlion.com. Логика работы максимально приближена к работе веб-сервиса b2b. Вы сможете создать и исправить заказ, зарезервировать товар прямо из 1С, посмотреть актуальные остатки и цены, импортировать штрихкода EAN13 товаров, загружать заказ c автоматическим созданием номенклатуры в 1С и корректности создания. Можно выбирать характеристики по товарным группам и загружать товар с выбранными характеристиками, загружать изображения товара. Не требуется установки дополнительного ПО для работы с веб-сервисом. Кроссплатформенное решение для ОС Windows и Linux. Весь код модулей открыт и доступен для просмотра и внесения изменений.

8280 руб.

02.05.2017    37415    40    45    

47
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. spec8s 800 09.11.17 23:00 Сейчас в теме
Совсем недавно делал нечто подобное, т. к. веб-сервис перестал работать. Только метод чтения XML возможно немного короче:

        ЧтениеXML = Новый ЧтениеXML();	
	ЧтениеXML.УстановитьСтроку(HttpОтвет.ПолучитьТелоКакСтроку());
	
	ПостроительDOM = Новый ПостроительDOM;
	ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
	
	РезультатПроверки = Новый Структура("error", Новый Массив);
	
	ЭлементыError = ДокументDOM.ПолучитьЭлементыПоИмени("Error");	
	Для Каждого ЭлементError Из ЭлементыError Цикл
		СтруктураОшибок = Новый Структура("s", Новый Массив);
		Для Каждого АтрибутError Из ЭлементError.Атрибуты Цикл
			СтруктураОшибок.Вставить(АтрибутError.Имя, Число(АтрибутError.Значение));
		КонецЦикла;
		
		ЭлементыWord = ЭлементError.ПолучитьЭлементыПоИмени("word");
		СтруктураОшибок.Вставить("word", ЭлементыWord[0].ТекстовоеСодержимое);
		
		ЭлементыS = ЭлементError.ПолучитьЭлементыПоИмени("s");
		Для Каждого ЭлементS Из ЭлементыS Цикл
			СтруктураОшибок.s.Добавить(ЭлементS.ТекстовоеСодержимое);
		КонецЦикла;
		
		Если СтруктураОшибок.s.Количество() > 0 Тогда
			РезультатПроверки.error.Добавить(СтруктураОшибок);
		КонецЕсли;
	КонецЦикла;
Показать
adhocprog; 🅵🅾️🆇; +2 Ответить
2. 🅵🅾️🆇 518 09.11.17 23:24 Сейчас в теме
(1) завтра подробнее посмотрю, идея была сделать покрасивее, разобрав XML через DOM, но немног не сдюжил)

Код вышел бы примерно той же длины, отличие в том, что данные в массив Я засовываю под русифицированными читабельными переменными, хотя этот момент можно было решить и изящнее, на вскидку записать в строку с разделителями "Атрибут:РускийСиноним:ОжидаемыйТипДанных; ... : ... : ... ; ...".
Привычка, если работаю с 1с - переменные должны быть русскими и PascalCase (исключение для массивов и некоторых данных, там могу поставить префикс), а вот в JS, Python, C++ и тд уже ожидаю увидеть латинские camelCase.

Но спасибо за поправку, скорее всего переделаю эту часть.
30. пользователь 25.04.18 08:28
Сообщение было скрыто модератором.
...
34. пользователь 26.04.18 04:01
Сообщение было скрыто модератором.
...
41. пользователь 28.04.18 05:27
Сообщение было скрыто модератором.
...
3. nasonkin 41 10.11.17 06:29 Сейчас в теме
Самый простейший вариант - отображение слов с ошибками, делал через SOAP. Вдруг кому пригодиться:
WSОпределение	= Новый WSОпределения("http://speller.yandex.net/services/spellservice?WSDL","","",,10);      
WSПрокси		= Новый WSПрокси(WSОпределение,"http://speller.yandex.net/services/spellservice","SpellService","SpellServiceSoap",,10);		
Пакет 			= WSПрокси.ФабрикаXDTO.Создать(WSПрокси.ФабрикаXDTO.Тип("http://speller.yandex.net/services/spellservice","CheckTextRequest"));  	
Пакет.options   = 55;
Пакет.format	= "plain";
Пакет.lang		= "ru";
Пакет.text		= Текст;
РезультатВебОперации = WSПрокси.checkTexts(Пакет); 
Для каждого ГрамОшибка из РезультатВебОперации.ArrayOfSpellResult.SpellResult[0].error Цикл
	СловаСОшибками = Строка(СловаСОшибками)+"'"+Строка(ГрамОшибка.word)+"', "
КонецЦикла
Возврат Лев(СловаСОшибками,СтрДлина(СловаСОшибками)-2)
Показать

Но на данный момент SOAP недоступен (хотя в документации ссылка на него есть). Написал в тех. поддержку, жду ответ.
adhocprog; awk; spec8s; +3 Ответить
4. 🅵🅾️🆇 518 10.11.17 09:07 Сейчас в теме
(3) Я тоже через него делал изначально. Вчера был доступен "checkText", но с ограничением: передавать параметром надо было только текст.
Есть очень весомое подозрение, что это не сервис у них лежит, а ограничения платформы 1с. Ведь XDTO пакеты это фишка самой 1с.

Вот так работает:
Определения	= Новый WSОпределения("http://speller.yandex.net/services/spellservice?WSDL",,,Неопределено,300);	
Прокси		= Новый WSПрокси(Определения, "http://speller.yandex.net/services/spellservice", 
									"SpellService", "SpellServiceSoap", Неопределено, 300);
Данные		= Прокси.checkText(Текст);


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

Вполне достаточно:
URL				= СтрШаблон("services/spellservice/checkText?text=%1&lang=%2&options=%3&format=%4", Текст, Язык, Опции, Формат);
HTTPСоединение	= Новый HTTPСоединение("speller.yandex.net", 80, , , , 300);
HTTPЗапрос		= Новый HTTPЗапрос(URL);		
HTTPОтвет		= HTTPСоединение.Получить(HTTPЗапрос);
5. guy_septimiy 10.11.17 09:09 Сейчас в теме
Интересное решение.
Респект.
37. пользователь 27.04.18 03:55
Сообщение было скрыто модератором.
...
6. &rew 47 13.11.17 11:56 Сейчас в теме
У меня одного было ощущение, когда я на звезду нажал, как будто "зигу" кинул?
maksa2005; Perfolenta; hrip; awk; Silenser; PVG_73; Yakud3a; Vladimir87; Serega-artem; Gobbledegook; nayd; bserge88; Кузьмич; RailMen; 🅵🅾️🆇; +15 Ответить
7. 🅵🅾️🆇 518 13.11.17 12:01 Сейчас в теме
(6) Полно вам, думаю эмблемка Grammar Nazi никого не оскорбит тк узнаваема и к томуже вполне уместна)
9. RailMen 822 13.11.17 12:12 Сейчас в теме
(6) у меня тоже!
8. zhuravlev_as 372 13.11.17 12:04 Сейчас в теме
А api нет у этого Yandex Speller?
10. 🅵🅾️🆇 518 13.11.17 12:17 Сейчас в теме
(8) Не совсем понял вопрос.
Обработка и использует API Яндекса, дружит с ним через HTTP GET (в коде есть закоменченный кусочек для общения через веб сервисы, но там не выйдет вместе с текстом передавать параметры).

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

Я, наверное, слишком сложно и муторно объясняю, лучше посмотрите примеры использования в теме, там все намного проще и лаконичнее.
13. zhuravlev_as 372 13.11.17 13:39 Сейчас в теме
(10) Спасибо за ответ
11. KroVladS 33 13.11.17 12:35 Сейчас в теме
Плагин для конфигуратора сделаете?
12. 🅵🅾️🆇 518 13.11.17 13:19 Сейчас в теме
(11) Плагин?
На стандартный конфигуратор, вроде, "вешаются" только шаблоны текста и инжект dll экзотики на вроде "снегопат".
Также есть "графит", но о нем ни слуху ни духу уже несколько лет. Может Я чего проспал?)

Или вы о "расширения конфигурации", штуке которая ставиться поверх типовых не снимая с поддержки?
Если о ней, то Я плохо представляю, что такого особенного Я могу сделать, кроме как добавить саму обработку.

Если кому не достаточно примеров вызовов из темы - могу добавить тестовую конфигурацию.
Яб и тестовый сервер поднял бы, но отдельную железку, которая не былаб дырой в безопасности соберать буду только через пару месяцев.
25. KroVladS 33 14.11.17 13:55 Сейчас в теме
(12)
Я как раз dll-ку имел ввиду.
26. 🅵🅾️🆇 518 14.11.17 14:00 Сейчас в теме
(25) Сильно врядли. Следующий раз как буду плюсы открывать - это будет внешняя компонента для распознования текста :3
14. Поручик 4652 13.11.17 16:16 Сейчас в теме
На вскидку должна запуститься на чем угодно, начиная с 8.3.6.1977 с отключенным режимом совместимости
15. 🅵🅾️🆇 518 13.11.17 16:18 Сейчас в теме
(14)
с отключенным режимом совместимости

Если это так важно, добавлю)
16. Поручик 4652 13.11.17 16:24 Сейчас в теме
(15) Конечно важно. Полно конф, которые работают на 8.3.7.ХХХХ и выше, но внутри у них 8.3.5 или даже 8.2.
17. 🅵🅾️🆇 518 13.11.17 16:29 Сейчас в теме
(16) Я думал это очивидно, но пусть будет.
Да и не велика проблема, вполне можно переписать эти моменты при помощи строковых функций из БСП.
18. Davurov 14.11.17 08:43 Сейчас в теме
Спасибо большое! Очень классная штука! Не подскажите как сделать полосу прокрутки в поле HTML? Когда длинное предложение неудобно с ним работать так как строчки не переносятся сами и нет полосы прокрутки
19. 🅵🅾️🆇 518 14.11.17 10:07 Сейчас в теме
(18) А, извиняюсь. Делал под себя и не ожидал полосы прокрутки, поэтому для красоты специально спрятал. В модуле формы, в процедуре "СобратьHTML()" сотрите "overflow: hidden;".

Если у вас выходит в ширину слишком длинной строка, то советую посмотреть на следующие стили CSS (также добавлять в СобратьHTML() в <st yle></style> блок):
pre {
	white-space: pre-line;
	word-wrap: break-word;
	word-break: break-all;
	width: 100%;
}



Сейчас создам в темке блок с QA и добавлю туда ответы на вопросы.
Удачи)
20. Davurov 14.11.17 10:34 Сейчас в теме
(19)
overflow


Ооо! спасибо заработало ) И ещё вопрос, если используется ОбработкаОповещения "ПослеПроверкиОрфографии", то для случая когда нет ошибок и стоит "ЗакрытьЕслиБезОшибок", после закрытия формы в эту процедуру не попадает, поэтому не могу вывести сообщение пользователю: "Все ок. ошибок нет =)"

Форма закрывается с этой ветки:

Если БезОшибок И ЗакрытьЕслиБезОшибок Тогда
		ЭтаФорма.Закрыть(Новый Структура("Текст,БезОшибок,КоличествоОшибок",Текст,БезОшибок,КоличествоОшибок));
		Возврат;
	КонецЕсли; // Если БезОшибок И ЗакрытьЕслиБезОшибок
21. 🅵🅾️🆇 518 14.11.17 10:58 Сейчас в теме
(20) На примере примера из темы для немодального вызова:
&НаКлиенте
Процедура ПроверитьОрфографию(Команда)
	//СтрокаНаПроверку	= "Мамо мыла раму.";
	Оповещение			= Новый ОписаниеОповещения("ПослеПроверкиОрфографии", ЭтаФорма, СтрокаНаПроверку); 
	П					= Новый Структура("Текст,Язык,Формат,МинДлинаСлова,Словарь,Опции,ЗакрытьЕслиБезОшибок",
											СтрокаНаПроверку, "ru,en", "plain", 0, "", 31, Истина);
	Форма	= ОткрытьФорму("Обработка.ПроверкаОрфографии.Форма", П, ЭтаФорма, Истина, , , Оповещение);
	Если Форма = Неопределено Тогда
		Сообщение	= Новый СообщениеПользователю;
		Сообщение.Текст	= "Форма не была создана, вероятно ошибок нету.";
		Сообщение.Сообщить();
	КонецЕсли; // Если Форма = Неопределено
КонецПроцедуры // ПроверитьОрфографию()
Показать


Ну или если не возражаете против модальных окон ( лично мое руководство их очень любит :3 ), то там все еще проще, просто смотрите, что возвращает:
Результат	= ОткрытьФормуМодально("Обработка.ПроверкаОрфографии.Форма", Новый Структура("Текст", СтрокаНаПроверку), ЭтаФорма);
22. Davurov 14.11.17 11:00 Сейчас в теме
Ок спасибо большое! очень выручили!

P.S у меня все равно приходит форма, поэтому добавил условие

Если Форма = Неопределено ИЛИ Форма.БезОшибок Тогда
        Сообщение    = Новый СообщениеПользователю;
        Сообщение.Текст    = "Ошибок нет!";
        Сообщение.Сообщить();
    КонецЕсли; // Если Форма = Неопределено
23. Davurov 14.11.17 11:09 Сейчас в теме
Не не не, спасибо =) никаких модальностей =)
24. ra1ich 17 14.11.17 13:08 Сейчас в теме
Прикольно, для нас будет актуально.
🅵🅾️🆇; +1 Ответить
27. azubar 43 07.12.17 00:51 Сейчас в теме
У меня не работает. либо вообще яндекс возвращает результат без ошибок либо только первую ошибку, в то время как просто в браузере выдает все ошибки, видео:
https://www.screencast.com/t/Ym9LeUQokNWy

Если слать текст на проверку яндексу POSтом то нормально работает.
И перекодировку текста лучше делать:
ТекстНаПроверку	= КодироватьСтроку(Текст, СпособКодированияСтроки.КодировкаURL);
🅵🅾️🆇; +1 Ответить
28. 🅵🅾️🆇 518 07.12.17 10:22 Сейчас в теме
(27) Все работает со строкой:
ашибка			арфаграфия	праверить	ашибки



Обработка внедрена на производстве в несколько документов перед записью.


С КодироватьСтроку() полностью согласен, добавлю в следующую версию.
Проблема действительно может иметь место быть, тк GET запрос передает параметры через URL, возможно нечто в тексте "портит" его.
29. Артано 744 24.04.18 10:45 Сейчас в теме
Производиться десять попыток достучаться до сервиса, прежде чем будет выведено сообщение о невозможности использования (сервис лег, ну или что вероятнее - ваш интернет).
Хотел пошутить про применение обработки к тексту публикации, но вспомнил, что здесь нужен семантический, а не синтаксический анализ.

Остальное порадовало, спасибо!
🅵🅾️🆇; sutkin; +2 Ответить
33. 🅵🅾️🆇 518 25.04.18 11:23 Сейчас в теме
(29) Поправьте, а Я обязательно поправлю в публикации.
Возможно у меня есть в наличии некоторое косноязычие.

Спасибо, рад теплым отзывам.
35. Артано 744 26.04.18 07:51 Сейчас в теме
(33) Ошибка из расстрельного списка грамматических нацистов (их символ в картинке публикации). написание тся и ться. Я думал после древнего апдейта вконтакте, когда разделили лайк на собственно лайк и на репост (мне нравиТся и поделиТЬся).
31. vgrichuk 25.04.18 08:53 Сейчас в теме
Оффтопик. Коллеги, меня одного покоробила эмблема граммар-наци, использованная в описании обработки?
madonov; 🅵🅾️🆇; pr0t; CyberBob; +4 Ответить
32. 🅵🅾️🆇 518 25.04.18 11:20 Сейчас в теме
(31)
=:'(^ . ^,)':=
36. BorovikSV 1034 26.04.18 11:03 Сейчас в теме
а почему логотип стилизован под фашистский флаг?
Perfolenta; +1 Ответить
38. madonov 169 27.04.18 08:41 Сейчас в теме
(36) это логотип движения "Граммар-наци".
Обычно символизирует нетерпимость к грамматическим ошибкам и их авторам.

Весьма спорный выбор со стороны автора, учитывая, что прецеденты в виде штрафов за его публикацию в нашей стране уже были.
Perfolenta; +1 Ответить
39. 🅵🅾️🆇 518 27.04.18 13:10 Сейчас в теме
(38) Такого не знал.
Просто показалось, что будет довольно уместным и привлекающим внимание...
40. madonov 169 28.04.18 03:16 Сейчас в теме
(39) Ну внимание однозначно привлекает =)))
42. Perfolenta 203 08.11.18 18:58 Сейчас в теме
(39) уберите его, пожалуйста, не надо провоцировать людей... привлекать внимание можно и не использую фашистскую символику...
user1041486; vatkir; +2 1 Ответить
43. Bolnov 27.12.19 14:22 Сейчас в теме
Как слово в тексте красным подчеркнуть наподобие ворда или браузера?
44. 🅵🅾️🆇 518 30.12.19 21:30 Сейчас в теме
(43) так это и есть html документ, прям так и подчеркивайте, а css доводите до ума)
45. user1041486 27.08.20 03:57 Сейчас в теме
Как вы сделали выпадающее меню,для выбора предложенных вариантов исправления?
Оставьте свое сообщение