Что такое строка в 1с?
Строка 1с – тип данных, значениями которого является произвольная последовательность символов . В исходном коде строка это набор символов заключенных в двойные кавычки.
Например строка “1C” состоит из символов 1 и С.
Функции работы со строками 1c
Список и описание работы с основных строковых функций можно найти в синтакс-помощнике 1с. Его можно вызвать в режиме 1с Конфигуратора через пункт меню “Справка” или нажатием клавиш CTRL+SHIFT+F1. Ниже рассмотрим решение практических задач связанных с обработкой строковых значений.
Как найти все символы русского алфавита?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | // Ищем код символа для первой буквы алфавита Сообщить (КодСимвола("а",1)); // результат = 1072 //делаем переобход символов с 1072 до 1104 (1072+33 буквы алфавита и минус 1 так как 1072 символ тоже считается) Алфавит=""; Для н=1072 по 1104 цикл //записываем все символы в строку Алфавит=Алфавит+символ(н); Конеццикла; Сообщить (СтрДлина(Алфавит)); // количество символов 33 Сообщить(Алфавит); // результат абвгдежзийклмнопрстуфхцчшщъыьэюяѐ // последний символ ѐ не подходит заменяем его на букву ё и ставим после буквы е //удаляем ненужный символѐ Алфавит=СтрЗаменить(Алфавит,"ѐ",""); // позиция буквы е в алфавите ПозЕ=СтрНайти(алфавит,"е"); // алфавит от а до е АлфавитАЕ=лев(Алфавит,ПозЕ)+"ё"; // алфавит от я до е АлфавитЯЕ=прав(Алфавит,стрдлина(Алфавит)-ПозЕ); СтрочныйАлфавит=АлфавитАЕ+АлфавитЯЕ; ЗаглавныйАлфавит=Врег(СтрочныйАлфавит); // строчные буквы алфавита абвгдеёжзийклмнопрстуфхцчшщъыьэюя Сообщить(СтрочныйАлфавит); // заглавные буквы алфавита АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ Сообщить(ЗаглавныйАлфавит); // можно было просто ввести алфавит через клавиатуру, но задача научиться работать со строковыми функциями 1с |
Как найти гласные и согласные буквы в строке 1с ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | // функция определения какая это буква Функция КакаяБуква(Буква) Гласные="аеёиоуыэюя"; Согласные="бвгджзйклмнпрстфхцчшщ"; Беззвука="ъь"; // ищем вхождение буквы в группы гласных и согласных Если СтрНайти(Гласные,НРег(Буква))>0 Тогда возврат ("Гласная"); ИначеЕсли СтрНайти(Согласные,НРег(Буква))>0 Тогда возврат ("Согласная"); ИначеЕсли СтрНайти(Беззвука,НРег(Буква))>0 Тогда возврат ("БезЗвука"); Иначе возврат ("НеРусскийАлфавит"); КонецЕсли; Конецфункции Процедура ОсновныеДействияФормыгласные(Кнопка) СтрокасТекстом="Гласные и согласные буквы & English 2019 И ZNAKI:ЪЬ"; // очищаем все пробелы СтрокасТекстомБезПробелов=СтрЗаменить(СтрокасТекстом," ",""); // определяем переменные СтрокаСГласными=""; СтрокаССогласными=""; СтрокаБезЗвука=""; СтрокаДругие=""; // делаем обход по всем буквам строки и определяем какая это буква для н= 1 по СтрДлина(СтрокасТекстомБезПробелов)цикл Если КакаяБуква(Сред(СтрокасТекстомБезПробелов,н,1)) = "Гласная" тогда СтрокаСГласными=СтрокаСГласными+Сред(СтрокасТекстомБезПробелов,н,1); Продолжить; КонецЕсли; Если КакаяБуква(Сред(СтрокасТекстомБезПробелов,н,1)) = "Согласная" тогда СтрокаССогласными=СтрокаССогласными+Сред(СтрокасТекстомБезПробелов,н,1); Продолжить; КонецЕсли; Если КакаяБуква(Сред(СтрокасТекстомБезПробелов,н,1)) = "БезЗвука" тогда СтрокаБезЗвука=СтрокаБезЗвука+Сред(СтрокасТекстомБезПробелов,н,1); Продолжить; КонецЕсли; Если КакаяБуква(Сред(СтрокасТекстомБезПробелов,н,1)) = "НеРусскийАлфавит" тогда СтрокаДругие=СтрокаДругие+Сред(СтрокасТекстомБезПробелов,н,1); КонецЕсли; КонецЦикла; Сообщить ("СтрокаСГласными:"+СтрокаСГласными); Сообщить ("СтрокаССогласными:"+СтрокаССогласными); Сообщить ("СтрокаБезЗвука:"+СтрокаБезЗвука); Сообщить ("СтрокаДругие:"+СтрокаДругие); // Результат: //СтрокасТекстом="Гласные и согласные буквы & English 2019 И ZNAKI:ЪЬ"; //СтрокаСГласными:аыеиоаыеуыИ //СтрокаССогласными:Глснсглснбкв //СтрокаБезЗвука:ЪЬ //СтрокаДругие:&English2019ZNAKI: КонецПроцедуры |
Как исправить написание каждого отдельного слова в строке 1c с заглавной буквы (например ФИО)?
1 2 3 | ФИО="ИванОВ иВАН мИхАйлОвиЧ"; Сообщить(ТРег(ФИО)); //Результат : Иванов Иван Михайлович |
Как часто встречается символ или слово в строке 1с
1 2 3 | ФИО="Иванов Иван Михайлович"; Сообщить(СтрЧислоВхождений(ФИО, "Иван")); //Результат : 2 |
Какая строка 1с больше по длине?
1 2 3 4 5 6 7 8 9 10 | Строка1="Строка 1с для сравнения первая"; Строка2="Строка для сравнения вторая"; Если СтрДлина(Строка1)<СтрДлина(Строка2) тогда Сообщить("Первая строка меньше второй."); ИначеЕсли СтрДлина(Строка1)>СтрДлина(Строка2) тогда Сообщить("Первая строка больше второй."); Иначе Сообщить("Первая строка равна по длине второй."); КонецЕсли; //Результат Первая строка больше второй. |
Как переставить слова местами в строке 1с?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ИсходнаяСтрока="Мама рыла яму, папа рыл канаву"; Сообщить(ИсходнаяСтрока); // парсим строку в массив МассивСлов=СтрРазделить(ИсходнаяСтрока," "); //выгружаем массив в таблицу значений и сортируем в обратном порядке Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Порядок"); Таблица.Колонки.Добавить("Слова"); порядок=0; Для каждого Элемент Из МассивСлов Цикл Порядок=Порядок+1; СтрокаТЗ = Таблица.Добавить(); СтрокаТЗ.Порядок = Порядок; СтрокаТЗ.Слова = Элемент; КонецЦикла; Таблица.Сортировать("Порядок Убыв"); МассивСлов = Таблица.ВыгрузитьКолонку("Слова"); //Преобразуем массив обратно в строку СтрокаПослеСортировки=СтрСоединить(МассивСлов," "); Сообщить(СтрокаПослеСортировки); //Результат //Было:Мама рыла яму, папа рыл канаву //Стало:канаву рыл папа яму, рыла Мама |
Как выбрать инициалы из полного ФИО в 1с?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ФИО="Иванов Иван Михайлович"; Сообщить(ФИО); // парсим строку в массив МассивСлов=СтрРазделить(ФИО," "); Первый=Истина; Для каждого слово из МассивСлов цикл // Фамилию (первое слово оставляем без изменений) Если не первый тогда ФИнициалы=ФИнициалы+Лев(Слово, 1)+"."; Иначе ФИнициалы=Слово+" "; Первый=Ложь; КонецЕсли; Конеццикла; Сообщить(ФИнициалы); //Было:Иванов Иван Михайлович //Стало:Иванов И.М. |
Как перевернуть строку в 1с?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ИсходнаяСтрока="Мама рыла яму, папа рыл канаву"; Сообщить(ИсходнаяСтрока); //перебираем строку по символам, начиная с конца и вносим их в новую строку НомерПоследнийСимвол=СтрДлина(ИсходнаяСтрока); СтрокаПослеСортировки=""; пока НомерПоследнийСимвол>0 Цикл СтрокаПослеСортировки=СтрокаПослеСортировки+Сред(ИсходнаяСтрока,НомерПоследнийСимвол,1); // CTRL+ALT +Break для прерывания цикла НомерПоследнийСимвол=НомерПоследнийСимвол-1; ОбработкаПрерыванияПользователя(); КонецЦикла; Сообщить(СтрокаПослеСортировки); //Результат //Было :Мама рыла яму, папа рыл канаву //Стало:уванак лыр апап ,умя алыр амаМ |
Как найти самое длинное слово в строке 1с
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ИсходнаяСтрока="Мама рыла яму, папа рыл канаву"; Сообщить(ИсходнаяСтрока); // парсим строку в массив МассивСлов=СтрРазделить(ИсходнаяСтрока," "); //выгружаем массив в таблицу значений и находим длину каждого слова Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Длина"); Таблица.Колонки.Добавить("Слова"); порядок=0; Для каждого Элемент Из МассивСлов Цикл Порядок=Порядок+1; СтрокаТЗ = Таблица.Добавить(); СтрокаТЗ.длина = СтрДлина(элемент); СтрокаТЗ.Слова = Элемент; КонецЦикла; // Сортируем по длине - и первое слово в таблице будет самым длинным Таблица.Сортировать("Длина Убыв"); Сообщить("Самое длинное слово: "+Таблица[0].Слова); //Результат //Было:Мама рыла яму, папа рыл канаву //Самое длинное слово: канаву |
Как узнать английскую букву в строке 1с?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Функция ЭтоЛатиница(Буква) // латинские буквы в кодировке unicode имеют коды от 65 до 90 и от 97 до 122 Если КодСимвола(Буква,1)>=97 и КодСимвола(Буква,1)<=122 тогда // маленькие латинские буквы Возврат(Истина); ИначеЕсли КодСимвола(Буква,1)>=65 и КодСимвола(Буква,1)<=90 тогда // большие латинские буквы Возврат(Истина); Иначе Возврат(Ложь); КонецЕсли; КонецФункции Процедура ОсновныеДействияФормыEnglish(Кнопка) // строка в которой некоторые символы являются английскими ИсходнаяСтрока="Строka 1с"; Сообщить(ИсходнаяСтрока); // обходим строку по символам для н= 1 по СтрДлина(ИсходнаяСтрока)цикл Если ЭтоЛатиница(Сред(ИсходнаяСтрока,н,1)) тогда //записываем все символы в строку Сообщить(""+н+" Символ:"+Сред(ИсходнаяСтрока,н,1)+" является латинским"); КонецЕсли; конеццикла; //Результат //Строka 1с //5 Символ:k является латинским //6 Символ:a является латинским |
Поделиться ссылкой:
Похожие записи
Работа с типом Строка в 1с