Уведомления
Очистить все
1С:Предприятие 8.x
2
Записи
1
Пользователи
0
Likes
1,921
Просмотры
Создатель темы 23/03/2024 11:11 дп
Как преобразовать телефонный номер в в виде строки (представление) с разделителями в 1С? Как разбить номер телефона на блоки: код города, код страны и сам номер телефона в 1С?
Ниже укажу код, который преобразует номер телефона к виду: +7 (123) 456-78-90.
ТекНомерТелефона = ПеременнаяСодержащаяНомерТелефона_ТипСтрока; ТекНомерТелефона = СокрЛП(ТекНомерТелефона); ТекНомерТелефона = СтрЗаменить(СтрЗаменить(ТекНомерТелефона, Символы.НПП, ""), " ", ""); ТекНомерТелефона = СтрЗаменить(ТекНомерТелефона, "+", ""); ДлинаТелефон = СтрДлина(ТекНомерТелефона); Если ДлинаТелефон >= 11 Тогда МассивНомерТелефона = Новый Массив; МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 1, 2)); МассивНомерТелефона.Вставить(0, "-"); МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 3, 2)); МассивНомерТелефона.Вставить(0, "-"); МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 6, 3)); СтрокаНомерТелефона = СтрСоединить(МассивНомерТелефона); МассивКодГорода = Новый Массив; МассивКодГорода.Вставить(0, ")"); МассивКодГорода.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 9, 3)); МассивКодГорода.Вставить(0, "("); СтрокаКодГорода = СтрСоединить(МассивКодГорода); СтрокаКодСтраны = Лев(ТекНомерТелефона, ДлинаТелефон - 10); СтрокаКодСтраны = СтрШаблон("+%1", СтрокаКодСтраны); НомерТелефонаПредставление = СтрокаКодСтраны + " " + СтрокаКодГорода + " " + СтрокаНомерТелефона; Иначе НомерТелефонаПредставление = "+" + ТекНомерТелефона; КонецЕсли;
Создатель темы 23/03/2024 11:45 дп
Ниже приведу этот же код, но доработанный, с разбивкой телефонного номера на блоки для загрузки в 1С ЗУП.
Также покажу пример загрузки номера телефона в 1С ЗУП (в контактную информацию), используя встроенные процедуры и функции в модулях управления контактной информацией.
Запишем номер телефона физическому лицу в 1С ЗУП.
СпрФЛ_Объект = Ссылка_ФизическоеЛицо.ПолучитьОбъект(); ТекНомерТелефона = ПеременнаяСодержащаяНомерТелефона_ТипСтрока; ТекНомерТелефона = СокрЛП(ТекНомерТелефона); ТекНомерТелефона = СтрЗаменить(СтрЗаменить(ТекНомерТелефона, Символы.НПП, ""), " ", ""); ТекНомерТелефона = СтрЗаменить(ТекНомерТелефона, "+", ""); ДлинаТелефон = СтрДлина(ТекНомерТелефона); Если ДлинаТелефон >= 11 Тогда МассивНомерТелефона = Новый Массив; МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 1, 2)); МассивНомерТелефона.Вставить(0, "-"); МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 3, 2)); МассивНомерТелефона.Вставить(0, "-"); МассивНомерТелефона.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 6, 3)); СтрокаНомерТелефона = СтрСоединить(МассивНомерТелефона); МассивКодГорода = Новый Массив; МассивКодГорода.Вставить(0, ")"); МассивКодГорода.Вставить(0, Сред(ТекНомерТелефона, ДлинаТелефон - 9, 3)); МассивКодГорода.Вставить(0, "("); СтрокаКодГорода = СтрСоединить(МассивКодГорода); СтрокаКодСтраны = Лев(ТекНомерТелефона, ДлинаТелефон - 10); СтрокаКодСтраны = СтрШаблон("+%1", СтрокаКодСтраны); // Представление номера телефона НомерТелефонаПредставление = СтрокаКодСтраны + " " + СтрокаКодГорода + " " + СтрокаНомерТелефона; ПоляТелефона = УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона(); ПоляТелефона.КодГорода = СтрокаКодГорода; ПоляТелефона.КодСтраны = СтрокаКодСтраны; ПоляТелефона.НомерТелефона = СтрокаНомерТелефона; ПоляТелефона.Представление = НомерТелефонаПредставление; ПоляТелефона.Добавочный = ""; ПоляТелефона.Комментарий = ""; // Телефонный номер разбитый на блоки ЗначенияПолей = ПоляТелефона; Иначе // Представление номера телефона НомерТелефонаПредставление = "+" + ТекНомерТелефона; // Телефонный номер разбитый на блоки ЗначенияПолей = НомерТелефонаПредставление; КонецЕсли; ТелефонХМЛ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ЗначенияПолей, НомерТелефонаПредставление, ТипТелефон); ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонХМЛ); // Можно и так, но я сделаю так, как указано в строке ниже. УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(СпрФЛ_Объект, ТелефонJSON, ВидКИ, ТипТелефон,, ТекДата); УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(СпрФЛ_Объект, ТелефонJSON, ВидКИ, ТекДата, Истина); СпрФЛ_Объект.Записать();