Есть ли функция проверки, в каком языке написана буква
По теме из базы знаний
- Методология i3 как основа новой экономики. Индустрия 5.0
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- DevOps в команде специалистов 1С или сказ о том, как желтые котики хотели лучше работать…
- Практика применения APS решений на проектах с 1С:ERP. Кейс с разработкой контрактов данных для интеграции
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не встречал такой функции. КодСимвола(Симв) должен Вам помочь.
КодСимвола("А") = 65, если латиница и = 1040, если кириллица.
Ставим что-то вроде Если КодСимвола(Симв) >= 1040 Тогда Сообщить("Это русская буквица") КонецЕсли;
КодСимвола("А") = 65, если латиница и = 1040, если кириллица.
Ставим что-то вроде Если КодСимвола(Симв) >= 1040 Тогда Сообщить("Это русская буквица") КонецЕсли;
Рег = Новый COMОбъект("VBScript.RegExp");
Рег.global=-1;
Рег.ignorecase=-1;
Рег.pattern="[а-я]";
Рег.test()
Спасибо за помощь. Очень помогли.
Я сделала так:
Я сделала так:
// проверка на английские буквы а,с, А, В, С, M,
КоличествоСимволов = СтрДлина(номенклатура.наименование);
Для сч=1 По число(КоличествоСимволов) Цикл
Код1 = КодСимвола(Сред(стр,Сч,1));
Если Код1=65 или Код1=66 или Код1=67 или Код1=69 или Код1=75 или Код1=77
или Код1=79 или Код1=97 или Код1=99 Тогда
// есть английские буквы
КонецЕсли;
КонецЦикла;
Показать
(8)У Вас не на все английские буквы проверка, а только на ABCEKMOac ?
или
Коды русских букв зависят от кодировки исходного текста.
Ещё может быть полезна функция Нстр
которая выберет текст на том языке, который задан в настройках пользователя или конфигурации.
Если (Код1>=65 и Код1<=90) или (Код1>=97 и Код1<=122) Тогда // есть английские буквы
или
Символ1 = Сред(стр,Сч,1);
Если Найти("йцукенгшщзждлорпавыфячсмитьбюёЁЮБЬТИМСЧЯФЫВАПРОЛДЖЭЪХЗЩШГНЕКУЦЙ",Символ1)>0 Тогда // есть русские буквы
Коды русских букв зависят от кодировки исходного текста.
Ещё может быть полезна функция Нстр
Нстр("ru='Текст на русском';en='English text'")
которая выберет текст на том языке, который задан в настройках пользователя или конфигурации.
(9) v3rter, да проверка только на несколько букв ABCEKMOac, другие способы оказались не совсем удобные.
Наименование состоит из русских и английских букв (L, s), также есть пробелы, тире, точки, запятые.
Мне нужно было проверить часть наименования номенклатуры (наименование двигателя).
Кто-то так постарался всё разными буквами написать, поиск осуществлять очень неудобно.
например, 4Аа50, одна буква русская, одна английская. Или АИР, а -английская, другие русские буква. Или 50МВ, м - русская, В - английская.
Наименование состоит из русских и английских букв (L, s), также есть пробелы, тире, точки, запятые.
Мне нужно было проверить часть наименования номенклатуры (наименование двигателя).
Кто-то так постарался всё разными буквами написать, поиск осуществлять очень неудобно.
например, 4Аа50, одна буква русская, одна английская. Или АИР, а -английская, другие русские буква. Или 50МВ, м - русская, В - английская.
(9) 1. Результат функции КодСимвола() в 1С не зависит от кодировки (внутри 1С все строки представлены двухбайтовыми символами Unicode).
2. Кодировку надо учитывать, если Вы работаете с двоичными данными и анализируете значения байтов.
PS В наборе символов Unicode помимо букв латинского и русского алфавитов есть еще очень много других символов, причем некоторые из них - буквы других алфавитов, использующихся в 1С.
2. Кодировку надо учитывать, если Вы работаете с двоичными данными и анализируете значения байтов.
PS В наборе символов Unicode помимо букв латинского и русского алфавитов есть еще очень много других символов, причем некоторые из них - буквы других алфавитов, использующихся в 1С.
вот ленивые,
Поручик же показал направление
Поручик же показал направление
// Проверяет, содержит ли строка только символы кириллического алфавита.
//
// Параметры:
// УчитыватьРазделителиСлов - Булево - учитывать ли разделители слов или они являются исключением.
// ДопустимыеСимволы - строка для проверки.
//
// Возвращаемое значение:
// Булево - Истина, если строка содержит только кириллические (или допустимые) символы или пустая;
// Ложь, если строка содержит иные символы.
//
Функция ТолькоКириллицаВСтроке(Знач СтрокаПроверки, Знач УчитыватьРазделителиСлов = Истина, ДопустимыеСимволы = "") Экспорт
Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
Возврат Ложь;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда
Возврат Истина;
КонецЕсли;
КодыДопустимыхСимволов = Новый Массив;
КодыДопустимыхСимволов.Добавить(1105); // "ё"
КодыДопустимыхСимволов.Добавить(1025); // "Ё"
Для Индекс = 1 По СтрДлина(ДопустимыеСимволы) Цикл
КодыДопустимыхСимволов.Добавить(КодСимвола(Сред(ДопустимыеСимволы, Индекс, 1)));
КонецЦикла;
Для Индекс = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, Индекс, 1));
Если ((КодСимвола < 1040) Или (КодСимвола > 1103))
И (КодыДопустимыхСимволов.Найти(КодСимвола) = Неопределено)
И Не (Не УчитыватьРазделителиСлов И ЭтоРазделительСлов(КодСимвола)) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
// Проверяет, содержит ли строка только символы латинского алфавита.
//
// Параметры:
// УчитыватьРазделителиСлов - Булево - учитывать ли разделители слов или они являются исключением.
// ДопустимыеСимволы - строка для проверки.
//
// Возвращаемое значение:
// Булево - Истина, если строка содержит только латинские (или допустимые) символы;
// - Ложь, если строка содержит иные символы.
//
Функция ТолькоЛатиницаВСтроке(Знач СтрокаПроверки, Знач УчитыватьРазделителиСлов = Истина, ДопустимыеСимволы = "") Экспорт
Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
Возврат Ложь;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда
Возврат Истина;
КонецЕсли;
КодыДопустимыхСимволов = Новый Массив;
Для Индекс = 1 По СтрДлина(ДопустимыеСимволы) Цикл
КодыДопустимыхСимволов.Добавить(КодСимвола(Сред(ДопустимыеСимволы, Индекс, 1)));
КонецЦикла;
Для Индекс = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, Индекс, 1));
Если ((КодСимвола < 65) Или (КодСимвола > 90 И КодСимвола < 97) Или (КодСимвола > 122))
И (КодыДопустимыхСимволов.Найти(КодСимвола) = Неопределено)
И Не (Не УчитыватьРазделителиСлов И ЭтоРазделительСлов(КодСимвола)) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
Показать
Есть латинская буква похожая на букву йо
Ёё (RUS) Ë, ë (e-diaeresis) (латинские)
А если работаете на республики, в том числе и российские (Бурятия, Удмуртия) , то их буквы тоже надо учитывать, а иначе программа будет счиать латиснкими
Ёё (RUS) Ë, ë (e-diaeresis) (латинские)
А если работаете на республики, в том числе и российские (Бурятия, Удмуртия) , то их буквы тоже надо учитывать, а иначе программа будет счиать латиснкими
Функция СтрокаБукв_RU() Экспорт
Возврат "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ";
КонецФункции
Функция Буква_RU(С) Экспорт
Возврат Найти(СтрокаБукв_RU(), ВРег(С)) <> 0;
КонецФункции
Функция СтрокаБукв_EN() Экспорт
Возврат "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
КонецФункции
Функция Буква_EN(С) Экспорт
Возврат Найти(СтрокаБукв_EN(), ВРег(С)) <> 0;
КонецФункции
ПоказатьСтрокаБукв_RU() и СтрокаБукв_RU() можно убрать, завернув строку в метод проверки.
Мне нужны для сбора статистики разнобоев.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот