Как найти кавычку в строке 1с

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

Содержание

  1. Функции для работы со строками в 1С 8.2 и 8.3
  2. Строка
  3. СтрДлина
  4. СокрЛП, СокрЛ, СокрП
  5. Лев, Прав, Сред
  6. ВРег, НРег, ТРег
  7. Найти
  8. СтрЧислоВхождений
  9. СтрЗаменить
  10. ПустаяСтрока
  11. СтрЧислоСтрок
  12. СтрПолучитьСтроку
  13. Символ, КодСимвола
  14. Символы
  15. ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр
  16. ВвестиСтроку
  17. Функции для работы со строками начиная с версии 8.3.6.1977
  18. СтрШаблон
  19. СтрСравнить
  20. СтрНайти
  21. СтрНачинаетсяС, СтрЗаканчиваетсяНа
  22. СтрРазделить, СтрСоединить
  23. Типовые задачи при работе со строками в 1С 8.2 и 8.3
  24. Сложение строк
  25. Преобразования строка-число, число-строка
  26. Кавычки в строке
  27. Символ переноса строки
  28. Сравнение строк
  29. Разделение строки по разделителю

Функции для работы со строками в 1С 8.2 и 8.3

Строка

Функция Строка(x) возвращает текстовое представление переданного ей значения “x”.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(Строка(35)); //35

Сообщить(Строка(Истина)); //Да

Сообщить(Строка(‘20170425151515’)); //25.04.2017 15:15:15

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

СтрДлина

Функция СтрДлина(x) вычисляет количество символов в строке “x”, учитывая пробелы и ничего не значащие символы.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрДлина(«тестовая строка»)); //15

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

СокрЛП, СокрЛ, СокрП

Функции СокрЛП(x), СокрЛ(x) и СокрП(x) убирают пробелы и ничего не значащие символы у переданной строки “x” с обеих сторон, слева и справа соответственно.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СокрЛ(» тест «)); //»тест «

Сообщить(СокрП(» тест «)); //» тест»

Сообщить(СокрЛП(» тест «)); //»тест»

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

Лев, Прав, Сред

Функции Лев(x, y) и Прав(x, y) возвращают количество символов “y” с левого или правого края переданной им строки “x”. А функция Сред(x, y, z) возвращает количество символов “z” из указанного места “y” переданной строки “x”.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(Лев(«тестовая строка», 5)); //»тесто»

Сообщить(Прав(«тестовая строка», 5)); //»трока»

Сообщить(Сред(«тестовая строка», 5)); //»овая строка»

Сообщить(Сред(«тестовая строка», 5, 5)); //»овая»

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

ВРег, НРег, ТРег

Функция ВРег(x) преобразует все символы переданной строки “x” в верхний регистр, НРег(x) — в нижний регистр, ТРег(x) — первую букву каждого слова преобразует в верхний регистр, а все остальные  нижний.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(ВРег(«Верхний регистр»)); //ВЕРХНИЙ РЕГИСТР

Сообщить(НРег(«Нижний регистр»)); //нижний регистр

Сообщить(ТРег(«Каждое слово с заглавной буквы»)); //Каждое Слово С Заглавное Буквы

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

Найти

Функция Найти(x, y) возвращает номер первого символа первого вхождения подстроки “y” в строку “x”, если, конечно, такое вхождение найдено (при этом нумерация начинается с 1). Если же вхождений не найдено, то функция возвращает 0.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(Найти(«тестовая строка», «с»)); //3

Сообщить(Найти(«тестовая строка», «м»)); //0

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

СтрЧислоВхождений

Функция СтрЧислоВхождений(x, y) возвращает количество вхождений подстроки “y” в строку “x”.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрЧислоВхождений(«тестовая строка», «т»)); //3

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

СтрЗаменить

Функция СтрЗаменить(x, y, z) позволяет в указанной строке “x” заменить все вхождения одной подстроки “y” на другую “z”, результатом выполнения функции будет строка с проведенными заменами.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрЗаменить(«тест1,тест2,тест3,тест4», «,», » «)); //тест1 тест2 тест3 тест4

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

ПустаяСтрока

Функция ПустаяСтрока(x) сравнивает переданную ей строку “x” с пустой и возвращает результат этого сравнения — Истина или Ложь, при этом строка состоящая из пробелов и/или ничего не значащих символов приравнивается к пустой.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(ПустаяСтрока(» «)); //Да

Сообщить(ПустаяСтрока(«тестовая строка»)); //Нет

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

СтрЧислоСтрок

Функция СтрЧислоСтрок(x) возвращает количество строк в многострочном тексте “x”.

&НаКлиенте

Процедура ТестСтрока(Команда)

МногострочныйТекст = СтрЗаменить(«тест1,тест2,тест3,тест4», «,», Символы.ПС); //тест1 тест2 тест3 тест4

Сообщить(СтрЧислоСтрок(МногострочныйТекст)); //4

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

СтрПолучитьСтроку

Функция СтрПолучитьСтроку(x, y) возвращает строку с номером “y” из многострочного текста “x”.

&НаКлиенте

Процедура ТестСтрока(Команда)

МногострочныйТекст = СтрЗаменить(«тест1,тест2,тест3,тест4», «,», Символы.ПС); //тест1 тест2 тест3 тест4

Сообщить(СтрПолучитьСтроку(МногострочныйТекст, 2)); //тест2

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

Символ, КодСимвола

Функция Символ(x) получает код символа “x” и возвращает строку содержащую соответствующий символ (в кодировке Unicode). Функция КодСимвола(x) делает обратное действие — получает символ “x” и возвращает его код в кодировке Unicode. Таблицу символов Unicode можно найти, например, тут.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(Символ(1046)); //Ж

Сообщить(КодСимвола(«Ж»)); //1046

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

Символы

Это не функция, а набор наиболее часто используемых специальных символов, состоит из:

  • ВК (CR) — возврат каретки;
  • ВТаб (VTab) — вертикальная табуляция;
  • НПП (NBSp) — неразрывный пробел;
  • ПС (LF) — перевод строки;
  • ПФ (FF) — перевод формы;
  • Таб (Tab) — символ горизонтальной табуляции.

ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр

Функция ЗначениеВСтрокуВнутр(x) возвращает системное строковое представление значения “x”. Функция ЗначениеИзСтрокиВнутр(x) проделывает обратную операцию и возвращает значение, полученное из строкового системного представления “x”. Обе эти функции используются для сохранения функциональной совместимости с версией 7.7. Использование для каких-либо других целей не рекомендуется. В новых версиях платформы данные функции не работают (хотя их описание присутствует в справке).

ВвестиСтроку

Функция ВвестиСтроку(x, y, z, w) вызывает диалог для ввода строки, введенная строка записывается в переменную “x”, кроме этого можно указать подсказку “y”, длину вводимой строки “z”, отметку многострочности вводимого текста “w”. Функция возвращает Истина — если ввод был произведен, Ложь — если пользователь отказался от ввода. Выглядит это окно примерно так:

&НаКлиенте

Процедура ТестСтрока(Команда)

НовСтр = «»;

ВвестиСтроку(НовСтр, «Введите имя», 50, Ложь);

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

Окно ввода строки

Окно ввода строки

Функции для работы со строками начиная с версии 8.3.6.1977

В обновлении 8.3.6.1977 набор функций для работы со строками был серьезно расширен.

СтрШаблон

Функция СтрШаблон(x, y1-y10) является аналогом функции printf из языка C++ и многих других. В исходной строке “x” можно использовать маркеры подстановки “%1, %2..%10” (не более 10), которые впоследствии заменяются на соответствующие “y1, y2..y10”. Функция возвращает результат этой замены. Если количество маркеров замены не соответствует количеству параметров “y1, y2..y10”, то генерируется ошибка.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрШаблон(«%1,%2,%3,%4,%5,%6,%7,%8,%9,%10», 101, 102, 103, 104, 105, 106, 107, 108, 109, 110)); //101,102,103,104,105,106,107,108,109,110

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

СтрСравнить

Функция СтрСравнить(x, y) выполняет лексикографическое сравнение переданных ей строк “x” и “y” и возвращает одно из трех значений:

  • 0 — строки равны;
  • 1 — строка “x” больше строки “y”;
  • -1 — строка “x” меньше строки “y”.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрСравнить(«ааа», «ааб»)); //-1

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

СтрНайти

Функция СтрНайти(x, y, z, w, v) призвана полность заменить функцию Найти(), так как она ее полность повторяет (строка “x” и подстрока поиска “y”), а также позволяет указать необязательные дополнительные параметры поиска: направление поиска “z”, начальную позицию “w” и номер вхождения “v”.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрНайти(«тестовая строка», «т», НаправлениеПоиска.СНачала)); //1

Сообщить(СтрНайти(«тестовая строка», «т», НаправлениеПоиска.СНачала, 2)); //4

Сообщить(СтрНайти(«тестовая строка», «т», НаправлениеПоиска.СНачала,, 3)); //11

Сообщить(СтрНайти(«тестовая строка», «т», НаправлениеПоиска.СКонца)); //11

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

СтрНачинаетсяС, СтрЗаканчиваетсяНа

Функции СтрНачинаетсяС(x, y) и СтрЗаканчиваетсяНа(x, y) проверяют начинается/заканчиватся ли строка “x” с/на подстроку “y” и возвращают результат — Истина или Ложь.

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(СтрНачинаетсяС(«тестовая строка», «т»)); //Да

Сообщить(СтрНачинаетсяС(«тестовая строка», «п»)); //Нет

Сообщить(СтрЗаканчиваетсяНа(«тестовая строка», «а»)); //Да

Сообщить(СтрЗаканчиваетсяНа(«тестовая строка», «б»)); //Нет

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

СтрРазделить, СтрСоединить

Функция СтрРазделить(x, y, z) разделяет строку “x” по разделителю “y” и возвращает получившийся массив строк, параметр “z” позволяет указать, нужно ли включать в этот массив пустые строки. Функция СтрСоединить(x, y) выполняет обратную задачу — склеивает массив строк “x” в одну строку через разделитель “y” (если этот разделитель указан).

&НаКлиенте

Процедура ТестСтрока(Команда)

МассивСтрок = СтрРазделить(«тест1,тест2,тест3,тест4», «,», Ложь);

Сообщить(МассивСтрок[0]); //тест1

Сообщить(СтрСоединить(МассивСтрок, «+»)); //тест1+тест2+тест3+тест4

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

Типовые задачи при работе со строками в 1С 8.2 и 8.3

Сложение строк

В языке 1С работает сложение как непосредственно строк, так и сложение переменных:

&НаКлиенте

Процедура ТестСтрока(Команда)

Мама = «Мама «;

Мыла = «мыла «;

Раму = «раму»;

Сообщить(«Мама «+»мыла «+»раму»); //Мама мыла раму

Сообщить(Мама+Мыла+Раму); //Мама мыла раму

Сообщить(«Мама «+Мыла+»раму»); //Мама мыла раму

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

Преобразования строка-число, число-строка

Помимо специальных функций:

  • Строка(x) — подробно описана выше;
  • Число(x) — подробно  описана в статье о числах в 1С.

Кроме этого прекрасно работает приведение типов «на лету», тут все завит от того, что с чем складывает (какой тип данных идет первым), в случае если приведение типов невозможно, будет вызвана исключительная ситуация и показана соответствующая ошибка:

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(6+»6″); //12 — Число

Сообщить(«6″+6); //66 — Строка

Сообщить(«»+6+»6»); //66 — Строка

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

Кавычки в строке

Одинарные кавычки не нуждаются в каком-либо экранировании, а для использования внутри строки двойных кавычек каждую двойную кавычку нужно продублировать:

&НаКлиенте

Процедура ТестСтрока(Команда)

Сообщить(«‘Мама’ «»мыла»» ‘раму'»); //’Мама’ «мыла» ‘раму’

Сообщить(«»»»); //»

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

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

Символ переноса строки (и все остальные специальные символы) ведут себя точно также как и простые строки, т.е. могут складываться с другими строками. При сложении символа переноса строк с другими строками получается много строчный текст, для работы с которым существуют специальные функции описанные выше:

&НаКлиенте

Процедура ТестСтрока(Команда)

МногострочныйТекст = «тест1″+Символы.ПС+»тест2″+Символы.ПС+»тест3″+Символы.ПС+»тест4»;

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

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

При сравнении строк будет разумно (в зависимости от задачи, конечно) обрезать все не значащие символы и привести строки к одному регистру:

&НаКлиенте

Процедура ТестСтрока(Команда)

Строка1 = » тЕсТ «;

Строка2 = » ТЕсТ «;

Если НРег(СокрЛП(Строка1)) = НРег(СокрЛП(Строка2)) Тогда

Сообщить(«Строки равны»);

КонецЕсли;

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

Разделение строки по разделителю

Для того чтобы разбить строку по разделителю в языке 1С существует два способа, старый:

&НаКлиенте

Процедура ТестСтрока(Команда)

СтрокаСРазделителями = «тест1,тест2,тест3,тест4»;

МногострочныйТекст = СтрЗаменить(СтрокаСРазделителями, «,», Символы.ПС);

Для Счетчик = 1 По СтрЧислоСтрок(МногострочныйТекст) Цикл

Сообщить(СтрПолучитьСтроку(МногострочныйТекст,Счетчик));

КонецЦикла;

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

Начиная с версии 8.3.6.1977 в языке 1С существует специальная функция позволяющая разложить строку по разделителю в массив строк:

&НаКлиенте

Процедура ТестСтрока(Команда)

МассивСтрок = СтрРазделить(СтрокаСРазделителями, «,»);

Для Каждого ТекСтрока Из МассивСтрок Цикл

Сообщить(ТекСтрока);

КонецЦикла;

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

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Загрузка…

   SergeyN

04.10.05 — 08:05

Как найти кавычки в тексте?
При перносе информации через текстовый файл с разделителями каждая пара кавычек является одним элементом. А если в переносимой текстовой информации есть дополнительные кавычки, то элементов в строке становится гораздо больше чем надо.

   Морозов Александр

1 — 04.10.05 — 08:17

Пример строки то хоть покажи

   SergeyN

2 — 04.10.05 — 08:24

«Кресло»,»2″,»200.35″,»Фирма «МебельПлюс»»
Так вот нужно найти восьмую и девятую кавычку и заменить на () скобки

   Glide

3 — 04.10.05 — 08:26

(0) выбери другой разделитель — хотя бы РазделительСтрок.
Или у тебя строки и с табуляцией встречаются?
Вообще для переноса через текстовый файл в качестве разделителя выбирается неиспользуемый символ или производится подмена этого символа в исходных данных

   Sasha

4 — 04.10.05 — 08:28

А как у тебя формируется эта строка?

   lalex23

5 — 04.10.05 — 08:32

(3) ну или при выгрузке меняй «» на что нибудь типа | и при загрузке меняй взад, если уж сильно нравится пользовать «» как разделитель, хотя в таких случаях я при выгрузке на всякий случай преобразовываю строку, что б разделитель не попался случайно

   Glide

6 — 04.10.05 — 08:32

(2) Если файл входящий от других, то вырезай данные в два шага:
1. Обрезать первый и последний символ строки
2. РазделительДанных=CHR(0022)+»,»+CHR(0022) или как там кавычки называются

   SergeyN

7 — 04.10.05 — 08:34

Сначала я формирую текстовый файл (см. пример), а затем из этого файла беру строки и используя \ИзСтрокиСРазделителями(<Строка>)\ разбиваю на элементы. А лишние кавычки мешают.
Вопрос такой: можно или нельзя найти кавычки в текстовой строке средствами 1С.

   lalex23

8 — 04.10.05 — 08:36

(7)для тех кто в танке —
когда выгружаешь:
стрзаменить(выгружаемаястрока,»»»»,»|»)
когда загружаешь
стрзаменить(выгружаемаястрока,»|»,»»»»)

   SergeyN

9 — 04.10.05 — 08:44

Сам ты в танке…
Туда, сюда — она мне строку и повторит. Мне надо убрать только 8 и 9 кавычку (см. пример)

   SergeyN

10 — 04.10.05 — 08:47

Возвращаясь к 6 посту. какой код у кавычек?

   SergeyN

11 — 04.10.05 — 08:49

+9 Убрать надо при создании текстового файла.

   lalex23

12 — 04.10.05 — 08:51

млин…
перед тем как запихивать в список свои строки преобразовывай строки и в файле НЕ будет левых «» после того как достанешь ИзСтрокиСРазделителями ты ж пробежишь по списку, доставая строки — вот тогда и форматируешь их в первозданный вид — или я в танке. или я цели не понял…

   SergeyN

13 — 04.10.05 — 08:55

Видимо цели не понял.

   lalex23

14 — 04.10.05 — 08:55

или покажи куски кода выгрузки/загрузки

   SergeyN

15 — 04.10.05 — 09:08

Нашел!!!
//Стр — текстовая строка
Стр = СтрЗаменить(Стр,Симв(34)+»,»+Симв(34),»ёё»); // Заменяем «,» на нечто
Стр = СтрЗаменить(Стр,Симв(34),»»); //Заменяем оставшиеся кавычки на
Стр = СтрЗаменить(Стр,»ёё»,Симв(34)+»,»+Симв(34)); //Заменяем нечто на «,»
Стр = Симв(34) + Сред(Стр,2); //Заменяем первый символ на кавычки
Стр = Лев(Стр,СтрДлина(СокрЛП(Стр))-1) +Симв(34) ; // и последний тоже
Сообщить(Стр);
Всем спасибо!

   lalex23

16 — 04.10.05 — 09:18

что это было…???
ну куда то в нужном направлении…

   Чеширский

17 — 04.10.05 — 09:23

СпСтроки=глРазложить(СтрокаСКавычками,»»»»);
Результ=»»;
Для й=1 по СпСтроки.РазмерСписка() Цикл
  Если (й=8)ИЛИ(й=9) тогда
     Результ=СпСтроки.ПолучитьЗначение(й)+»(«;//ну или что там у тебя
  Иначе
      Результ=СпСтроки.ПолучитьЗначение(й)+»»»»;
  КонецЕСли;

   SergeyN

18 — 04.10.05 — 09:59

17 не есть «Good»
Это в конкретном примере они 8 и 9, а могут быть где угодно.
15 бест форева — работает «проверено на себе».

   SergeyN

19 — 04.10.05 — 10:02

Если кто не понял Симв(34) — это символ » кавычки (код 34)
ёё — сочетание символов, которое в реальной жизни практически не встречается.

2(19) ОднаКавычка = «»»»;

Рекомендовать в новости

Как найти кавычку?

Гость

0

12.12.2012 — 14:48


Найти(НаимКонтрагента,»»») — как-то не так, наверное, короче, мне их надо удалить из строки, чтоб без кавычек осталось.

Чучундер

1

12.12.2012 — 14:49

«»»»
кавычка внутри кавычек — два раза!

user1C

2

12.12.2012 — 14:54

СтрЗаменить(НаимКонтрагента,»»»»,»»)

Гость

3

12.12.2012 — 14:54

А это будет как бы одна кавычка? Я попробовала 3 и 5 почему-то.

Гость

4

12.12.2012 — 14:55

Спасибо!

Гость

5

12.12.2012 — 14:55

через код символа и переменную не ?

Гость

6

12.12.2012 — 14:56

Можно с извращением)))
Найти(НаимКонтрагента, Символ(34))

Гость

7

12.12.2012 — 14:57

или СтрЗаменить(НаимКонтрагента,Символ(34),»»)

Ткачик

8

12.12.2012 — 14:58

Надеюсь, что Мисту скоро починят, а то начавшееся омистенение Т1С что-то не радует.

Гость

9

12.12.2012 — 15:19

Может, мне у вас понравится, и я туда не вернусь!

Ткачик

10

12.12.2012 — 15:19

Не дай бог!

Чучундер

11

12.12.2012 — 15:27

(9) главное, чтобы ты нам понравилась! Здесь в личку фотки мало кто помещает (такое ощущение что есть только у меня) — есть шанс получать ответы без сисек.

Гость

12

12.12.2012 — 15:39

(8) rfr nj e; cjdctv yt lhe;tk.,yj ;))
ЗЫ они плохие, но у них могут быть хорошие дети (с) Д

Гость

13

12.12.2012 — 15:40

(12) + … (с) Дядюшка Мокус

Тип «Строка» встречается во всех языках программирования. Он является примитивным, и в 1С существует много функций для работы с ним. В данной статье мы подробно рассмотрим различные способы работы со строковыми типами в 1С 8.3 и 8.2 на примерах.

регистр строки

Содержание

  • Строковые функции в 1С
    • Строка
    • СокрЛП, СокрЛ, СокрП
    • Лев, Прав, Сред
    • СтрДлина
    • Найти
    • ПустаяСтрока
    • ВРег, НРег, ТРег
    • СтрЗаменить
    • СтрЧислоСтрок
    • СтрПолучитьСтроку
    • СтрЧислоВхождений
    • Символ и КодСимвола
  • Частые задачи при работе со строками
    • Объединение строк
    • Преобразование типов
    • Кавычки в строке
    • Многострочность, перенос строки
    • Как убрать пробелы
    • Сравнение строк между собой

Строковые функции в 1С

Строка

Для того чтобы преобразовать переменную какого-либо типа в строку, существует одноименная функция «Строка()». Входным параметром будет сама переменная, строковое представление которой необходимо получить.

Строка(Ложь) // возвращает «Нет»
Строка(12345) // возвращает «12 345»
Строка(ТекущаяДата()) //»21.07.2017 11:55:36″

Преобразовывать к строке возможно не только примитивные типы, но и остальные, например элементы справочников, документов.

СокрЛП, СокрЛ, СокрП

В качестве входных параметров данных функций выступает переменная строкового типа. Функции удаляют незначащие символы (пробелы, переносы каретки и прочие): с левой и правой стороны, только с левой стороны, и только с правой соответственно.

СокрЛП(»   Будут удалены пробелы с обеих сторон  «) // «Будут удалены пробелы с обеих сторон»
СокрЛ(»   Будут удалены пробелы с обеих сторон  «) // «Будут удалены пробелы слева  »
СокрП(»   Будут удалены пробелы с обеих сторон  «) // «   Будут удалены пробелы справа»

Лев, Прав, Сред

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Связаться с нами можно по телефону +7 499 350 29 00.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

Данные функции позволяют обрезать часть строки. Функция «Лев()» вернет часть строки с ее левой стороны указанной длины. Функция «Прав()» аналогично, но обрезка производится справа. Функция «Сред()» позволяет указать номер символа, с которого будет выделена строка и ее длину.

Лев(«Строковая переменная», 4) // возвращает «Стро»
Прав(«Строковая переменная», 7) // возвращает «еременная»
Сред(«Строковая переменная», 2, 5)// возвращает «троко»

СтрДлина

Функция определяет количество символов, которые содержатся в строковой переменной.

СтрДлина(«Слово «) // результатом выполнения будет число 5

Найти

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

Обратите внимание, что поиск производится с учетом регистра. Если в изначальной строке будет больше одного вхождения подстроки поиска, функция вернет начало первого вхождения.

Найти(«раз, два, раз, два, три», «два») // функция вернет число 6

ПустаяСтрока

Использование данной функции позволяет определить, является ли строка пустой. Незначимые символы, например, пробел, перенос каретки и другие не учитываются.

ПустаяСтрока(«Пупкин Василий Иванович») // функция вернет значение Ложь
ПустаяСтрока(»         «) // функция вернет значение Истина

ВРег, НРег, ТРег

Данные функции очень полезны при сравнении и преобразовании строковых переменных. «Врег()» вернет исходную строку в верхнем регистре, «НРег()» в нижнем, а «ТРег()» отформатирует ее так, что первый символ каждого отдельного слова будет с большой буквы, а все последующие с маленькой.

ВРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «ГЕНЕРАЛЬНЫЙ ДИРЕКТОР»
НРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «генеральный директор»
ТРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «Генеральный Директор»

СтрЗаменить

Данная функция является аналогом замены в текстовых редакторах. Она позволяет подменять один символ или набор символов другим в строковых переменных.

СтрЗаменить(«красный, белый, желтый»,  «,», «;») // вернет «красный; белый; желтый»

СтрЧислоСтрок

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

Цикл, в приведенном ниже примере, пройдет три круга, так как функция СтрЧислоСтрок вернет значение 3:

Для инд=1 по СтрЧислоСтрок(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3») Цикл
<тело цикла>
КонецЦикла;

СтрПолучитьСтроку

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

СтрПолучитьСтроку(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3», 2) // вернет «Строка2»

СтрЧислоВхождений

Функция подсчитывает количество вхождений символа или подстроки в искомой строке.

СтрЧислоВложений(«а;б;в;г; «, «;») // функция вернет число 4

Символ и КодСимвола

Эти функции позволяют получать символ по его коду в кодировке Unicode, а так же определять этот код по самому символу.

КодСимвола(«А») // функция вернет число 1 040
КодСимвола(1040) // функция вернет «А»

Частые задачи при работе со строками

Объединение строк

Чтобы объединить несколько строк (произвести конкатенацию) достаточно использовать оператор сложения.

«Строка 1″ + » Строка 2″ //результатом сложения двух строк будет «Строка 1 Строка 2»

Преобразование типов

Для того, чтобы преобразовать тип в строку, например, ссылку на элемент справочника, число и прочее, достаточно использовать функцию «Строка()». Функции, подобные «СокрЛП()» так же будут преобразовывать переменные в строку, но уже сразу с отсечением незначащих символов.

Строка(1000) // вернет «1 000»

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

СтрЗаменить(Строка(1000),Символы.НПП,»») //  вернет «1000»

или

Строка(Формат(1000,»ЧГ=»)) //  вернет «1000»

Кавычки в строке

Довольно часто вам придется сталкиваться с необходимостью указать в строковой переменной кавычки. Это может быть как текст запроса, написанный в конфигураторе, так и просто переменная. Для решения данной задачи вам достаточно установить два символа кавычек.

Заголовок = Строка(«ООО «»Рога и копыта»» — это мы!») // вернет «ООО «Рога и копыта» — это мы!»

Многострочность, перенос строки

Для того, чтобы создать многострочный текст достаточно добавить в него символы переноса строки (Символы.ПС).

МногострочныйТекст = «Первая строка» + Символы.ПС + «Вторая строка»

Как убрать пробелы

Для того, чтобы убрать пробелы справа или слева можно воспользоваться функцией «СокрЛП()» (а так же «СокрЛ()» и «СокрП()»):

СтрокаБезПробелов = СокрЛП(»   Много букв     «) // функция вернет значение «Много букв»

Если после преобразования числа в строку вам потребовалось убрать неразрывные пробелы, воспользуйтесь следующей конструкцией:

СтрокаБезПробелов = СтрЗаменить(Строка(99999),Символы.НПП,»») //  вернет «99999»

Так же программисты часто пользуются ниже приведенной конструкцией, которая позволяет удалить, либо заменить на другой символ все пробелы текстовой переменной:

СтрокаБезПробелов = СтрЗаменить(« п р и в е т», » » ,»») // вернет «привет»

Сравнение строк между собой

Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.

«Здраствуйте» = «здравствуйте» // вернет Ложь
«Здраствуйте» = «Здравствуйте» // вернет Истина
«Здраствуйте» = «До свидания» // вернет Ложь

Строковые функции в 1с позволяют работать с примитивным типом данных строка. Полный набор этих функций доступен в самых новых версиях платформы. В старых платформах некоторые функции могут отсутствовать.

Строка-примитивный тип данных в языке программирования 1с.

Значения типа “Строка” в тексте программного модуля заключаются в кавычки.
Пример значения строкового типа: “это — строка”.
Рассмотрим функции работы со строками.

строковые функции 1с

строковые функции 1с

Строка()

Функция Строка() позволяет получить текстовое представление переменной другого типа.

Строка(ТекущаяДата());//"09.12.2020 01.01.01"
Строка(Истина);//Да
Строка(1010);//"1 010"

СтрДлина()

Длина строки СтрДлина(Строка)-определяет количество символов в строке.

строковые функции 1с
Вычисление длины строки 1с

СокрЛ(), СокрП(), СокрЛП()

Функции удаление пробелов и незначащих символов.
Эта функция удаляет следующе незначащие символы:

  • “Пробел”;
  • “Неразрывный пробел (НПП)”;
  • “Горизонтальная табулция (Таб)”;
  • “Вертикальная табуляция (ВТаб)”;
  • “Возврат коретки (ВК)”;
  • “Перевод строки (ПС)”.

Удаление пробелов слева. СокрЛ(Строка).

строковые функции 1с
Функция удаления пробелов слева

Удаление пробелов справа. СокрП(Строка).

строковые функции 1с
Функция удаления пробелов справа

Удаление пробелов слева и справа. СокрЛП(Строка).

строковые функции 1с
Функция удаления пробелов слева и справа

Лев(), Прав(), Сред()

Функции выделения или выбора символов из строки.

Лев(Строка,3)-выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.

строковые функции 1с
Функция Лев() в 1с

Прав(Строка,3)- выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.

строковые функции 1с
Функция Прав() в 1с

Сред(Строка,2,3)-Выделить начиная со второго три символа. Функция имеет три аргумента: Строка откуда выбираются символы, номер позиции с которой начинается выбор символов и количество выбираемых символов.

строковые функции 1с
Функция Сред() в 1с

ВРег(), НРег(), ТРег()

Строковые функции управляющие регистром букв.

  • ВРег()-верхний регистр
  • НРег()-нижний регистр
  • ТРег()-у каждого слова первая буква большая

ПустаяСтрока()

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

ПустаяСтрока("Приветсвие");//Ложь
ПустаяСтрока(" ");//Истина

//Аналог
СокрЛП(" ");//Истина

СтрНайти()

Функция Найти() возвращает положение первого символа заданной подстроки. Если такая подстрока не найдена, система возвращает ноль.

ИмяКонфигурации = «1С Управление торговлей»;
Позиция = Найти(ИмяКонфигурации, «торг»);
Сообщить(Позиция);

СтрЗаменить()

Эта функция позволяет массово заменить искомое значение на заданное

СтрЗаменить("Максимальное значение", "Максимальное", "Минимальное");//Минимальное значение

СтрЧислоСтрок()

Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символ.ПС)

КоличествоСтрок = СтрЧислоСтрок("Привет" + Символы.СП + "Мир"+ Символы.ПС+ "Добрый день!");

//КоличествоСтрок = 3; 

СтрПолучитьСтроку()

Данная функция предназначена для получения строки из многострочного текста.

СтрокаНомер3=СтрПолучитьСтроку(Текст,3);

СтрЧислоВхождений()

Функция для подсчета числа вхождений произвольного фрагмента в строку.

СтрЧислоВхождений("тестирование программы","т");//2

Символ() и КодСимвола()

Две обратные функции. С помощью функции КодСимвола() можно получить код символа в кодировке Unicode.

Номер=КодСимвола("Т")// 1058

Функция Символ() позволяет получить символ зная его Unicode кодификатор.

Символ("1058");//"Т"

СтрРазделить()

Функция СтрРазделить() позволяет разделить Строку в массив подстрок. Пример использования функции рассмотрен в статье: Преобразовать массив 1с в строку.

МассивПодстрок = СтрРазделить("Привет Мир", " ");
//МассивПодстрок[0] = "Привет";
//МассивПодстрок[1] = "Мир"; 

СтрСоединить

Функция СтрСоединить() обратная функции СтрРазделить(). СтрСоединить объединяет массив подстрок в одну строку. Пример использования функции рассмотрен в статье: Преобразовать масссив 1с в строку.

МассивПодстрок = Новый Массив;
МассивПодстрок[0] = "Привет";
МассивПодстрок[1] = "Мир";
Строка = СтрСоединить(МассивПодстрок, " ");
//Строка = "Привет Мир"; 

ВвестиСтроку()

Введение строкового значения возможно с помощью функции ВвестиСтроку(). Пример:

        Перем Имя;
	
	Имя="";
	
	ВвестиСтроку(Имя,"Введите Имя");
	

СтрШаблон()

Функция СтрШаблон() формирует конечную строку, путем подстановки строковых представлений фактических параметров в указанные места шаблона. Шаблон может состоять из текста и параметров. Каждый параметр начинается с подстановочного знака %(процент), за которым следует порядковый номер параметра. Нумерация параметров начинается с 1. Если количество параметров в шаблоне не совпадает с количеством фактически переданных параметров, будет сгенерировано исключение: «Недостаточно фактических параметров» или «Очень много параметров».

Номенклатура = "Стол деревянный";
Артикул = "02515";

Стр = СтрШаблон("Товар: %1, Артикул: %2 не найден!", Номенклатура, Артикул);
Сообщить(Стр);
//Результат:
//	Товар: Стол деревянный, Артикул: 02515 не найден!

Строковые функции 1с. Примеры использования.

Конкатенация строк в 1с

Конкатенация или объединение строк в 1с производиться оператором “+”.

"Первая строка"+"Вторая";//Первая строкаВторая

Кавычки в строке 1с

Для заключения названия в кавычки, необходимо внутри строки отобразить кавычку как символ. Для этого, в строке необходимо написать две кавычки подряд. Например

НазваниеОрганизации=" Общество с ограниченной ответственность ""Новая Организация"";

Нами рассмотрены строковые функции.

функция Строка пробелов

Получает строку пробелов заданной длины.

&НаСервере
функция ПолучитьСтрокуПробелов(Длина)
	
	Строка="11111 11111 11111 11111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 ";

			пустаяСтрока=Лев(СтрЗаменить(Строка,"1"," "),Длина+Окр(Длина/2));
	возврат ПустаяСтрока;
конецфункции

Понравилась статья? Поделить с друзьями:
  • Как найти тайник на кости на свалке
  • Как найти гомолог в химии
  • Как найти чайник в роблоксе
  • Как найти карту дикси в приложении
  • Как найти фильтрацию поиска