В качестве примера прилагается внешняя обработка для платформы 1С 8.3 (управляемая форма). В обработке показан пример подключения внешней компоненты и работы с энциклопедией Луркоморье, оно же Lurkmore — русскоязычная энциклопедия фольклора и субкультур.
Формат словаря открыт, и, в частности в рамках проекта XDXF, разработаны конвертеры из многих распространённых форматов. При его разработке много внимания уделялось уменьшению времени загрузки и увеличению быстродействия словаря, хотя сегодня возможности не только настольных, но и мобильных устройств уже не требуют подобных усилий. Всё вышеперечисленное сказалось на сложности поддержки формата. Однако, за счёт того, что данный формат являлся первым появившимся свободным форматом, он приобрёл большую популярность. Высокое быстродействие, малое время загрузки, поиск в сжатых файлах позволяет оперировать внушительными объемами данных. Так, например, вся русская Википедия без картинок занимет на диске всего 2,5 Гб.
К внешней компоненте прилагается также внешняя обработка для платформы 1С 8.3 (управляемая форма). В обработке показан пример подключения внешней компоненты и работы с энциклопедией Луркоморье, оно же Lurkmore — русскоязычная энциклопедия фольклора и субкультур. Служит справочником по понятиям и терминологии русской культурной жизни во всех ее проявлениях.
Несколько ключевых фрагментов кода :
Подключение и создание объекта компоненты на клиенте:
&НаКлиенте Процедура ЗагрузитьВК() ПутьВК = ТекКат + "bin"; ИмяФайлаВК = "DictDZ.dll"; ПолнИмяКомпоненты = "AddIn.Компонента.AddInNativeDictDZ"; Если ПодключитьВнешнююКомпоненту( ПутьВК + ИмяФайлаВК , "Компонента", ТипВнешнейКомпоненты.Native ) Тогда Попытка Компонента = Новый ( ПолнИмяКомпоненты ); Исключение Сообщить ( "Не могу создать объект """ + ПолнИмяКомпоненты + """ из компоненты" ); Сообщить ( ОписаниеОшибки() ); Возврат; КонецПопытки; Иначе Сообщить ( "Не могу подключить ВК. " + ПутьВК + ИмяФайлаВК ); КонецЕсли; КонецПроцедуры
Загрузка словаря или энциклопедии:
&НаКлиенте Процедура ЗагрузитьСловарь() ПутьКСловарю = ТекКат + "data"; ПолнИмяФайла_ifo = ПутьКСловарю + ИмяФайла_ifo; ПолнИмяФайла_idx = ПутьКСловарю + ИмяФайла_idx; ПолнИмяФайла_dict = ПутьКСловарю + ИмяФайла_dict; Если НЕ Компонента = Неопределено Тогда Попытка // DictDZ.LoadDict ( fn1, fn2, fn3 ) Компонента.ЗагрузитьСловарь( ПолнИмяФайла_ifo, ПолнИмяФайла_idx, ПолнИмяФайла_dict ); Исключение Сообщить(ОписаниеОшибки()); Компонента = Неопределено; Возврат; КонецПопытки; НазваниеСловаря = Компонента.Название; КолСлов = Компонента.ОбъемСловаря; ЭтаФорма.Заголовок = НазваниеСловаря + ". Доступно " + КолСлов + " слов."; Иначе Сообщить ( "Компонента не подключена" ); КонецЕсли; КонецПроцедуры
Поиск в словаре:
Попытка // DictDZ.FindValue ( word ) Нашли = Компонента.НайтиЗначение(СловоДляПоиска); Исключение Сообщить(ОписаниеОшибки()); Компонента = Неопределено; Возврат; КонецПопытки; // DictDZ.DictData текст_ = Компонента.СловарноеЗначение;
Дополнительные свойства:
Bookname / Название — Наименование словаря, как оно задано в информационном файле
WordCount / ОбъемСловаря — Количество доступных слов в файле индекса
План развития компоненты:
- Возможность работы одновременно с несколькими словарями
- Поиск по звучанию слова ( метафон – английский, русский, транслитный )
- Стеммер Портера для английского и русских языков
- Русская морфология на базе технологий АОТ
Лицензии:
- ZLIB: http://www.zlib.net/zlib_license.html
- Луркоморье: http://creativecommons.org/licenses/by/3.0/deed.ru
Ссылки по теме:
- Wiki:StarDict
- Консольный словарь sdcv
- Частотный анализатор английских слов, написаный на python 3, умеющий нормализовывать слова с помощью WordNet и переводить с помощью StarDict
- Учим язык, смотря сериалы: vlc + lua + stardict + wordnet + anki = l’amour
- Stardict -dictionaries (список готовых словарей)
- Спросить Гугл о словарях StarDict
Что находится в архиве ( DictDZ.zip ) :
- DictDZ.dll – файл нативной внешней компоненты
- ExampleLurkmore.epf – файл внешней обработки (управляемая форма) для платформы 1С 8.3
- Каталог data с энциклопедией Луркоморье.
План развития компоненты:
метафон – английский, русский, транслитный )
Стеммер Портера для английского и русских языков
АОТ
• Возможность работы одновременно с несколькими словарями ( до 512 количеством )
• Поиск по звучанию слова (
•
• Русская морфология на базе технологий
Что еще из функциональности следует добавить? Надеюсь, что найдутся программисты, готовые использовать представленную внешнюю компоненту в своих разработках на платформе 1С.
Насчет паралимпиады — тонко подмечено 😉
Доброе утро!
А почему бы вам не добавить в обработку морфологический анализатор (в коде 1с)?
С уважением