Проверка строки на RUS/LAT - раскраска

01.10.20

Разработка - Универсальные функции

Поиск и раскраска RUS/LAT символов в переменных (текст до 250 символов). (ОФ толстый клиент (8.3.10.2772))

Файлы

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

Наименование Скачано Купить файл
Проверка строки на RUS/LAT раскраска:
.epf 7,17Kb
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

Для этого предназначен небольшой фрагмент кода который помогает найти и вывести все различия в цвете на элемент с типом Поле HTML. 

В разных версиях платформы длина выводимого HTML текста различается, поэтому пишу минимум (250). Разбираться почему - в отдельных темах. 

Протестировано на платформе 8.3.10.2772, 8.3.15.19858.3.15 - толстый клиент обычные формы

Итак, код и форма:

Нужна Форма, на ней Поле ввода Строка(0) и ПолеHTML, ну и конечно командная кнопка "Выполнить".

Процедура КнопкаВыполнитьНажатие(Кнопка)
	СтрокаHTML = "<html><head><body><meta content='text/html; charset=windows-1251'><body>"
	//<met a http-equiv=""X-UA-Compatible"" content=""IE=9""/>
	+ СформироватьHTML()
	+"</body></html>";
	
	ДокументHTML = ЭлементыФормы.ПолеHTML.Документ;
	ДокументHTML.body.innerHTML = СтрокаHTML;
	
КонецПроцедуры

Функция СформироватьHTML()
	
	СтрокаПараметр = ПолеВвода1;
	КоличествоСимволов = СтрДлина(СтрокаПараметр);
	
	//символы 
	СписокДопустимыхЗначений = Новый Массив;
	СписокДопустимыхЗначений.Добавить(184);		//ё
	СписокДопустимыхЗначений.Добавить(168);		//Ё
	СписокДопустимыхЗначений.Добавить(10);		//LF
	СписокДопустимыхЗначений.Добавить(44);      //,
	СписокДопустимыхЗначений.Добавить(45);		//-
	СписокДопустимыхЗначений.Добавить(46);      //.
	СписокДопустимыхЗначений.Добавить(32);      //SP (Пробел)
	СписокДопустимыхЗначений.Добавить(48);		//0
	СписокДопустимыхЗначений.Добавить(49);		//1
	СписокДопустимыхЗначений.Добавить(50); 		//2
	СписокДопустимыхЗначений.Добавить(51);		//3
	СписокДопустимыхЗначений.Добавить(52);		//4
	СписокДопустимыхЗначений.Добавить(53);		//5
	СписокДопустимыхЗначений.Добавить(54);		//6
	СписокДопустимыхЗначений.Добавить(55);		//7
	СписокДопустимыхЗначений.Добавить(56);		//8
	СписокДопустимыхЗначений.Добавить(57);		//9
	СписокДопустимыхЗначений.Добавить(95);		//_
	
	СтрHTML = "";
	
	Для ИндексСимвола = 1 По СтрДлина(СтрокаПараметр) Цикл
		Код = КодСимвола(СтрокаПараметр, ИндексСимвола);
		Если (Код >= 1040 И Код <= 1103) ИЛИ Код = 1105 ИЛИ Код = 1025  Тогда
			// русские буквы
			НайденыРусскиеБуквы = Истина;
			СтрHTML = СтрHTML+"<font color=green>"+Сред(СтрокаПараметр,ИндексСимвола,1); 
		ИначеЕсли (Код >= 65 И Код <= 90) ИЛИ (Код >= 97 И Код <= 122) Тогда
			// Латинские буквы
			НайденыЛатинскиеБуквы = Истина;
			СтрHTML = СтрHTML+"<font color=red>"+Сред(СтрокаПараметр,ИндексСимвола,1); 
		ИначеЕсли (СписокДопустимыхЗначений.Найти(Код) = Неопределено) Тогда
			// неразрешенные символы
			СтрHTML = СтрHTML+"<font color=black>"+Сред(СтрокаПараметр,ИндексСимвола,1); 
		ИначеЕсли Сред(СтрокаПараметр,ИндексСимвола,1) = Символы.ПС Тогда 
			СтрHTML = СтрHTML+"<br>";
		Иначе 	
			СтрHTML = СтрHTML+"<font color=blue>"+Сред(СтрокаПараметр,ИндексСимвола,1); 
		КонецЕсли;		
	КонецЦикла;
	
	СтрHTML = СтрHTML+"</font>";
	Возврат СтрHTML;
	
КонецФункции

 

Вступайте в нашу телеграмм-группу Инфостарт

Поиск LAT/RUS

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    3743    Abysswalker    9    

45

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    7044    DeerCven    15    

60

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    50699    dimanich70    83    

170

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7470    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    64016    atdonya    31    

70

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

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

30.11.2023    9342    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Dnki 4 03.10.20 12:10 Сейчас в теме
Хороший пример работы с Html. Думаю, как это можно применить на практике.
Работа с 2 полями иногда неприемлема.
Вот у меня реквизит "Название организации". Козырно было бы сразу его раскрасить.
2. chng 05.10.20 10:14 Сейчас в теме
На управляемых формах, наверно всплывающую подсказку можно использовать для этих целей...
3. tormozit 7333 26.10.20 15:10 Сейчас в теме
А есть плагин для Notepad++ для такой раскраски?
Для отправки сообщения требуется регистрация/авторизация