Пример: Сравнение строки на соответствие определенной маске

26.04.12

Разработка - Механизмы платформы 1С

Пример реализации алгоритма сравнение строки на соответствие определенной маске.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПроверкаСтрокиПоМаске
.epf 6,85Kb
70
70 Скачать (1 SM) Купить за 1 850 руб.

В элементе формы Поле ввода есть возможность использовать маску ввода данных, но что если нужно проверить маску в переменной то пригодится этот пример.

Актуально если вы хотите что бы пользователи вводили данные по определенным условиям, т.е установленному шаблону. В качестве шаблона можно создать справочник, для динамического изменения шаблонов, без изменения конфигурации.

Например, вы хотите проверить реквизит/переменную на соответствие телефонному номеру в международном формате

+7(902) 123 55 66 тогда маска будет равна +9(999) 999 99 99 или автомобильный номер АВ124А24 тогда маска будет XX999X99

См. также

Механизмы платформы 1С Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    6760    bayselonarrend    126    

60

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    8907    dsdred    60    

108

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    12678    bayselonarrend    21    

164

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    8289    dsdred    18    

82

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    29730    YA_418728146    33    

74
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. FoxDW 120 26.04.12 19:50 Сейчас в теме
Пример реализации алгоритма сравнение строки на соответствие определенной маске.

Перейти к публикации

1. Yashazz 4839 26.04.12 19:50 Сейчас в теме
Автор начинает осваивать регулярные выражения? :)
2. Angeros 27.04.12 03:53 Сейчас в теме
А чем плох стандартный механизм который уже есть в 1с?! Изобретаете колесо?
3. FoxDW 120 27.04.12 04:55 Сейчас в теме
(2) Angeros, Какой стандартный механизм ? Может и упустил из виду
4. Angeros 28.04.12 13:50 Сейчас в теме
поле ввода содержит кроме прочих реквизитов маску. там можно указать формат ввода значений
5. FoxDW 120 02.05.12 04:59 Сейчас в теме
(4) Angeros, Я про это писал в описании, но оно же не проверяет на корректность ввода и не возвращает значение истины если введенные данные соответствуют маске полностью, указав маску XX(99)-XX и введя значение АБ(12)- она ничего не проверит а просто подставит скобочки. Так что это не одно и тоже
7. Artem1405 25 17.05.17 16:21 Сейчас в теме
Бесполезная обработка, лучше бы статью с разъяснением запостил.
NittenRenegade; +1 Ответить
8. Arxxximed 37 20.12.17 11:22 Сейчас в теме
Задача кстати полезаная, мне вот сейчас и понадобилась. Но да, лучше бы наверное статью.
NittenRenegade; +1 Ответить
9. fixin 4282 02.12.22 15:51 Сейчас в теме
Спасибо, с ее помощью в УТ 11.4 перебил телефоны под один формат.
Если кто захочет иметь формат без пробелов и с дефисами +7(999)999-99-99, вот изменения:

&НаКлиенте
Процедура ПреобразоватьТелефоныПоПредставлению(Команда)
	
	Для каждого СтрТЧ из ТабТелефонныхНомеров Цикл
		
		ПредставлениеБезСимволов = ПредставлениеБезСимволов(СтрТЧ.Представление); //без кода страны
				
		СтрТЧ.КодГорода = Лев(ПредставлениеБезСимволов, 3); 
		СтрТЧ.КодСтраны = "+7";
		СтрТЧ.НомерТелефона = Прав(ПредставлениеБезСимволов, СтрДлина(ПредставлениеБезСимволов)-3);
		//+++ Осипов - для телефона с разделителями
		Если СтрДлина(СтрТЧ.НомерТелефона) = 7 Тогда
			СтрТЧ.НомерТелефона = Сред(СтрТЧ.НомерТелефона, 1, 3) + "-" + Сред(СтрТЧ.НомерТелефона, 4, 2) + "-" + Сред(СтрТЧ.НомерТелефона, 6, 2);
		Иначе
			Сообщить("Ошибка: " + ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(СтрТЧ.Партнер, "Код") + "(" + СтрТЧ.Партнер + ")"+ " " + ПредставлениеБезСимволов);
		КонецЕсли;
		//---
		
		ПриОкончанииРедактированияСтроки(СтрТЧ); 
				
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОкончанииРедактированияСтроки(ТекСтрока)
	
	Если ЗначениеЗаполнено(ТекСтрока.Добавочный) Тогда 
		Доб =  " доб."+ТекСтрока.Добавочный; 
	Иначе 
		Доб = "";
	КонецЕсли;
	
	//Осипов - убрал пробелы
	ТекСтрока.Представление = ТекСтрока.КодСтраны + "("+ТекСтрока.КодГорода + ")"+ТекСтрока.НомерТелефона + Доб; 
	
КонецПроцедуры

Показать


Есть один момент - когда выбираешь другой вид КИ, то записи в таблицу добавляются, когда много позиций, это не очевидно... Лучше об этом где-то указать в описании, а лучше рядом с кнопкой
Оставьте свое сообщение