Проверка корректности ФИО покупателя при опросе по дисконтной карте в Рознице 2.3

У клиента продавцы иногда ошибаются — не глядя на экран вводят фио клиента на латинском языке. Попросил, чтобы 1С это контролировала. И чтобы продавец обязательно заполнял пол.

Сказано — сделано.

Вводим новую дисконтную карту:

Первым пунктом опроса идет как раз ФИО.

При нажатии кнопки «Далее» вызывается процедура СледующийРаздел, её и добавим в расширение формы ФормаОпросаПоДисконтнойКарте:

&НаСервере
Функция ЕстьНедопустимыеСимволы(ИсходнаяСтрока, Символы) Экспорт
	
	Для Сч=1 по СтрДлина(ИсходнаяСтрока) Цикл
		Символ = НРег(Сред(ИсходнаяСтрока, Сч, 1));
		Если Найти(Символы, Символ) = 0 Тогда
			Возврат истина;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Ложь;
	
КонецФункции


&НаКлиенте
&Вместо("СледующийРаздел")
Процедура ддкнт_СледующийРаздел(Команда)
	
	//Делаем свои собственные проверки наименования и пола
	
	ТекущийВопрос = ТаблицаВопросовИОтветов[НомерВопроса - 1];
	ТекущийОтвет = нрег(СокрЛП(ТекущийВопрос.ПредопределенныйОтвет));
	
	Если ТекущийВопрос.Вопрос = НСтр("ru = 'Фамилия, Имя, Отчество'") Тогда
		
		
		Если ЕстьНедопустимыеСимволы(ТекущийОтвет, "абвгдеёжзийклмнопрстуфхцчшщъыьэюя -") Тогда
			//Если сделаем возврат, кнопка дальше не есработает
			ПоказатьПредупреждение(, НСтр("ru = 'В ФИО покупателя должны быть только русские буквы, пробел или дефис!'"));
			Возврат;
		КонецЕсли;
		
	ИначеЕсли ТекущийВопрос.Вопрос = НСтр("ru = 'Пол'") Тогда
		
		Если Не ЗначениеЗаполнено(ТекущийОтвет) Тогда
			ПоказатьПредупреждение(, НСтр("ru = 'Укажите обязательно пол!'"));
			Возврат;
		КонецЕсли;
		
	КонецЕсли;
	
	ПродолжитьВызов(Команда);
КонецПроцедуры

Расширение работает:

Среда: Розница 2.3 Объем: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *