Модуль позволяет собирать, размечать и стандартизировать ФИО существующих пользователей главного модуля(main) и модуля Интернет-магазина(sale) локально, без запросов по API к сторонним сервисам.
Доступно улучшение определения ФИО с помощью собственных правил определения ФИО.
Есть возможность загрузить собственные наборы данных для более точного определения и стандартизации.
Разработчик модуля предоставляет услугу установки набора данных. Ознакомиться со стоимостью и приобрести код доступа к услуге можно по ссылке.
Опционально:
- Расстановка ФИО в полях пользователя главного модуля(main) при добавлении и изменении.
- Установка пола пользователя главного модуля(main)
- Восстановление третьей части ФИО, которая теряется при использовании штатного компонента оформления заказа.
- Исправление ошибок ввода ФИО пользователей.
- Результат определения ФИО модулем можно представить в виде результатов от API DaData.
- API DaData можно использовать как правило определения ФИО модулем.
- Результат определения ФИО модулем можно представить в виде результатов от API Ahunter.
- API Ahunter можно использовать как правило определения ФИО модулем.
- Добавлена поддержка фильтра по строке поиска(строгое совпадение) во всех наборах данных.
- Правила, основанные на совпадении с регулярным выражением, завершают процесс определения части ФИО только когда слово не найдено ни в одном наборе. В противном случае изменяется оценка отношения к части ФИО.
- Из правила «Фамилия с германским окончанием» удалена альтернатива «-ер» из-за большого процента ложных срабатываний.
- Добавлена проверка доступа к действиям в пошаговых процессах.
- Слово не очищается и не разбивается на части, если есть пробелы.
- Игнорируется значение опций «Удалять из ФИО повторяющиеся слова» и «Собирать не найденные в таблицах имён слова».
- Исправлена ошибка добавления в отладку стандартизации записи без контекста для MySQL 8.
- У записи в отладке стандартизации добавлено сообщение о том, что запись добавлена при разметке неизвестных имён.
- Исправлена перезагрузка таблицы после завершения пошагового процесса разметки неизвестных имён.
- По умолчанию все опциональные правила используются для разметки неизвестных имён.
- В настройках правил можно отключить правило для разметки.
- В пошаговый процесс разметки добавлена опция количества неизвестных имён, которое размечается за один шаг.
- В групповые действия добавлен сброс значения в колонке «Таблица имён».
- Исправлено зависание окна пошагового процесса на странице «Неизвестные имена» при отмене.
- Оптимизировано регулярное выражение.
- Добавлен суффикс -дзк-.
- Добавлены альтернативы окончания.
- Согласованы названия в табах наборов данных.
- Исправлено описание формата импорта.
- Исправлено название таблицы «Неизвестные имена» в пошаговом процессе импорта.
- Новый функционал находится на странице «Неизвестные имена» в выпадающем меню рядом с кнопкой «Обработать».
- Процесс разметки запускается для всех неизвестных имён.
- Используются правила, основанные на совпадении с регулярным выражением.
- Пропускаются имена, у которых уже указана таблица имён.
- Пол меняется только с неопределенного значения.
- Файл с наборами данных загружается на сервер.
- В примере меняются пути до файлов, и пример запускается через инструмент «Командная строка PHP»
- На выходе получаем файл с набором данных, который подходит для использования на странице «Импорт».
- Удалено «-ёр»
- Добавлено «-иц» и «-тц»
- Код опции с настройками правила теперь в нижнем регистре с префиксом rule_
- Код правила проверяется на соответствие регулярному выражению [a-zA-Z0-9_]+
- После установки обновления требуется зайти в настройки и включить ранее добавленные правила, если нужны.
- Добавлен пример создания собственного правила, основанного на совпадении с регулярным выражением, и его проверка до включения в настройках модуля.
- Ссылки на страницы «Фамилии», «Имена», «Отчества» убраны из меню.
- Страницы «Фамилии», «Имена», «Отчества» выводятся на странице «Наборы данных» в одноименных табах.
- Таб «Стандартные формы имён» перенесен на страницу «Наборы данных».
- Алфавиты: кириллица и латиница.
- Список символов: а,е,о,р,с,у,х,А,В,Е,К,М,Н,О,Р,С,Т,Х
- В поле ввода опции указывается ID пользователя
- Для отображения процесса в соответствии с выбранной языковой версией сайта.
- Во все контроллеры добавлено переключение на язык из lang перед выполнением действия.
- Рекомендуется включать только для сбора отладочной информации.
- В папке upload создается папка с названием модуля. В эту папку записываются отладочные данные по дням.
- Опция не влияет на отладку стандартизации.
- Файлы с примерами можно запускать в инструменте "Командная строка PHP" (/bitrix/admin/php_command_line.php)
- Два примера использования только правил сторонних сервисов стандартизации.
- Два примера представления результата в виде результатов от сторонних сервисов стандартизации.
- Слово считается найденным только при строгом равенстве.
- Результат стороннего сервиса стандартизации пустой, если хотя бы одно слово не найдено.
- Ответ API Ahunter считается приемлемым только при значении compatibility = 1.
- Поиск по всем полям использует логику ИЛИ.
- Поиск связан с фильтром логикой И.
- Поле "Сообщения" не участвует в поиске.
- По умолчанию фильтре нет полей для фильтрации.
- Добавляя поле без значения, будете фильтровать строки таблицы с пустыми значениями.
- Удалите поле из фильтра для отбора всех строк.
- Проверка доступности выполняется один раз, при построении списка правил из обработчиков события OnDetectorRulesListBuild.
- Появляется возможность использовать опциональное правило, не включая его для всех.
- Использовать для задания списка конфигураций правил, отличного от того, что собирается с обработчиков события OnDetectorRulesListBuild.
- Обработчик события OnDetectorRulesListBuild должен возвращать объект/массив объектов этого класса.
- В класс перенесена логика валидации параметров и создания правила определения ФИО.
Установка решения имеет два шага. Первый обязательный, второй необязательный. На втором шаге устанавливается набор данных. Для установки набора данных потребуется код доступа к услуге.
Установка набора данных - не обязательное условие работы модуля. В ознакомительных целях предоставляется код доступа DEMO с ограниченным набором данных.
После установки идет переход к странице импорта собственных наборов данных в формате .jsonl. Со страницы импорта можно вернуться ко второму шагу установки.
Настройка
По умолчанию вся опциональная функциональность модуля отключена.
Перейдите в настройки модуля через боковое меню в административной панели: Сервисы > Стандартизация ФИО > Настройки.
На первой вкладке включите опции функционала, которые вам нужны.
На второй вкладке отображаются правила определения ФИО. Показывается информация о порядке применения правил, какую часть ФИО определяет правило. Часть из них опциональные. Например, правило "Фамилия определена через API DaData".
Третья вкладка доступа стандартная. Фактически сейчас уровни доступа: есть/нет
Сценарии использования модуля
- Нет наборов данных, нет программиста, есть много времени. Переходим Сервисы > Стандартизация ФИО > Неизвестные имена. В дополнительных действиях к кнопке "Обработать" выбираем "Найти неизвестные имена". Найденные имена размечаем с помощью действий для списка. Например, фильтруем "%ова", выбираем все найденные, отмечаем, что это женские фамилии. После разметки ставим отметку о добавлении в локальную базу имён через групповые действия и нажимаем "Обработать". Размеченные данные попадают в таблицы локальной базы имён и используются правилами определения ФИО.
- Есть наборы данных, нет программиста. Переходим Сервисы > Стандартизация ФИО > Импорт. Загружаем набор данных в локальную базу имён, в соответствующую таблицу.
- Нет наборов данных, есть программист. Добавляем с помощью события формирования списка правил собственные правила определения ФИО.
Сценарии использования для программиста:
1. Использование события для добавления своего правила.
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'alekseev.fio',
'OnDetectorRulesListBuild',
'buildMyRuleList'
);
function buildMyRuleList($event) {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
[
(new \Alekseev\Fio\Detector\Rules\BuildRule(
'\My\Module\MyCustomRule'
))
->setSort(500)
->setFile('/local/modules/my.module/lib/custom.php'),
]
);
}
|
namespace My\Module {
use Alekseev\Fio\Detector;
// Создаем опциональное правило
class MyCustomRule extends Detector\Rules\OptionalRule {
// Должно возвращать одну из трех констант Detector\Score::F\I\O
public function getScoreFlag(): int
{
// Определяет отчества.
return Detector\Score::O;
}
public function getCode(): string
{
return 'MY_CUSTOM_RULE';
}
public function getTitle(): string
{
return 'Мое правило определения ФИО';
}
/**
* Примеры реализации метода в готовых правилах
* \bitrix\modules\alekseev.fio\lib\detector\rules
*/
public function resolve(): Detector\Rules\Result
{
// Ничего не делаем. Пустой результат.
return new Detector\Rules\Result();
}
}
}
|
use Alekseev\Fio\Detector\Resolver;
use Alekseev\Fio\Detector\DaDataResult;
\Bitrix\Main\Loader::includeModule('alekseev.fio');
$detector = new Resolver('Иванович Иван Иванов');
// Массив с полями как тут dadata.ru/api/clean/name/
$array = (new DaDataResult($detector))->asArray();
$lastName = $detector->getLastName();
// И т.д. примеры смотри в исходниках.
// Например, в файле /bitrix/modules/alekseev.fio/eventhandlers/mainuser.php |
Свои реализации правил можете присылать на почту alekseev.aleksey.in@gmail.com. После проверки добавлю в поставку модуля.
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.