Получить из дательного падежа все остальные
Итак, имеем слово в любом падеже, кроме именительного. Например "кошке". То есть это слово "кошка" в дательном падеже. Далее пытаемся из него получить массив со значением слова "кошка" во всех шести падежах. Ничего не получается. Ни стандартные средства 1С, ни сервис morpher.ru с задачей не справляются. Всегда возвращается все то же значение "кошке". Соответственно вопрос: нет ли у кого готового решения по такой проблеме? Неделю бьюсь ...
По теме из базы знаний
Найденные решения
(1) Для существительных можете сами сформировать дерево условий исходя из окончания слова.
Для прилагательных сложнее, так как в дательном падеже они имеют одинаковую форму для среднего и мужского рода.
Еще беда с существительными, оканчивающимися на "не": Кришне / вишне - Кришна / вишня, Ване / ванне - Ваня / ванна и т.д.
В прикреплении обработка в качестве первого наброска.
Для прилагательных сложнее, так как в дательном падеже они имеют одинаковую форму для среднего и мужского рода.
Еще беда с существительными, оканчивающимися на "не": Кришне / вишне - Кришна / вишня, Ване / ванне - Ваня / ванна и т.д.
В прикреплении обработка в качестве первого наброска.
Прикрепленные файлы:
ВнешняяОбработка2.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Для существительных можете сами сформировать дерево условий исходя из окончания слова.
Для прилагательных сложнее, так как в дательном падеже они имеют одинаковую форму для среднего и мужского рода.
Еще беда с существительными, оканчивающимися на "не": Кришне / вишне - Кришна / вишня, Ване / ванне - Ваня / ванна и т.д.
В прикреплении обработка в качестве первого наброска.
Для прилагательных сложнее, так как в дательном падеже они имеют одинаковую форму для среднего и мужского рода.
Еще беда с существительными, оканчивающимися на "не": Кришне / вишне - Кришна / вишня, Ване / ванне - Ваня / ванна и т.д.
В прикреплении обработка в качестве первого наброска.
Прикрепленные файлы:
ВнешняяОбработка2.epf
(5) Большое спасибо за совет, но подобное решение я уже отработал. Правда на основе справочника. В каждом элементе есть табличная часть со всеми возможными словоформами. Соответственно функция в Запросе собирает все словоформы и по условию ищет слово из параметра. Если находит, то возвращает Наименование элемента, которое и есть это слово в именительном падеже. Просто решил немного усложнить себе задачу и поискать универсальное решение. В то же время Вы правы, скорее всего наиболее удачным вариантом будет просто собрать со временем внутри обработки всевозможные варианты окончаний.
(1)
Причина банальна: "фарш невозможно прокрутить назад" - однозначно восстановить именительный падеж любого слова по дательному.
Потому что каждое слово в именительном падеже имеет только одну форму в дательном... а вот для обратного соответствия есть исключения - два (а может, и больше) разных слова в именительном могут иметь одинаковую форму в дательном. И какое, будем получать?
Чтобы не быть голословным, то вот два примера, которые мне пришли в голову за упомянутые 10 минут: "вине", "каре".
Кушать подано, прошу к столу!
Неделю бьюсь ...
Это говорит отнюдь не в вашу пользу: мне, например, хватило 10 минут. чтобы понять - задача нерешаема. По крайней мере, в общем случае, то есть полностью.
Причина банальна: "фарш невозможно прокрутить назад" - однозначно восстановить именительный падеж любого слова по дательному.
Потому что каждое слово в именительном падеже имеет только одну форму в дательном... а вот для обратного соответствия есть исключения - два (а может, и больше) разных слова в именительном могут иметь одинаковую форму в дательном. И какое, будем получать?
Чтобы не быть голословным, то вот два примера, которые мне пришли в голову за упомянутые 10 минут: "вине", "каре".
Кушать подано, прошу к столу!
Создать и заполнить орфографический справочник в базе и реквизиты для всех падежей и множественном числе. Грубо, но будет работать, хотя могут быть ошибки - это я про фарш и это надо как-то отдельно контролировать. В любом языке мира не так уж много слов по меркам базы 1С.
(18) Решение - это необязательно ответ в одно значение. Кстати, я не зря упомянул фарш. Решением может быть коллекция вариантов (значений), а с коллекцией значительно проще работать, чем полностью искать решение с нуля. Любая задача, если она не имеет решения в лоб, может решаться с введенными допущениями в начальных условиях и требованиях к ответу. В данном случае можно предложить механизм облегчающий работу пользователя и этого возможно уже будет достаточно.
(19) Я сделал сборку из 4 вариантов. В массив собирается все, что можно:
1. Сначала из обработки переделки слов по окончаниям.
2. Далее по справочнику наиболее частых слов с раскладкой по всем падежам.
3. Поиск силами 1с через "ПолучитьСклоненияСтрокиПоЧислу " и "ПолучитьСклоненияСтроки".
4. Запрос на сайт Morpher.
Далее ищется совпадение слов из предлагаемой фразы. В 90% случаев программа находит то, что нужно. Ну а незначительное количество оставшегося будет исправлено руками. Вполне рабочий вариант.
1. Сначала из обработки переделки слов по окончаниям.
2. Далее по справочнику наиболее частых слов с раскладкой по всем падежам.
3. Поиск силами 1с через "ПолучитьСклоненияСтрокиПоЧислу " и "ПолучитьСклоненияСтроки".
4. Запрос на сайт Morpher.
Далее ищется совпадение слов из предлагаемой фразы. В 90% случаев программа находит то, что нужно. Ну а незначительное количество оставшегося будет исправлено руками. Вполне рабочий вариант.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот