Внесены изменения в конфигурацию "Документооборот государственного учреждения", направленные на автоматизацию ввода номеров мобильных телефонов (Россия) в обработке
"Обработка.ВводКонтактнойИнформации.Форма.ВводТелефона". Задача заключалась в интеграции данных из внешнего источника в базу данных конфигурации, где необходимо было вводить сотовые номера сотрудников.
Основной сложностью являлось то, что номера телефонов могли добавляться только с помощью функции копирования и вставки, что требовало ручного разделения номера на части для последующего ввода в поля обработки «ВводКонтактнойИнформации». Для оптимизации этого процесса на форму «ВводТелефона» была добавлена соответствующая кнопка, а также написан код, который, не претендуя на универсальность, позволяет автоматически разделять скопированный номер по полям формы.
&НаКлиенте
Асинх Процедура БуферОбмена(Команда)
стр = Ждать СредстваБуфераОбмена.ПолучитьДанныеАсинх(СтандартныйФорматДанныхБуфераОбмена.Текст);
Если ЗначениеЗаполнено(стр) Тогда
//проверяем, что это сотовый телефон вида +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