Готовые решения для 1С-Битрикс
Карточка решения
База знаний по решению:
Маска ввода номера телефона

Форматирование номера телефона попадающего в админку

Достаточно частые вопросы от пользователей связанные с форматированием:

1. В каком формате номер телефона попадает в админку?

Ответ: номер телефона отправляется так как его видит пользователь при вводе, с элементами маски. Если пользователь по маске ввел +7 (999) 999-99-99 то и в админку он сохранится в точно таком же формате +7 (999) 999-99-99 (при условии отсутствия доп. обработок разумеется)


2. Как поменять форматирование номера телефона сохраняющегося в админку?

Ответ: решение устанавливает маску на уровне поля ввода (ограничивая именно ввод, а не обработку), на обработку данных после отправки формы оно никак не влияет. Если мы с помощью решения установим маску +7 (999) 999-99-99, пользователь заполнит данные и на сервер они уйдут точно в таком же форматировании, например: +7 (123) 456-78-99
 
На уровне решения или маски на это не повлиять. Дальнейшее переформатирование сохраняемого номера (если это требуется конечно) можно делать на уровне обработки запроса на сохранение. 


3. Как менять форматирование номеров при сохранении?

Влиять на форматирование номеров телефонов на сохранении можно без доработки решения, используя стандартные события битрикса не связанные с решением. Единого решения или функции тут быть не может, т.к. обработку нужно добавлять в зависимости от того в какую сущность сохраняется номер телефона.

- Форматирование номера телефона попадающего в заказ

У битрикса есть стандартное форматирование номеров телефонов в заказах - что бы оно применялось нужно в свойстве заказа указать что оно является номером телефона. Сделать это можно в Админка -> Магазин -> Настройки -> Свойства заказа -> Список свойств. Открываем нужное свойство и устанавливаем у него галочку "Является телефоном". После установки данной опции у новых заказов данные в поле номера телефона будут очищаться от символов и букв, оставляя только цифры. Тоесть телефон будет сохраняться в админку в формате 71234567899

Если вам нужно более сложное нестандартное форматирование то делать его можно с помощью обработчика OnSaleOrderBeforeSaved


- Форматирование телефона при регистрации пользователф

Если вам нужно форматировать номер телефона при регистрации пользователя, то это можно сделать с помощью события OnBeforeUserAdd

и т.д. в зависимости от сущности в которую происходит сохранение нужно искать обработчик и дописывать в него код форматирования