Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Стандартизация ФИО

Модуль позволяет определить, какая часть в ФИО является именем, фамилией и отчеством.Модуль позволяет собирать, размечать и стандартизировать ФИО существующих пользователей главного модуля(main) и модуля Интернет-магазина(sale) локально, без запросов по API к сторонним сервисам.Доступно улучшение определения ФИО с помощью собственных правил определения ФИО.Есть возможность загрузить собственные наборы данных для более точного определения и стандартизации. Разработчик модуля предоставляет услугу установки набора данных. Ознакомиться со стоимостью и приобрести код доступа к услуге можно по ссылке.Опционально:Расстановка ФИО в полях пользователя главного модуля(main) при добавлении и изменении.Установка пола пользователя главного модуля(main)Восстановление третьей части ФИО, которая теряется при использовании штатного компонента оформления заказа.Исправление ошибок ввода ФИО пользователей.Модуль можно использовать совместно с API DaData "Стандартизация ФИО":Результат определения ФИО модулем можно представить в виде результатов от API DaData.API DaData можно использовать как правило определения ФИО модулем.Модуль можно использовать совместно с API Ahunter "Стандартизация ФИО":Результат определения ФИО модулем можно представить в виде результатов от API Ahunter.API Ahunter можно использовать как правило определения ФИО модулем.

Стандартизация ФИО

Стандартизация ФИО

от Алексеев Алексей
Скриншоты
Описание

Технические данные

Опубликовано:
03.02.2025
Обновлено:
17.02.2025
Версия:
1.1.11
Установлено:
Менее 50 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз», «Интернет-магазин + CRM»
Адаптивность:
Нет
Поддержка Композита:
Нет
Совместимо с Сайты24
Нет
Совместимо с PHP 8.1
Да

Пользовательское соглашение

Описание

Модуль позволяет определить, какая часть в ФИО является именем, фамилией и отчеством.

Модуль позволяет собирать, размечать и стандартизировать ФИО существующих пользователей главного модуля(main) и модуля Интернет-магазина(sale) локально, без запросов по API к сторонним сервисам.

Доступно улучшение определения ФИО с помощью собственных правил определения ФИО.

Есть возможность загрузить собственные наборы данных для более точного определения и стандартизации.
Разработчик модуля предоставляет услугу установки набора данных. Ознакомиться со стоимостью и приобрести код доступа к услуге можно по ссылке.

Опционально:
  1. Расстановка ФИО в полях пользователя главного модуля(main) при добавлении и изменении.
  2. Установка пола пользователя главного модуля(main)
  3. Восстановление третьей части ФИО, которая теряется при использовании штатного компонента оформления заказа.
  4. Исправление ошибок ввода ФИО пользователей.
Модуль можно использовать совместно с API DaData "Стандартизация ФИО":
  1. Результат определения ФИО модулем можно представить в виде результатов от API DaData.
  2. API DaData можно использовать как правило определения ФИО модулем.
Модуль можно использовать совместно с API Ahunter "Стандартизация ФИО":
  1. Результат определения ФИО модулем можно представить в виде результатов от API Ahunter.
  2. API Ahunter можно использовать как правило определения ФИО модулем.
Закладка без названия
Что нового
1.1.11 (17.02.2025) +- Добавлены ограничения на код опционального правила.
  • Код опции с настройками правила теперь в нижнем регистре с префиксом rule_
  • Код правила проверяется на соответствие регулярному выражению [a-zA-Z0-9_]+
+- Правила, основанные на совпадении с регулярным выражением, теперь опциональные, по умолчанию выключены.
  • После установки обновления требуется зайти в настройки и включить ранее добавленные правила, если нужны.
  • Добавлен пример создания собственного правила, основанного на совпадении с регулярным выражением, и его проверка до включения в настройках модуля.
1.1.10 (14.02.2025) + Ошибки сбора неизвестных слов записываются в файл отладки.
1.1.9 (14.02.2025) + Добавлено правило «Фамилия с германским окончанием» + Добавлено правило «Фамилия с латвийским окончанием» + Добавлено правило «Фамилия с румынским окончанием» +- Переработано абстрактное правило «Совпадение с регулярным выражением»
1.1.8 (14.02.2025) +- Добавлена страница «Наборы данных».
  • Ссылки на страницы «Фамилии», «Имена», «Отчества» убраны из меню.
  • Страницы «Фамилии», «Имена», «Отчества» выводятся на странице «Наборы данных» в одноименных табах.
  • Таб «Стандартные формы имён» перенесен на страницу «Наборы данных».
1.1.7 (13.02.2025) + Расширен список символов, которые сразу обрезаются: *_?!;:><+-= + Добавлено исправление похожих символов из разных алфавитов.
  • Алфавиты: кириллица и латиница.
  • Список символов: а,е,о,р,с,у,х,А,В,Е,К,М,Н,О,Р,С,Т,Х
+ В папку examples добавлен пример очистки входящих данных.
1.1.6 (12.02.2025) + В процесс стандартизации пользователей главного модуля добавлена опция «Начинать с пользователя».
  • В поле ввода опции указывается ID пользователя
+- Исправлена локализация кнопки «Добавить» в списке стандартных форм имён. +- В ссылки модуля добавлен параметр lang, исправляющий нежелательный переход с английской версии сайта на русскую. + В контроллеры процессов добавлена передача параметра lang.
  • Для отображения процесса в соответствии с выбранной языковой версией сайта.
  • Во все контроллеры добавлено переключение на язык из lang перед выполнением действия.
1.1.4 (10.02.2025) + Добавлена опция «Запись отладочной информации в файл»
  • Рекомендуется включать только для сбора отладочной информации.
  • В папке upload создается папка с названием модуля. В эту папку записываются отладочные данные по дням.
  • Опция не влияет на отладку стандартизации.
+ Добавлена папка examples и 4 примера использования модуля.
  • Файлы с примерами можно запускать в инструменте "Командная строка PHP" (/bitrix/admin/php_command_line.php)
  • Два примера использования только правил сторонних сервисов стандартизации.
  • Два примера представления результата в виде результатов от сторонних сервисов стандартизации.
+- Изменены правила определения ФИО с помощью сторонних сервисов стандартизации.
  • Слово считается найденным только при строгом равенстве.
  • Результат стороннего сервиса стандартизации пустой, если хотя бы одно слово не найдено.
  • Ответ API Ahunter считается приемлемым только при значении compatibility = 1.
1.1.3 (06.02.2025) + Добавлены сообщения при установке наборов данных по ключу доступа.
1.1.2 (04.02.2025) + Поиск по всем полям с ФИО в таблице отладочной информации.
  • Поиск по всем полям использует логику ИЛИ.
  • Поиск связан с фильтром логикой И.
  • Поле "Сообщения" не участвует в поиске.
+ Фильтр строк с пустыми значениями в колонках таблицы отладочной информации.
  • По умолчанию фильтре нет полей для фильтрации.
  • Добавляя поле без значения, будете фильтровать строки таблицы с пустыми значениями.
  • Удалите поле из фильтра для отбора всех строк.
1.1.1 (03.02.2025) +- Перенесена проверка доступности опционального правила определения ФИО из класса правила в класс построения списка правил.
  • Проверка доступности выполняется один раз, при построении списка правил из обработчиков события OnDetectorRulesListBuild.
  • Появляется возможность использовать опциональное правило, не включая его для всех.
+ Добавлен публичный метод получения построителя списка правил.
  • Использовать для задания списка конфигураций правил, отличного от того, что собирается с обработчиков события OnDetectorRulesListBuild.
+ Добавлен класс Alekseev\Fio\Detector\Rules\RuleBuild создания правила определения ФИО.
  • Обработчик события OnDetectorRulesListBuild должен возвращать объект/массив объектов этого класса.
  • В класс перенесена логика валидации параметров и создания правила определения ФИО.
+- Методы построение списка правил для таблицы в административной части вынесены в отдельный класс.
Установка
Установка

Установка решения имеет два шага. Первый обязательный, второй необязательный. На втором шаге устанавливается набор данных. Для установки набора данных потребуется код доступа к услуге.

Установка набора данных  - не обязательное условие работы модуля. В ознакомительных целях предоставляется код доступа DEMO с ограниченным набором данных.

После установки идет переход к странице импорта собственных наборов данных в формате .jsonl. Со страницы импорта можно вернуться ко второму шагу установки.



Настройка

По умолчанию вся опциональная функциональность модуля отключена.
Перейдите в настройки модуля через боковое меню в административной панели: Сервисы > Стандартизация ФИО > Настройки.
На первой вкладке включите опции функционала, которые вам нужны.

На второй вкладке отображаются правила определения ФИО. Показывается информация о порядке применения правил, какую часть ФИО определяет правило. Часть из них опциональные. Например, правило "Фамилия определена через API DaData".

Третья вкладка доступа стандартная. Фактически сейчас уровни доступа: есть/нет



Сценарии использования модуля

  • Нет наборов данных, нет программиста, есть много времени. Переходим Сервисы > Стандартизация ФИО > Неизвестные имена. В дополнительных действиях к кнопке "Обработать" выбираем "Найти неизвестные имена". Найденные имена размечаем с помощью действий для списка. Например, фильтруем "%ова", выбираем все найденные, отмечаем, что это женские фамилии. После разметки ставим отметку о добавлении в локальную базу имён через групповые действия и нажимаем "Обработать". Размеченные данные попадают в таблицы локальной базы имён и используются правилами определения ФИО.
  • Есть наборы данных, нет программиста. Переходим Сервисы > Стандартизация ФИО > Импорт. Загружаем набор данных в локальную базу имён, в соответствующую таблицу.
  • Нет наборов данных, есть программист. Добавляем с помощью события формирования списка правил собственные правила определения ФИО.
Общие действия для всех сценариев. Переходим Сервисы > Стандартизация ФИО > Стандартизация. Здесь можно запустить процесс исправления ФИО существующих пользователей главного модуля(main), ознакомиться с локальной базой стандартных форм имён и отладочной информацией. Отладочная информация показывает какие данные заходили на вход, какие вышли, какие правила применились, в каком контексте выполнялось определение.


Сценарии использования для программиста:
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'),
        ]
    );
}
2. Свое правило в /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();
        }
    }
}
3. Определение ФИО
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. После проверки добавлю в поставку модуля.
Поддержка
Вопросы и предложения принимаются на электронную почту alekseev.aleksey.in@gmail.com

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки