Open 515 opened 3 years ago
При этом в другом файлике вот так работает
fio1->Word<kwtype="имя">;
fio2->Word<wff=/ФИО[0-9]/>;
fio0->fio1 | fio2;
fio->fio0 interp(Article.Name);
Про второй пример странно, т.к. у меня он тоже не работает.
Ошибка происходит при попытке сформировать поле факта с типом NFactType.TFio
. Там ожидается, что сработал встроенный алгоритм ФИО, который уже разделил цепочку на поля (фамилия, имя, отчество). В случае с ФИО1
сработало обычное правило с регуляркой, которое не может создать структуру, пригодную для полей типа NFactType.TFio
. Отсюда ошибка.
Если нужно, чтобы нечто разбиралось как встроенным алгоритмом ФИО, так и другими правилами, можно сделать два поля с типами string
и NFactType.TFio
. В первое вы сохраняете в любом случае, во второе - только из тех правил, где вы точно знаете, что сработать может только встроенный алгоритм ФИО.
Если оставить только PersonName1 - все работает и выбирает фамилию. Если на выбор то пишет ошибку
Error in CSentenceRusProcessor::FindMultiWords(): FactExtract/Parser/afdocparser/rusie/commongrammarinterpretation.cpp:243: Can't get fio value for Person.Name in sentence: Касир ФИО1 отгрузил едениц товара на сумму ... Продавец Маркова Виолета Михайловна отгрузил едениц товара на сумму ... Error in "CSimpleProcessor::ProcessString": FactExtract/Parser/afdocparser/rusie/commongrammarinterpretation.cpp:243: Can't get fio value for Person.Name [01:12:20 19:09:39] - End. (Processing files.)