YandexSpeller

11.01.14

Разработка - Разработка внешних компонент

Есть разные люди, грамотные и безграмотные. Есть безграмотные по разным причинам: от склада ума от собственной лени и т.д.
Мне вот, например, в школе на 5 давались все естественные науки, а вот по русскому, немецкому и английскому было 2. Такая же история потом была в универе, а потом и в аспирантуре. Ну и вот, имея 2 высших образования (физик и программист), я все тот же двоечник. А так как работаю на ПК, это все усугубляется в разы. Вот, собственно, в голове и возникла идея написания данного приложения.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Инсталлятор
.zip 1,10Mb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Данное приложение делает http запрос на http://api.yandex.ru/speller/ и пытается проверить ошибки в тексте.

Да, я видел в интернете компоненту, написанную на скриптах под платформу 8.1.  но она достаточно специфична, мне хотелось написать что-нибудь попроще. 

 

Данное приложение возможно запускать из командной строки с текстом, который необходимо проверить.

Пример строки из 1с 8 

Процедура ПроверкаОрфографии(СтрокаД)
Путьspeller = КаталогВременныхФайлов() + "YandexSpeller.V2.exe";
ФайлПроверка = Новый Файл(Путьspeller);
Если НЕ ФайлПроверка.Существует() Тогда
ФайлДвоичныеДанные = ПолучитьОбщийМакет("speller");
ФайлДвоичныеДанные.Записать(Путьspeller);
КонецЕсли;

команда = Путьspeller + " " + СокрЛП(СтрокаД);
ЗапуститьПриложение(команда,,Истина);
КонецПроцедуры

&НаКлиенте
Процедура ABC(Команда)
Если ЗначениеЗаполнено(Объект[ЭтаФорма.ТекущийЭлемент.Имя]) Тогда
ПроверкаОрфографии(СокрЛП(Строка(Объект[ЭтаФорма.ТекущийЭлемент.Имя])));
КонецЕсли;
КонецПроцедуры

 

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

Проверка орфографии

См. также

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3000 руб.

12.05.2020    29402    140    100    

92

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    37380    116    128    

117

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    78032    73    280    

191

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47883    125    66    

68

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2948    bayselonarrend    14    

50

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    5794    kovalevdmv    26    

78

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

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

2400 руб.

25.06.2024    1402    3    4    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. seermak 665 11.01.14 12:44 Сейчас в теме
Зачем же делать компоненту - есть же "разработчикам — встроить функцию проверки правописания в свое приложение с помощью API Яндекс.Спеллера (JavaScript или HTTP)" = http://api.yandex.ru/speller/doc/dg/concepts/api-overview.xml = и делай спокойно через WebСервис (кстати получится неплохой пример использования Веб сервиса в 1С))))))
5. DitriX 2104 12.01.14 13:43 Сейчас в теме
(1) вы наверное ошиблись - веб сервисы - это СЕРВЕР :)
А Вам нужен клиент, т.е. веб ссылки. А при работе с веб сервисом яндекса - я понял, что с 1С он нифига нормально работать не хочет.

А вот хттп запросы - это другое дело:)

Кроме того - почему я обратил внимание на это все - так как нам нужны веб ссылки, то значит, что их можно сделать программно,примеры есть в моей статье по веб сервисам. Т.е. не надо в конфигуратор лазить.
2. micha-r 45 11.01.14 14:04 Сейчас в теме
Так если рассуждать, вообще тогда делать не чего не надо, все уже есть в готовом виде и все уже придумано до нас. В массе своей процентов 80% пользователей вообще не программисты, они просто берут или готовое на этом сайте или че нить типовое юзают. Я столкнулся с тем что этим пользователям не очень просто встроить JavaScript в 1с или куда нить еще. Вот собственно для них и рассчитано данные приложения. Наверное гораздо проще будет в любой 1с запустить команду ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>) и получить какой то результат, не извращаясь с написанием скриптов и т.д.
Конечно было бы не плохо чтоб данный инструмент вернул что то в 1с, я вот с этим разбираюсь.
3. seermak 665 11.01.14 15:31 Сейчас в теме
(2) Вы непоняли = сайт http://api.yandex.ru/speller/ предоставляет свой веб-сервис по адресу http://api.yandex.ru/speller/doc/dg/concepts/api-overview.xml = далее работа исключительно средствами 1С (Конфигуратор=Общие=Web-Сервисы)
4. micha-r 45 11.01.14 15:52 Сейчас в теме
Да есть такое, но как это прописать "пользователю"?
1) Нужно добавить Конфигуратор=Общие=Web-Сервисы=YandexSpeller
2) Прописать запрос, обработать результат. В 1с не я вот так вот не на шел как по нормальному отработать гипертекст.
3) Совместить все это с текущим интерфейсом.

И я хочу сказать очень много народу из программистов 1с которые вообще не знают что такое Конфигуратор=Общие=Web-Сервисы и как с этим жить. Спасибо конечно за подсказку я сам не знал, попробую сейчас реализовать.

Не знаю может Вы меня не понимаете, я считаю что программисту в первую очередь нужно делать инструмент, который поможет уменьшить телодвижение другому "программисту".
6. WizaXxX 363 13.01.14 06:30 Сейчас в теме
Вот пожалуйста, тут подробное использование некоторых возможностей
http://infostart.ru/public/203603/
7. micha-r 45 13.01.14 09:34 Сейчас в теме
Спасибо!
Но Сможете ли Вы подчеркнуть ошибку определенным цветом? Сможете ли вы вывести подсказку с выбором нужного варианта в гипертексте? Я думаю 1с нормально это не позволяет. Разве что поля делать вида hml документ и на чистом hml кодить.
8. seermak 665 13.01.14 09:47 Сейчас в теме
Вот набросал
1. делаем новую Web-ссылку (см рис) вносим в источник http://speller.yandex.net/services/spellservice?WSDL
2. делаем кнопку проверки и процедуру к ней
&НаКлиенте
Процедура ПравописаниеWebСервис(Команда)
ФС = Эпикриз.ПолучитьТекст();
Если НЕ ЗначениеЗаполнено(ФС)Тогда
Возврат;
КонецЕсли;
Массив = ПравописаниеWebСервис_Сервер(ФС);
//далее делайте с массивом все что угодно
//Массив[0].ОшибочноеСлово //слово с ошибкой
//Массив[0].Ошибка // текстовое значение ошибки
//Массив[0].Замена // массив предлагаемых замен
КонецПроцедуры
3. делаем процедуру получения данных
&НаСервере
Функция ПравописаниеWebСервис_Сервер(ФС)
Массив = Новый Массив;
Прокси = WSСсылки.WSСсылкаПроверкиПравописания.СоздатьWSПрокси("http://speller.yandex.net/services/spellservice", "SpellService", "SpellServiceSoap");
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://speller.yandex.net/services/spellservice").Получить("CheckTextRequest");
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
WSПараметр.text = ФС; //неиспользуемые параметры//WSПараметр.lang = "ru";//WSПараметр.options = 16;//WSПараметр.format = "html";
РезультатПроверки = Прокси.checkText(WSПараметр.text);
Индекс = 0;
Для каждого СтрокаОшибки Из РезультатПроверки.error Цикл
Структура = Новый Структура;
МассивОб = Новый Массив;
Если СтрокаОшибки.code = 1 Тогда //код ошибки
Структура.Вставить("Ошибка","Слова нет в словаре");
ИначеЕсли СтрокаОшибки.code = 2 Тогда
Структура.Вставить("Ошибка","Повтор слова");
ИначеЕсли СтрокаОшибки.code = 3 Тогда
Структура.Вставить("Ошибка","Неверное употребление прописных и строчных букв");
ИначеЕсли СтрокаОшибки.code = 4 Тогда
Структура.Вставить("Ошибка","Текст содержит слишком много ошибок");
КонецЕсли;
Структура.Вставить("ОшибочноеСлово",СтрокаОшибки.word);
МассивОб.Очистить();
Для каждого ВариантЗамены Из СтрокаОшибки.s Цикл //список предлагаемых замен
МассивОб.Добавить(ВариантЗамены);
КонецЦикла;
Структура.Вставить("Замена", МассивОб);
Массив.Вставить(Индекс,Структура);
Индекс = Индекс + 1;
Структура = Неопределено;
МассивОб = Неопределено;
КонецЦикла;
Возврат Массив;

//СтрокаОшибки.col = //начало слова с ошибкой от начала строки
//СтрокаОшибки.len = //длина слова
//СтрокаОшибки.pos = //?
//СтрокаОшибки.row = //индекс строки с ошибкой
КонецФункции
X
и все.....
(7) чтобы подчеркнуть ошибку - Новый ФорматированнаяСтрока(<Содержимое>, <Шрифт>, <ЦветТекста>, <ЦветФона>, <Ссылка>) ;
Прикрепленные файлы:
Trucker; MRAK; DitriX; +3 Ответить
9. zhuravlev_as 482 17.01.14 01:11 Сейчас в теме
Отличная доработка, включу в свою базу по учету работ +
Оставьте свое сообщение