Ошибки в словах
У меня есть два справочника, которые на «рабочий стол» не вынесены, а находятся только в творческом бардаке в левой части экрана:
Проблема в том, что 1С знает много слов, но вот слова «азитромицин» он не знает, и его форм тоже. Потому при поиске не будут найдены строки со словом «азитромицинА». В справочнике форм слов у меня сейчас только одна запись:
В справочнике синонимов три записи:
Насморк был введён при тестировании, а все остальное досадно ненайденное простым поиском синонимов.
Напомню, что поиск слова – просто «слово», а поиск синонимов «!слово».
Теоретически это всё можно добавлять к конфигурации, практически оно, похоже, продекларировано, но не работает.
Теоретически в конфигурацию (т.е в программу) можно добавить такой макет:
<?xml version="1.0"?>
<Dictionary>
<Words>
<lemma>азитромицин</lemma><forms>азитромицина азитромицине азитромицином</forms>
</Words>
<Synonyms>
<item>насморк ринит</item>
</Synonyms>
</Dictionary> :
… и подключить его дополнительным словарём полнотекстового поиска. Практически наличие этого макета молча игнорируется.
В конце концов, не очень-то и хотелось. Ту же информацию можно подключить к данным, что и сделано. У этого варианта тоже есть свои плюсы. Работает это правда чуть иначе.
В «Поиске везде» и «Поиске в характеристике» у меня во «Всех действиях» спрятана кнопка «Добавить синонимы»:
У меня было написано «!насморк» т.е «хочу синонимы», вот он и добавил синонимы, засунув в скобки (используемые в полнотекстовом поиске) все возможные варианты.
Если восклицательного знака не будет (т.е я хочу формы слова) то «азитромицин» будет заменён на все его формы:
«( азитромицин ИЛИ азитромицина ИЛИ азитромицине ИЛИ азитромицином )»
… и соответственно найдутся все строки где есть что-либо.
Кнопка «спрятана» во-первых потому что нужна она редко, во-вторых, потому что если она на экране в неё не глядя тыкаешь потому что примерно там должна быть кнопка поиска. Очередное подтверждение того, что надписи на экранах обычно никто не читает.
Тут нет ещё одного варианта замены – ошибок. Какой-нибудь «стафилококк» можно написать и как «стафилокок» и как «стОфилококк». Кто его там знает, как он пишется? Вообще-то можно засунуть это в синонимы. На неаккуратно и некорректно. Во-первых, это не синоним. Во-вторых, всё-таки поиск сложных выражений почти наверняка работает медленнее чем поиск простых. Зачем загружать машину ненужной работой?
Значит надо завести ещё пару справочников «Слова» (со списком слов) и «Ошибки в словах (с соответствием слов и возможных вариантов ошибок). Не очень понятно как это заполнять. Видимо придётся вручную, не весь же алфавит вариантов туда перегонять.
В сложном поиске планировалось везде по два кнопки:
Первая – исправить ошибки, вторая – добавить формы и синонимы как описано выше. Исправление ошибок это последовательный поиск всех написанных слов (разделитель – пробел) в том самом справочнике ошибок и замена если что-то в том справочнике найдено. Могу сейчас это всё прицепить.
На самом деле тут ещё кое-что надо, что я сейчас точно делать не буду. Не вручную же каждому вводить все этих варианты ошибок. Типового механизма как в случае сравнения конфигураций тут нет но «заплаты» к данным тоже периодически нужны. Например всякие классификаторы ОКПО и прочего одинаковые для всей страны периодически подгружаются к уже работающим базам. Короче тут надо сделать какую-то загрузку и выгрузку всех этих ошибок-форм-синонимов через какой-нибудь Excel-евский файл что ли, чтобы иметь возможность подгружать списком то, чего ещё нет в базе. Тут тоже всё примитивно. Считывается этот Excel, строка за строкой и ищется в базе. Если такого ещё нет – добавляется. Но это можно позже сделать.
p/s
В базе по странам и регионам и в погодной базе:
http://akostina76.ucoz.ru/publ/5-1-0-8
… вообще все данные засасываются из Excel-евских файлов Всемирного банка, Госкомстата и rp5.ru. Там даже подробные справки написаны про то, как это делать:
… так что это вполне обычный вариант работы с информацией. Другое дело, что это тоже писать надо.
|