egerLESHIK
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору есть некая "семерочная" конфигурация, в которой есть справочник телефонов контрагентов. Телефоны в этом справочнике проходят проверку через функцию в глобальном модуле. На данный момент маска телефона 999-99-99. Код самого справочника такой: Код: Процедура ПриЗаписи() Перем КоличествоСимволов; Тел=глПроверкаЗаписиТелефона(Телефон, 9); Если Тел=0 тогда СтатусВозврата(0); Возврат; Иначе Телефон=Тел; КонецЕсли; // проверка нет ли организации с таким телефоном СпрТел=СоздатьОбъект("Справочник.Телефоны"); Если СпрТел.НайтиПоРеквизиту("Телефон", Телефон, 1)=1 тогда Сообщить("Такой номер("+Телефон+") уже есть! Организация: "+СпрТел.Владелец.Наименование+"."); Если Вопрос("Такой номер уже есть! Организация: "+СпрТел.Владелец.Наименование+". Все равно записать?", "Да+Нет")="Нет" тогда СтатусВозврата(0); Возврат; КонецЕсли; КонецЕсли; КонецПроцедуры | Код на проверку телефона в глобальном модуле такой: Код: // Функция проверки правильности записи телефона // Функция глПроверкаЗаписиТелефона(Тел, КоличествоСимволов=9) Экспорт Если СтрДлина(Тел)<>КоличествоСимволов Тогда Предупреждение("Не верный номер!"); Возврат 0; КонецЕсли; Для Сч=1 по КоличествоСимволов-3 цикл Символ=Сред(Тел, 1+КоличествоСимволов-Сч, 1); Если (Сч=3) или (Сч=6) Тогда Если Символ<>"-" Тогда Предупреждение("Не верный формат!"); Возврат 0; КонецЕсли; ИначеЕсли Сч<5 тогда Если (Символ<"0") или (Символ>"9") Тогда Предупреждение("Не допустимые символы!"); Возврат 0; КонецЕсли; КонецЕсли; КонецЦикла; ПервыеЦифры=Сред(Тел, 1, КоличествоСимволов-6); Дл=СтрДлина(СокрЛП(ПервыеЦифры)); Ст=СокрЛП(ПервыеЦифры); Если Дл=0 Тогда Предупреждение("Не верный номер!"); Возврат 0; КонецЕсли; Для Сч=1 по Дл цикл Символ=Сред(Ст, Дл-Сч, 1); Если (Символ<"0") или (Символ>"9") Тогда Предупреждение("Не допустимые символы!"); Возврат 0; КонецЕсли; КонецЦикла; Если СокрП(ПервыеЦифры)<>ПервыеЦифры Тогда ИсправленныйТел=""; Для Сч=1 по СтрДлина(ПервыеЦифры)-СтрДлина(СокрП(ПервыеЦифры)) цикл ИсправленныйТел=ИсправленныйТел+" "; КонецЦикла; ИсправленныйТел=ИсправленныйТел+СокрП(ПервыеЦифры); ИсправленныйТел=ИсправленныйТел+Прав(Тел, 6); Тел=ИсправленныйТел; КонецЕсли; Возврат Тел; КонецФункции //глПроверкаЗаписиТелефона | Пытаюсь поправить проверку в глобальнике под другую маску, постоянно выдает сообщение "Не допустимые символы!" Что нужно поправить в функции глобальника, чтобы нормально отрабатывался код по измененной маске? Сама маска новая имеет следующий вид 9-999-999-99-99. Спасибо. |