Строка в 1С:Предприятие – это базовый тип данных, представленный в виде строки в формате unicode. Тип «строка» доступна для работы в тонком клиенте, веб-клиенте, на сервере, толстом клиенте, внешнем соединении, мобильном приложении (клиент/сервер). Тип «строка» может быть передан между клиентом и сервером, может быть сериализован.
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://www.w3.org/2001/XMLSchema}. Имя типа XDTO: может быть любым из перечисленных: string, anySimpleType, anyURI, duration, gDay, gMonth, gMonthDay, gYear, gYearMonth, NOTATION.
Существует достаточно большой список функции работы со строками в 1С, перечень функций:
- СтрДлина
- СокрЛ
- СокрП
- СокрЛП
- Лев
- Прав
- Сред
- СтрНайти
- ВРег
- НРег
- ТРег
- Символ
- КодСимвола
- ПустаяСтрока
- СтрЗаменить
- СтрЧислоСтрок
- СтрПолучитьСтроку
- СтрЧислоВхождений
- СтрСравнить
- СтрНачинаетсяС
- СтрЗаканчиваетсяНа
- СтрРазделить
- СтрСоединить
- ПолучитьСклоненияСтроки
Представленные функции строк в 1С поддерживается платформой 8.3. Для платформ более ранних версий список функций может отличаться. Подробнее о функциях – во встроенной к языке справке.
Далее каждая функция будет рассмотрена более детально.
СтрДлина – функция возвращает длину строки (число).
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрДлина(< Строка >)
Функция доступна:
Тонкий клиентПример использования:
МояСтрока = "Какой-то текст";
ДлинаСтроки = СтрДлина(МояСтрока);
Сообщить(ДлинаСтроки);
Сообщить(ТипЗнч(ДлинаСтроки));
Результат выполнения:
14
Число
СокрЛ, СокрП, СокрЛП – эти функции очень похожи по своей сути, поэтому будут рассмотрены совместно. Функции убирают пробелы, переносы строк, перевод каретки слева (СокрЛ), справа (СокрП), слева и права (СокрЛП).
Сигнатура:
- СокрЛ(<Строка>)
- СокрП(<Строка>)
- СокрЛП(<Строка>)
Функции доступны:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер, толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = " Какой-то текст
| ";
МояСтрока2 = СокрЛ(МояСтрока);
МояСтрока3 = СокрП(МояСтрока);
МояСтрока4 = СокрЛП(МояСтрока);
Сообщить(СтрШаблон("""%1""", МояСтрока2));
Сообщить(СтрШаблон("""%1""", МояСтрока3));
Сообщить(СтрШаблон("""%1""", МояСтрока4));
Результат выполнения:
"Какой-то текст
"
"Какой-то текст"
"Какой-то текст"
Лев, Прав, Сред – данные функции также будут рассмотрены совместно. Функции получают определенное количество символов слева, справа, с середины строки. Результат выполнения – строка.
Сигнатура (жирным курсивом выделены обязательные параметры):
- Лев(< Строка >, < ЧислоСимволов>)
- Прав(< Строка >, < ЧислоСимволов>)
- Сред(< Строка >, < НачальныйНомер>, <ЧислоСимволов>)
Функции доступны:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст";
Сообщить(Лев(МояСтрока, 3));
Сообщить(Прав(МояСтрока, 3));
Сообщить(Сред(МояСтрока, 3, 4)); // если не указать параметр число символов, подстрока будет получена до конца строки
Результат выполнения:
Как (Какой-то текст)
кст (Какой-то текст)
кой- (Какой-то текст)
СтрНайти – Функция находит подстроку (первое вхождение) в строке с учетом регистра. Результат выполнения – строка.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрНайти(< Строка >, < ПодстрокаПоиска >, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)
Где:
- Строка – исходная строка;
- ПодстрокаПоиска – подстрока, которую нужно найти;
- НаправлениеПоиска – системное перечисление (СКонца, СНачала);
- НачальнаяПозиция – число. Указывает позицию в строке, с которой начинается поиск.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СКонца, то значение по умолчанию равно длине строки.
Допускаются значения от 1 до количества символов в строке, в которой выполняется поиск. Если указано значение, не входящее в диапазон, генерируется ошибка «Неверное значение параметра».
- НомерВхождения – Число. Номер вхождения подстроки в строку.
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
- интеграция
Пример использования:
МояСтрока = "Какой-то текст, просто пробный текст";
Сообщить(СтрНайти(МояСтрока, "текст"));
Результат выполнения:
10 (Какой-то текст, просто пробный текст)
МояСтрока = "Какой-то текст, просто пробный текст";
Сообщить(СтрНайти(МояСтрока, "текст", НаправлениеПоиска.СКонца));
Результат выполнения:
32 (Какой-то текст, просто пробный текст)
МояСтрока = "Какой-то текст, просто пробный текст";
Сообщить(СтрНайти(МояСтрока, "текст",,, 2));
Результат выполнения:
32 (Какой-то текст, просто пробный текст)
МояСтрока = "Какой-то текст, просто пробный текст";
Сообщить(СтрНайти(МояСтрока, "т",, 7));
Результат выполнения:
10 (Какой-то текст, просто пробный текст)
ВРег, НРег, ТРег – данные функции будут рассмотрены совместно. Функции изменяют регистр строк. Верхний, нижний, каждое слово с заглавной буквы.
Сигнатура (жирным курсивом выделены обязательные параметры):
- Врег(<Строка>)
- Нрег(<Строка>)
- Трег(<Строка>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст";
Сообщить(ВРег(МояСтрока));
Сообщить(НРег(МояСтрока));
Сообщить(ТРег(МояСтрока));
Результат выполнения:
КАКОЙ-ТО ТЕКСТ
какой-то текст
Какой-То Текст
Символ – функция возвращает символ (строку) код которой был передан (код в формате unicode).
Сигнатура (жирным курсивом выделены обязательные параметры):
- Символ(<КодСимвола>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
Сообщить(Символ(1072));
Сообщить(Символ(1073));
Сообщить(Символ(1074));
Результат выполнения:
а
б
в
КодСимвола – Функция обратная функции Символ, т.е. на вход принимает строку, возвращает код (число) символа в формате unicode.
Сигнатура (жирным курсивом выделены обязательные параметры):
- КодСимвола(< Строка >, <НомерСимвола>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
Сообщить(КодСимвола("а"));
Сообщить(КодСимвола("б"));
Сообщить(КодСимвола("Слово", 4));
Результат выполнения:
1072
1073
1074
ПустаяСтрока – функция проверяет, пустая ли строковая переменная, возвращает тип булево. Игнорируются пробелы, переносы строк, перенос каретки.
Сигнатура (жирным курсивом выделены обязательные параметры):
- ПустаяСтрока(<Строка>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст";
МояСтрока2 = "";
МояСтрока3 = " ";
МояСтрока4 = "Текст";
Сообщить(ПустаяСтрока(МояСтрока));
Сообщить(ПустаяСтрока(МояСтрока2));
Сообщить(ПустаяСтрока(МояСтрока3));
Сообщить(ПустаяСтрока(МояСтрока4));
Результат выполнения:
Нет
Да
Да
Нет
СтрЗаменить – функция заменяет все подстроки в строке.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрЗаменить( <Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Како/й-то/ т/ек/ст";
Сообщить(СтрЗаменить(МояСтрока, "/", ""));
Результат выполнения:
Какой-то текст
СтрЧислоСтрок – функция возвращает количество строк в многострочном документе, строки разделенные символом переноса строки.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрЧислоСтрок(< Строка >)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст
|Какой-то текст
|Какой-то текст";
Сообщить(СтрЧислоСтрок(МояСтрока));
Результат выполнения:
3
СтрПолучитьСтроку – Получения строки по номеру из многострочного документа.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрПолучитьСтроку( <Строка>, <НомерСтроки>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст
|Какой-то текст1
|Какой-то текст3";
Сообщить(СтрПолучитьСтроку(МояСтрока, 2));
Результат выполнения:
Какой-то текст1
СтрЧислоВхождений – функция возвращает число вхождений подстроки в строку. Поиск регистронезависимый.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрЧислоВхождений( <Строка>, <ПодстрокаПоиска>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст
|Какой-то текст1
|Какой-то текст3";
Сообщить(СтрЧислоВхождений(МояСтрока,"текст"));
Результат выполнения:
3
СтрСравнить – функция сравнивает строки без учета регистра. Возвращается число, если -1 – тогда первая строка меньше второй, 1 – первая строка больше второй, 0 – строки равны.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрСравнить( <Строка1>, <Строка2>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока1 = "Какой-то текст";
МояСтрока2 = "Какой-то";
Если СтрСравнить(МояСтрока1, МояСтрока2) = 1 Тогда
Сообщить(СтрШаблон("Строка ""%1"" больше ""%2""", МояСтрока1,
МояСтрока2));
ИначеЕсли СтрСравнить(МояСтрока1, МояСтрока2) < 0 Тогда
Сообщить(СтрШаблон("Строка ""%1"" меньше ""%2""", МояСтрока1,
МояСтрока2));
ИначеЕсли СтрСравнить(МояСтрока1, МояСтрока2) = 0 Тогда
Сообщить("Строки равны");
Результат выполнения:
Строка "Какой-то текст" больше "Какой-то"
СтрНачинаетсяС, СтрЗаканчиваетсяНа – определяют (с учетом регистра) начинается/заканчивается строка с определенной подстроки. Возвращает булево.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрНачинаетсяС( <Строка>, <СтрокаПоиска>) СтрЗаканчиваетсяНа( <Строка>, <СтрокаПоиска>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст";
Если СтрНачинаетсяС(МояСтрока, "как") Тогда
Сообщить(СтрШаблон("""%1"" начинается с ""как""", МояСтрока));
КонецЕсли;
Если СтрЗаканчиваетсяНа(МояСтрока, "ст") Тогда
Сообщить(СтрШаблон("""%1"" заканчивается на ""ст""", МояСтрока));
КонецЕсли;
Результат выполнения:
"Какой-то текст" начинается с "как"
"Какой-то текст" заканчивается на "ст"
СтрРазделить – функция разбивает строку на подстроки, возвращается массив. Последний параметр определяет, нужно ли учитывать пустые строки, по умолчанию значение «Истина».
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрРазделить( <Строка>, <Разделитель>, <ВключатьПустые>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст, Какой-то текст,, Какой-то текст, Какой-то текст";
МассивПодстрок = СтрРазделить(МояСтрока, ",", Ложь);
МассивПодстрок2 = СтрРазделить(МояСтрока, ",");
Сообщить(ТипЗнч(МассивПодстрок));
Для Каждого Стр Из МассивПодстрок Цикл
Сообщить(СтрШаблон("%1[%2]", Символы.Таб, Стр));
КонецЦикла;
Результат выполнения:
Массив
[Какой-то текст]
[Какой-то текст]
[]
[Какой-то текст]
[Какой-то текст]
Если вывести МассивПодстрок2, результат будет таким:
Массив
[Какой-то текст]
[Какой-то текст]
[Какой-то текст]
[Какой-то текст]
СтрСоединить – функция противоположная СтрРазделить, т.е. склеивает подстроки в одну строку.
Сигнатура (жирным курсивом выделены обязательные параметры):
- СтрСоединить( <Строки>, <Разделитель>)
Функция доступна:
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Пример использования:
МояСтрока = "Какой-то текст, Какой-то текст,, Какой-то текст, Какой-то текст";
МассивПодстрок = СтрРазделить(МояСтрока, ",", Ложь);
Сообщить(СтрСоединить(МассивПодстрок, "|"));
Результат выполнения:
Какой-то текст| Какой-то текст| Какой-то текст| Какой-то текст
ПолучитьСклоненияСтроки
Сигнатура (жирным курсивом выделены обязательные параметры):
- ПолучитьСклоненияСтроки( <СклоняемаяСтрока>, <ОписаниеСтроки>, <ФорматнаяСтрока>)
Функция доступна:
- сервер
- толстый клиент
- внешнее соединение
Пример использования:
МояСтрока = "токарь третьего разряда";
МассивВариантов = ПолучитьСклоненияСтроки(МояСтрока,
"ПЛ=Мужской",
"ПД=Дательный");
Сообщить(СтрСоединить(МассивВариантов, ", "));
Результат выполнения:
токарю третьего разряда
консультация эксперта
самые свежие новости 1 раз в месяц