Ввод номера сотового телефона из буфера обмена
Задачи пользователя - Адаптация типовых решений
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Внесены изменения в конфигурацию "Документооборот государственного учреждения", направленные на автоматизацию ввода номеров мобильных телефонов (Россия) в обработке
"Обработка.ВводКонтактнойИнформации.Форма.ВводТелефона". Задача заключалась в интеграции данных из внешнего источника в базу данных конфигурации, где необходимо было вводить сотовые номера сотрудников.
Основной сложностью являлось то, что номера телефонов могли добавляться только с помощью функции копирования и вставки, что требовало ручного разделения номера на части для последующего ввода в поля обработки «ВводКонтактнойИнформации». Для оптимизации этого процесса на форму «ВводТелефона» была добавлена соответствующая кнопка, а также написан код, который, не претендуя на универсальность, позволяет автоматически разделять скопированный номер по полям формы.
&НаКлиенте
Асинх Процедура БуферОбмена(Команда)
стр = Ждать СредстваБуфераОбмена.ПолучитьДанныеАсинх(СтандартныйФорматДанныхБуфераОбмена.Текст);
Если ЗначениеЗаполнено(стр) Тогда
//проверяем, что это сотовый телефон вида +7********** или 8********** или **********
шаблон = "+0987654321";
номер = "";
Для ин = 1 по СтрДлина(стр) цикл
текСимвол = сред(стр,ин,1);
Если СтрНайти(шаблон,текСимвол) <> 0 Тогда
номер = номер + текСимвол;
КонецЕсли;
КонецЦикла;
Если СтрДлина(номер) = 12 Тогда
КодСтраны = Сред(номер,1,2);
номер = Сред(номер,3,СтрДлина(номер)-2);
КонецЕсли;
Если СтрДлина(номер) = 11 Тогда
Если Сред(номер,1,1) = "8" Тогда
КодСтраны = "+7";
КонецЕсли;
номер = Сред(номер,2,СтрДлина(номер)-1);
КонецЕсли;
Если СтрДлина(номер) = 10 Тогда
КодГорода = Сред(номер,1,3);
НомерТелефона = Сред(номер,4,СтрДлина(номер)-1);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, редакция 3.0, релизы 3.0.14.31
Вступайте в нашу телеграмм-группу Инфостарт