Какие есть правила валидации полей
Для всех полей в системе существуют правила их заполнения. При получении данных происходит проверка, что в поле записываются разрешенные для него символы и количество этих символов не превышает лимит.
ФИО
Зависит от настроек в анкете клиента:
Русский алфавит
По умолчанию выбран русский алфавит.
То есть разрешены символы из регулярного выражения:
^[А-яЁё][А-яЁё’\- ]*$
Что это значит:
- Первый символ (или единственный, если он один) должен быть любой буквой русского алфавита.
- Дальше — любая буква русского алфавита, апостроф, дефис или пробел.
Другие алфавиты и «любые символы»
Можно дополнительно подключить английский, белорусский, казахский, киргизский, польский или украинский алфавиты.
После добавления нового алфавита убрать его из настроек нельзя.
Если нужного вам алфавита нет в представленном списке, выберите опцию «любые символы».
Регулярное выражение для него:
^[\p{L}`’‘’\- \.0-9\(\)\+=\?\*\/«\!\,_\@№\:·\p{IsArabic}\p{IsArabicPresentationForms-A}\p{IsArabicPresentationForms-B}
\p{IsArmenian}\p{IsBengali}\p{IsBuhid}\p{IsCherokee}\p{IsCyrillic}\p{IsCyrillicSupplement}\p{IsDevanagari}\p{IsEthiopic}
\p{IsGeorgian}\p{IsGreek}\p{IsGreekExtended}\p{IsGujarati}\p{IsBopomofo}\p{IsBopomofoExtended}\p{IsHanunoo}
\p{IsHebrew}\p{IsHiragana}\p{IsKannada}\p{IsLao}\p{IsTagbanwa}\p{IsMongolian}\p{IsMyanmar}\p{IsKatakana}
\p{IsKatakanaPhoneticExtensions}\p{IsKhmer}\p{IsKhmerSymbols}\p{IsMalayalam}\p{IsGurmukhi}\p{IsOriya}\p{IsRunic}
\p{IsSinhala}\p{IsSyriac}\p{IsTagalog}\p{IsTaiLe}\p{IsTamil}\p{IsTelugu}\p{IsOgham}\p{IsThaana}\p{IsThai}\p{IsTibetan}
\p{IsYiSyllables}\p{IsYiRadicals}\p{IsHangulSyllables}\p{IsHangulJamo}\p{IsLimbu}\p{IsCJKUnifiedIdeographs}
\p{IsCJKUnifiedIdeographsExtensionA}\p{IsCJKCompatibility}\p{IsCJKRadicalsSupplement}\p{IsCJKSymbolsandPunctuation}
\p{IsEnclosedCJKLettersandMonths}\p{IsCJKCompatibilityIdeographs}\p{IsCJKCompatibilityForms}\p{IsHangulCompatibilityJamo}
\p{IsUnifiedCanadianAboriginalSyllabics}Ა-Ჿ]*$
В таком случае можно использовать буквы из перечисленных алфавитов, цифры и символы `’‘'-.()+=?*/"!,_@№:·
Даже при разрешенных любых символах в одно поле не могут быть записаны символы из разных языков.
Например, если в ФИО передать «Мария Ivanova», стандартное имя «Мария» уйдет в поле 'Имя', остальная часть («Ivanova») — в 'Фамилию'. Как результат в каждом поле будут символы только из одного языка.
Если же передать значение в 'Имя', оно записано не будет.
Количество символов
Не больше 100 в каждом поле.
Иногда при передаче ФИО через общее поле FullName нельзя определить, что является именем и фамилией, и всё записывается в имя.
В таком случае ФИО целиком должно быть не более 100 символов с учетом пробелов, потому что запись сохраняется в одном поле.
Мобильный номер
Зависит от настроек в анкете клиента (см. скриншот выше).
По умолчанию выбран телефонный код России. Можно добавить код любой страны.
Символы
При записи отбрасываются все символы, кроме цифр. Поэтому наличие и порядок скобок, тире и плюсов не имеет значения. Главное, чтобы был код страны и достаточное количество цифр.
Код
Номер должен начинаться с международного или внутреннего кода (для России это 7 и 8 соответственно).
В базе телефон в любом случае сохраняется с международным кодом.
Количество символов
При использовании кода России, остальная часть номера должна содержать 10 цифр.
При использовании любого другого разрешенного кода, остальная часть должна содержать хотя бы 1 символ, а длина всего номера должна быть до 19 цифр включительно.
Проверяется регулярным выражением:
^([\p{L}0-9_\-!#\$%&’\*\+/=\?\^`\{}\|~])+([\.\p{L}0-9_\-!#\$%&’\*\+/=\?\^`\{}\|~])*@
([\p{L}0-9]([\p{L}0-9\-]{0,61}[\p{L}0-9])?\.)*[\p{L}0-9]([\p{L}0-9\-]{0,61}[\p{L}0-9])?$
Что это значит:
- Часть до
@
:- Минимум один символ.
- Первый — любая буква, цифра или символ
_-!#$%&'*+/=?^`{}|~
- Дальше — любая буква, цифра или символ
._-!#$%&'*+/=?^`{}|~
- Символ
@
- Часть после
@
:- Минимум один символ.
- Может разделяться на доменные группы точками. При этом в каждой группе:
- Первый и последний символ — любая буква или цифра.
- Остальные — любая буква, цифра или тире.
- 1-63 символа (включая точку-разделитель).
Количество символов
До 254 символов включительно.
Пол
Принимаемые форматы:
- male/female
- m/f
- m/w
Регистр не важен.
Дополнительные поля
Строка и идентификаторы
Любые символы.
До 1000 символов включительно.
Перечисление
Любые символы, кроме |
.
До 250 символов включительно в каждом значении.
Символ |
можно передавать в качестве разделителя в файлах импорта при использовании множественных значений.
Целочисленный
Только цифры.
Значения от −2147483648 до 2147483647 (10 символов не включая минус).
Десятичный
Только цифры с точкой или запятой.
До запятой — максимум 16 символов, после запятой — максимум 2 символа.
Значения от −9999999999999999.99 до 9999999999999999.99
Логический
Принимаемые форматы:
- true/false
- yes/no
- 1/0
Регистр не важен.
Дата, дата и время
Принимаемые форматы:
dd.MM.yyyy HH:mm:ss.FFF dd.MM.yyyy H:mm:ss.FFF dd.MM.yyyy HH:mm:ss dd.MM.yyyy H:mm:ss dd.MM.yyyy HH:mm dd.MM.yyyy H:mm dd.MM.yyyy d.M.yyyy HH:mm:ss.FFF d.M.yyyy H:mm:ss.FFF d.M.yyyy HH:mm:ss d.M.yyyy H:mm:ss d.M.yyyy HH:mm d.M.yyyy H:mm d.M.yyyy yyyy.MM.dd HH:mm:ss.FFF yyyy.MM.dd H:mm:ss.FFF yyyy.MM.dd HH:mm:ss yyyy.MM.dd H:mm:ss yyyy.MM.dd HH:mm yyyy.MM.dd H:mm yyyy.MM.dd yyyy.M.d HH:mm:ss.FFF yyyy.M.d H:mm:ss.FFF yyyy.M.d.M.d HH:mm:ss yyyy.M.d H:mm:ss yyyy.M.d HH:mm yyyy.M.d H:mm yyyy.M.d |
yyyy-MM-dd HH:mm:ss.fff yyyy-MM-dd HH:mm:ss.FFF yyyy-MM-dd H:mm:ss.FFF yyyy-MM-dd HH:mm:ss yyyy-MM-dd H:mm:ss yyyy-MM-dd HH:mm yyyy-MM-dd H:mm yyyy-MM-dd yyyy-M-d HH:mm:ss.FFF yyyy-M-d H:mm:ss.FFF yyyy-M-d HH:mm:ss yyyy-M-d H:mm:ss yyyy-M-d H:m:s yyyy-M-d HH:mm yyyy-M-d H:mm yyyy-M-d MM/dd/yyyy HH:mm:ss MM/dd/yyyy H:mm:ss MM/dd/yyyy HH:mm MM/dd/yyyy H:mm MM/dd/yyyy MM/dd/yy |
Если в поле типа дата передаются часы и минуты, они отбрасываются при записи.
Если данные не проходят валидацию
Невалидное значение не будет записано в поле.
Срабатывает ли при этом операция?
В таком случае вызов операции может либо выполниться с предупреждением, либо не выполнится совсем. В первом случае сохранятся данные по остальным полученным полям, во втором — не сохранится ничего.
В большинстве случаев при нарушении правил валидации операция выполняется.
Исключения, при которых операция не выполняется:
- Превышение лимита символов в полях ФИО (если сами символы валидные).
- Превышение лимита символов в поле с типом «перечисление» (если передано имеющееся значение из поля или у поля включена настройка «Создавать значение перечисления, если не найдено»).
- Наличие символа
|
в поле с типом «перечисление». - Невалидное поле — единственный идентификатор клиента. Нельзя создать клиента без идентификаторов.