Всем привет. Делаю выгрузку на сайт партнера. Для клиентов необходимо указывать телефонный номер. Некорректные номера сайт не пропускает. Есть ли возможность проверки правильности заполнения для мобильного и городского номера? Конфигурация самописная, управляемые формы. Есть БСП 2.2.3.40
Если не средствами 1С, то может есть такой бесплатный ресурс в и-нете?
---
Нашел другой ресурс для проверки. Пока пользуюсь такой функцией:

```1c
    Функция ВыполнитьПроверкуНомераТелефона(НомерТелефона)
    АдресСайта="giggsey.com";
    ЗащищенноеСоед=Новый ЗащищенноеСоединениеOpenSSL;
    Соединение=Новый HTTPСоединение(АдресСайта,443,,,,30,ЗащищенноеСоед);
    АдресРесурса="/libphonenumber/index.php?phonenumber=7"+НомерТелефона+"&country=RU&language=ru&region­=RU";
    Запрос=Новый HTTPЗапрос(АдресРесурса);
    Попытка
    ОтветHTTP=Соединение.Получить(Запрос);
    Исключение
    Возврат "Ошибка "+ОписаниеОшибки();
    КонецПопытки;
    Если ОтветHTTP.КодСостояния=200 Тогда
    СтрокаОтвета=ОтветHTTP.ПолучитьТелоКакСтроку();
    ЧтениеHTML=Новый ЧтениеHTML;
    ЧтениеHTML.УстановитьСтроку(СтрокаОтвета);
    Построитель=Новый ПостроительDOM;
    ДокHTML=Построитель.Прочитать(ЧтениеHTML);
    ЭлементыДокHTML=ДокHTML.ПолучитьЭлементыПоИмени("td");
    Ответ=СокрЛП(ЭлементыДокHTML.Элемент(7).ТекстовоеСодержимое);
    Возврат Ответ="true";
    Иначе
    Возврат "Ошибка "+ОтветHTTP.КодСостояния;
    КонецЕсли;
    КонецФункции
```

Если других вариантов не предложат, можно считать тему закрытой
---
Пока делаю через сайт https://opendata.digital.gov.ru/registry/numeric/search-by-number
Но, возможно, есть другие проверенные способы
---
C 8.3.23 1С умеет в регулярные выражения, на сервере, по крайней мере. СтрПодобнаПоРегулярномуВыражению()
---
Тут немного другое.Я привожу номер к 10-значному виду, проверяю на цифры, убираю лишнее. Но начинается номер, допустим, с 897. Для меня - все равно, а запрос заворачивают - некорректный номер.
---
СтрПодобнаПоРегулярномуВыражению
---
Некорректные номера сайт не пропускаетПока ты не узнаешь, как именно проверяет номера этот сайт, все твои телодвижения бессмыслены. Будут просто два разных набора проверок - твой, выдуманный из каких-то соображений, и фактически применяемый на сайте.
---
Ну, примерно я представляю. Существуют мобильные номера, начинающиеся с 9. Есть городские, начинающиеся с 8. Осталось только набить список годов города и кодов мобильных операторов. :-)
Вот этого и хочу избежать, воспользовавшись универсальным способом.
opendata.digital.gov.ru что-то заворачивает меня по ошибке 301 по кругу. Если кто знает, как обойти, это и будет решением моей проблемы.
---
Существуют мобильные номера, начинающиеся с 9.А почему не с +7?
---
Берутся только российские 10 знаков
---
Мобилы все с "9" начинаются, а по междугородним план нумерации РФ можно "интегрировать" + всякие исключения типа 8 800...
---
Это что ж мне, казаху, нельзя теперь своим номером +7 (720) пользоваться?
---
Автор ограничивается номерами РФ, а СССР в 1991 еще закончился.
---
Если кто знает, как обойти, это и будет решением моей проблемы.

Что лежит в заголовке ответа сервера gov в поле Location?
---
Чередует этот же адрес то http, то https
---
Нашел другой ресурс для проверки. Пока пользуюсь такой функцией:

```1c
    Функция ВыполнитьПроверкуНомераТелефона(НомерТелефона)
    АдресСайта="giggsey.com";
    ЗащищенноеСоед=Новый ЗащищенноеСоединениеOpenSSL;
    Соединение=Новый HTTPСоединение(АдресСайта,443,,,,30,ЗащищенноеСоед);
    АдресРесурса="/libphonenumber/index.php?phonenumber=7"+НомерТелефона+"&country=RU&language=ru&region­=RU";
    Запрос=Новый HTTPЗапрос(АдресРесурса);
    Попытка
    ОтветHTTP=Соединение.Получить(Запрос);
    Исключение
    Возврат "Ошибка "+ОписаниеОшибки();
    КонецПопытки;
    Если ОтветHTTP.КодСостояния=200 Тогда
    СтрокаОтвета=ОтветHTTP.ПолучитьТелоКакСтроку();
    ЧтениеHTML=Новый ЧтениеHTML;
    ЧтениеHTML.УстановитьСтроку(СтрокаОтвета);
    Построитель=Новый ПостроительDOM;
    ДокHTML=Построитель.Прочитать(ЧтениеHTML);
    ЭлементыДокHTML=ДокHTML.ПолучитьЭлементыПоИмени("td");
    Ответ=СокрЛП(ЭлементыДокHTML.Элемент(7).ТекстовоеСодержимое);
    Возврат Ответ="true";
    Иначе
    Возврат "Ошибка "+ОтветHTTP.КодСостояния;
    КонецЕсли;
    КонецФункции
```

Если других вариантов не предложат, можно считать тему закрытой
---
параметр "region" автозамена испортила
---
```1c
    Если Не СтрПодобнаПоРегулярномуВыражению(Жалоба_НомерТелефона, "^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$", Истина) Тогда
    ВызватьИсключение "Пожалуйста заполните корректный номер телефона";
    КонецЕсли;
```
---
ЕслиТогда