Функции строк в 1С. Часть 2

В этой статье я продолжу изучать функции строк. Если функции из предыдущей статьи были и в старых версиях 1С  (1С 8.1, 1С 8.2), то в этой статье разберем функции, которые появились уже в платформе 8.3.

Функции строк в 1С. Часть 1.

Сравнение строк в 1С

Начиная с режима совместимости 8.3.6, появилась возможность сравнивать строки по длине. Это выполняет метод СтрСравнить(<ПерваяСтрока>,<ВтораяСтрока>). В качестве параметров этого метода указываются сравниваемые строки. А возвращает этот метод следующие значения

0 – строки равные

1 – первая строка больше второй

-1 – первая строка меньше второй

Обе строки приравниваются к одинаковому регистру. Причем можно сравнивать, как сами строки, так и переменные с типом строка.

То есть вот так:

Строка1 = "Привет, мир!";
Строка2 = "Привет мир!";

РезСравнения = СтрСравнить(Строка1,Строка2);

Или так:

РезСравнения = СтрСравнить("Привет, мир!","Привет мир!");

Результат сравнения этих строк будет следующий:

Сравнение строк в 1С

Причем не имеет значение, имеются в строке пробелы или нет.

Сравнение строк в 1С c пробелами

В этом случае метод вернул  -1, хоть и Строка2 отличается от Строка1 только пробелами.

Функции СтрНачинаетсяС и СтрЗаканчиваетсяНа в 1С

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

Например, у нас имеется строка «Привет, Владимир Петрович, как дела?». Мы можем определить, начинается эта строка на слове «Привет», и заканчивается ли она словами «как дела?».

СтрокаПроверки = "Привет, Владимир Петрович, как дела?";

Начинается = СтрНачинаетсяС(СтрокаПроверки,"Привет");
Заканчивается = СтрЗаканчиваетсяНа(СтрокаПроверки, "как дела?");

И посмотрим, какой результат будет у этих функций

Функции СтрНачинаетсяС СтрЗаканчиватесяНа

Обе функции возвращают истину, если строка начинается указанной подстрокой или заканчивается. Причем регистр подстроки важен!

Функции СтрНачинаетсяС СтрЗаканчиватесяНа

Разделить и соединить строку в 1С

Начиная с режима совместимости 8.3.6, в платформе 1С появилась возможность разъединять и соединять строки.  Делается это при помощи функции СтрРазделить и СтрСоединить.

Функция СтрРазделить разделяет строки по определенному разделителю и возвращает массив со строками, которые получились в результате разделения.

Функция СтрСоединить принимает массив строки и соединят их в одную.

Разберем подробнее и с примерами.

Функция СтрРазделить имеете следующий синтаксис СтрРазделить(<Строка>,<Разделитель>, <ВключатьПустые>).

Где

Строка – разделяемая строка

Разделитель – символ или символы, по которым строка будет разделена

ВключатьПустые – тип булево, если Истина, то в разделенных строках будут пустые строки, именное пустые — «».

Рассмотрим пример.

Разделим строку с каким-то кодом «DGFTF-SQ2WC-2XSD2—SDFR1» на отдельные значения, разделителем в нашем случае будет символ «-». Причем, я намеренно сделал два символа-разделителя вместе, чтобы показать, как работает второй параметр ВключатьПустые.

СтрокаРазложения = "DGFTF-SQ2WC-2XSD2--SDFR1";
МассивРазделенияСПуст   = СтрРазделить(СтрокаРазложения,"-",Истина);
МассивРазделенияБезПуст = СтрРазделить(СтрокаРазложения,"-",Ложь);

В этом примере два массива, посмотрим в отладке на первый

Разделить строку в 1С с пустыми символами

А также на второй:

Разделить строку в 1С без пустых символов

Точно также, как разложили строку, мы можем соединить её из строк в массиве, используя метод СтрСоединить. Этот метод является функцией, которая возвращает соединенную строку и имеет следующий синтаксис.

СтрСоеднить(<МассивСтрок>,<Разделитель>)

Где:

МассивСтрок – массив или фиксированный массив строк, которые нужно будет соединить.

Разделитель – символ или строка, которая будет вставлена между соединяемыми строками. Необязательный параметр. Если его не будет, то строки будут соединены слитно.

Доработаем предыдущий пример: объединим строки в массиве без пустого символа, поставив наклонную черту в качестве разделителя.

СтрокаСоединения = СтрСоединить(МассивРазделенияБезПуст,"/");

Получится следующий результат:

Объединить строку в 1С

Другие статьи о примитивных типах:

Символы в 1С

Примитивный тип Строка

Примитивный тип Булево

Примитивный тип Число

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»


Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

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

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