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

26.04.12

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

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

Скачать исходный код

Наименование Файл Версия Размер
ПроверкаСтрокиПоМаске
.epf 6,85Kb
67
.epf 6,85Kb 67 Скачать

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

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

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

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

См. также

Сервисы интеграции без Шины и интеграции

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

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

13.03.2024    2560    dsdred    16    

59

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    5895    dsdred    53    

83

Как готовить и есть массивы

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

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

24.01.2024    5845    YA_418728146    25    

68

Планы обмена VS История данных

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

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6964    dsdred    36    

113

1С-ная магия

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

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    19051    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

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

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12762    human_new    27    

76

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    9382    YA_418728146    6    

143

Внешние компоненты Native API на языке Rust - Просто!

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

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6524    sebekerga    54    

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

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

+
1. Yashazz 4722 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 34 20.12.17 11:22 Сейчас в теме
Задача кстати полезаная, мне вот сейчас и понадобилась. Но да, лучше бы наверное статью.
NittenRenegade; +1
9. fixin 4253 02.12.22 15:51 Сейчас в теме
Спасибо, с ее помощью в УТ 11.4 перебил телефоны под один формат.
Если кто захочет иметь формат без пробелов и с дефисами +7(999)999-99-99, вот изменения:

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

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

Показать


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