1С 8.3 Строка - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Строка

Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Строка в 1С 8.3 - это значение примитивного типа в виде набора символов (в формате Unicode) произвольной длины. Нумерация символов в строках начинается с единицы. Для строки не доступен обход её символов оператором Для... Каждого ... Из ... Цикл. Строковые переменные являются набором символов которые заключаются в одинарные кавычки "".
Оглавление:
Получение длины строки в 1С 8.3:
&НаКлиенте
Процедура ПолучениеДлиныСтроки(Команда)

   
Длина_Строки_Число=СтрДлина("АБВГД"); // 5 (символов)

КонецПроцедуры
Получение части строки в 1С 8.3:
&НаКлиенте
Процедура ПолучениеЧастиСтроки(Команда)

   
ВычисляемаяСтрока = "1С Предприятие 8.3";

   
// N символов слева
   
Первые_два_символа=Лев(ВычисляемаяСтрока, 2); // 1С

    // N символов справа
   
Последние_три_символа=Прав(ВычисляемаяСтрока, 3); // 8.3

    // N символов из середины (с 4-го символа получим 11 символов)
   
Средние_символы=Сред(ВычисляемаяСтрока, 4, 11); // Предприятие

КонецПроцедуры
Получение числа вхождений текста в строку в 1С 8.3:
&НаКлиенте
Процедура ПолучениеЧислаВхожденийТекстаВСтроку(Команда)

   
ВычисляемаяСтрока = "Между нами провода да да да да да. И ты сказала да да да.";
   
Количество_вхождений=СтрЧислоВхождений(ВычисляемаяСтрока, "да"); // 8

КонецПроцедуры
Получение кода символа (Unicode) в 1С 8.3:
&НаКлиенте
Процедура ПолучениеКодаСимвола(Команда)

   // таблица символов 1С доступна тут: https://koder.by/tablica_simvolov_1s.php
   Код_из_символа=КодСимвола("C"); // 67  (Латиница)
   Код_первого_символа_в_строке = КодСимвола("Артур"); // 1040 (Кирилица)
   Код_пятого_символа_в_строке=КодСимвола("ABCDEFG", 5); //69  (Латиница)
   Символ_из_кода=Символ(67); // "A"  (Латиница)

КонецПроцедуры
Преобразование в регистр (верхний, нижний, титульный) в 1С 8.3:
&НаКлиенте
Процедура ПреобразованиеВРегистр(Команда)

   
//Регистры (верхний, нижний, титульный)
   
ВычисляемаяСтрока = "У лукоморья Дуб зелёный";
   
Преобразование_в_Верх_регистр=ВРег(ВычисляемаяСтрока); // У ЛУКОМОРЬЯ ДУБ ЗЕЛЁНЫЙ
   
Преобразование_в_Нижн_регистр=НРег(ВычисляемаяСтрока); // у лукоморья дуб зелёный
   
Преобразование_в_Титл_регистр=ТРег(ВычисляемаяСтрока); // У Лукоморья Дуб Зелёный

КонецПроцедуры
Преобразование строки в число в 1С 8.3:
&НаКлиенте
Процедура ПреобразованиеСтрокиВЧисло(Команда)

   
фЧисло=Число("987.65"); // 987,65
   
фЧисло=Число("987,65"); // 987,65
   
фЧисло= 100 + "24"; // 124

    //Для сложения числа и строки для получения строки:
   
фСтрока= Строка(100) + "24"; // "10024"

КонецПроцедуры
Поиск текста в строке в 1С 8.3:
&НаКлиенте
Процедура ПоискТекстаВСтроке(Команда)

   
ВычисляемаяСтрока = "1С Предприятие 8.3";
   
ТекущийИндекс = Найти(ВычисляемаяСтрока, "1С"); // 1

КонецПроцедуры
Проверка на пустую строку в 1С 8.3:
&НаКлиенте
Процедура ПроверкаНаПустуюСтроку(Команда)

   
ВычисляемаяСтрока = "                   ";
    Если
ПустаяСтрока(ВычисляемаяСтрока) Тогда
       
// Т.е. может содержать только незначащие символы (например: Пробелы или Переносы)
       
Сообщить("Эта строка пустая!");
    КонецЕсли;

КонецПроцедуры
Проверка начала и конца строки: СтрНачинаетсяС, СтрЗаканчиваетсяНа (доступно с платформы 8.3.6.1977) в 1С 8.3:
&НаКлиенте
Процедура ПроверкаНачалаИКонцаСтроки(Команда)

   
// СтрНачинаетсяС - это проверка начала строки - со слова "Как"
   
РезультатПроверки = СтрНачинаетсяС("Как хорошо жить", "Как"); // Истина

    // СтрЗаканчиваетсяНа - это проверка конца строки: на слово "хорошо"
   
РезультатПроверки = СтрЗаканчиваетсяНа("Как хорошо жить", "хорошо"); // Ложь

КонецПроцедуры
Перевод строки на разные языки НСтр (доступно с платформы 8.3.6.1977) в 1С 8.3:
&НаКлиенте
Процедура ПереводСтрокиНаРазныеЯзыки(Команда)

   
РезультатПеревода = НСтр("ru = 'Как дела?'; en = 'How are you?'"); // зависит от установленного языка

КонецПроцедуры
Операции с многострочной строкой (с переносами) в 1С 8.3:
&НаКлиенте
Процедура МногострочнаяСтрока(Команда)

   
//Вставка переноса в строку
   
ВычисляемаяСтрока =
   
"Оплата по договору №1" + Символы.ПС +      //1-я строка
   
"Контрагент ""Новая жизнь""" + Символы.ПС + //2-я строка (если нужно использовать " в строке то, используются двойные кавычки "")
   
"Сумма 1000 руб. с НДС 20%"; //3-я строка

   
Результат_число_строк=СтрЧислоСтрок(ВычисляемаяСтрока); // 3(строки)
   
Результат_2_строка=СтрПолучитьСтроку(ВычисляемаяСтрока, 2)); // "Контрагент ""Новая жизнь"""

КонецПроцедуры
Разбиение строки с разделителями в 1С 8.3:
&НаКлиенте
Процедура РазбиениеСтрокиСРазделителями1(Команда)//Пример №1

   
Разделитель = ";";
   
СтрокиСРазделителем = СтрЗаменить("2020; 2021; 2022", Разделитель, Символы.ПС);
    Для
А = 1 По СтрЧислоСтрок(СтрокиСРазделителем) Цикл
       
Сообщить(СтрПолучитьСтроку(СтрокиСРазделителем, А));
    КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура РазбиениеСтрокиСРазделителями2(Команда)//Пример №2 (доступно с платформы 8.3.6.1977)

    // Параметры СтрРазделить: Строка, Разделитель(символы), Булево (по умолчанию - Истина - включать в результат пустые строки)
   
РезультатМассив = СтрРазделить("2020; 2021; 2022", ";"); // Массив с элементами [0] = "2020", [1] = "2021 ", [2] = "2022"
    // Существует обратная функция СтрСоединить, которая наоборот преобразует массив к строке.
   
РезультатСтрока = СтрСоединить(РезультатМассив, ";"); // Строка "2020; 2021; 2022"

КонецПроцедуры
Замена текста в строке в 1С 8.3:
&НаКлиенте
Процедура ЗаменаТекстаВСтроке(Команда)

   
Результат_замены=СтрЗаменить("Скоро весна!", "весна", "лето"); // "Скоро лето!"

КонецПроцедуры
Сериализация значения в строку и десериализация значения из строки в 1С 8.3:
&НаСервере
Процедура СериализацияЗначенияВСтрокуИДесериализация()

   
Массив = Новый Массив(5);
   
Массив[0] = "Никулин";
   
Массив[1] = "Юрий";
   
Массив[2] = "Владимирович";
   
Массив[3] = 1921;
   
Массив[4] = 75;

   
Полученная_строка = ЗначениеВСтрокуВнутр(Массив);

   
// Десериализация (структуризация) значения из строки
   
МассивКопия = ЗначениеИзСтрокиВнутр(Полученная_строка);
   
ЭлементМассива = МассивКопия[0]; // "Никулин"

КонецПроцедуры
Сравнение строк: посимвольно СтрСравнить (доступно с платформы 8.3.6.1977) в 1С 8.3:
&НаКлиенте
Процедура СравнениеСтрок(Команда)

   
// Без учета регистра:
    // СтрСравнить (без учета регистра) возвращает число:
    // -1 - первая строка меньше второй;    1 - первая строка больше второй;    0 - первая строка равна второй
   
РезультатСравнения = СтрСравнить("Шёл 2020 год", "Шёл 2021 год"); // -1

    // С учетом регистра:
    // Если строки нужно сравнить только посимвольно (по коду символа), то используется конструкция больше-меньше
   
Если "365 день" < "7 день" Тогда// 3 < 7
        // Истина
   
КонецЕсли;

    Если
"2000Рублей" > "1000000Рублей" Тогда// 2 > 1
        // Истина
   
КонецЕсли;

    Если
"Палата_№6" > "Палата_№58" Тогда// 6 > 5
        // Истина
   
КонецЕсли;

КонецПроцедуры
Удаление незначащих символов в 1С 8.3:
&НаКлиенте
Процедура УдалениеНезначащихСимволов(Команда)

   
// Удаление левых пробелов
   
Результат_удаления=СокрЛ("     интересная история     "); // "интересная история     "
    // Удаление правых пробелов
   
Результат_удаления=СокрП("     интересная история     "); // "     интересная история"
    // Удаление пробелов с двух сторон
   
Результат_удаления=СокрЛП("     интересная история     "); // "интересная история"

КонецПроцедуры
Форматирование строки по шаблону СтрШаблон (доступно с платформы 8.3.6.1977) в 1С 8.3:
&НаКлиенте
Процедура ФорматированиеСтрокиПоШаблону(Команда) // Метод СтрШаблон работает под любыми видами клиентов, в серверном и клиентском контекс.

   // Количество маркеров в шаблоне и количество параметров, начиная со второго в функции СтрШаблон должны совпадать:
   // Если у нас два маркера в шаблоне, то всего параметров у метода СтрШаблон должно быть три.

   РезультатФорматирования = СтрШаблон("Дата: %1, Число: %2", Дата(2020,4,19) , 9008.65); // "Дата: 19.04.2020 00:00:00, Число: 9 008,65"

   // Или с использованием переменных:
  ФамилияИнициалы = "Пушкин А.С.";
  СуммаРабот = 100;
  Валюта = "BYN";

   РезультатФорматирования = СтрШаблон("Сотрудник %1 выполнил работу на %2 %3", ФамилияИнициалы, СуммаРабот, Валюта);
   // "Сотрудник Пушкин А.С. выполнил работу на 100 BYN"

КонецПроцедуры
💡 Шаблоны (готовые модели) кода 1С 8.3 с тегом #Строка, текст, буквы:
📰 Актуальные новости с тегом #Строка, текст, буквы:
  • В версии 8.3.24 новый алгоритм сортировки улучшил релевантность полнотекстового поиска
  • В версии 8.3.23 улучшена работа полнотекстового поиска
  • В версии 8.3.22 анонсирован новый механизм полнотекстового поиска
  • В версии 8.3.22 ускорен полнотекстовый поиск
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 19.04.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому