• 1с найти позицию в строке. Ускорение «больших» документов

    Строка — один из примитивных типов данных в системах 1С:Предприятие 8. Переменные с типом строка содержат текст.

    Значения переменных типа строка заключаются в двойные кавычки. Несколько переменных данного типа можно складывать.

    Пер1 = "Слово 1" ;
    Пер2 = "Слово 2" ;
    Пер3 = Пер1 + " " + Пер2 ;

    В итоге Пер3 будет иметь значение «Слово 1 Слово 2″.

    Кроме того, в системах 1С:Предприятие 8 предусмотрены функции для работы со строками. Рассмотрим основные:

    ВвестиСтроку(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — функция предназначена для вывода диалогового окна, в котором пользователь может указать значение переменной типа Строка . Параметр <Строка> является обязательным и содержит имя переменной, в которую будет записана введенная строка. Параметр <Подсказка> необязательный — это заголовок диалогового окна. Параметр <Длина> необязательный, показывает максимальную длину вводимой строки. По умолчанию равен нулю, что означает неограниченную длину. Параметр <Многострочность> необязательный. Определяет режим ввода многострочного текста: Истина — ввод многострочного текста с разделителями строк; Ложь — ввод простой строки.

    Строку можно ввести и, зная код символа в кодировке Unicode:

    Символ(<КодСимвола>) — код вводится в виде числа.

    Буква= Символ(1103 ) ; // Я

    Существует и обратная функция, позволяющая узнать код какого-либо символа.

    КодСимвола(<Строка>, <НомерСимвола>) — возвращает номер указанного символа в кодировке Unicode в виде числа.

    Функции преобразования регистра текста:

    ВРег(<Строка>) — преобразует все символы строки в верхний регистр.

    НРег(<Строка>) — преобразует все символы строки в нижний регистр.

    ТРег(<Строка>) — преобразует все символы строки в титульный регистр. То есть первые буквы во всех словах преобразуется в верхний регистр, а остальные буквы — в нижний.

    Функции поиска и замены символов в строке:

    Найти(<Строка>, <ПодстрокаПоиска>) — находит номер символа вхождения подстроки поиска. Например:

    Найти ("Строка" , "ока" ) ; // 4

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

    Номер4 Вхождения= СтрНайти ("Обороноспособность" , "о" , НаправлениеПоиска. СНачала, 1 , 4 ) ; // 7

    СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

    СтрЗаменить ("Строка" , "ока" , "" ) ; // Стр

    ПустаяСтрока(<Строка>) – проверяет строку на наличие значащих символов. Если значащих символов нет, или вообще никаких символов нет, то возвращается значение Истина . В противном случае — Ложь .

    СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>) – вычисляет число вхождений подстроки поиска в исходной строке.

    СтрЧислоВхождений ("учиться, учиться и еще раз учиться" , "учиться" , "" ) ; // 3

    СтрШаблон(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — подставляет параметры в строку по номеру. Строка должна содержать маркеры подстановки вида: «%1..%N». Нумерация маркеров начинается с 1. Если значение параметра Неопределено , подставляется пустая строка.

    СтрШаблон ("Параметр 1 = %1, Параметр 2 = %2" , "1" , "2" ) ; // Параметр 1= 1, Параметр 2 = 2

    Функции преобразования строк:

    Лев(<Строка>, <ЧислоСимволов>) – возвращает первые сначала символы строки.

    Прав(<Строка>, <ЧислоСимволов>) – возвращает последние символы строки.

    Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – возвращает строку длиной в <ЧислоСимволов>, начиная с символа <НачальныйНомер>.

    СокрЛ(<Строка>) отсекает незначащие символы, стоящие слева от первого значащего символа в строке.

    СокрП(<Строка>) — отсекает незначащие символы, стоящие справа от последнего значащего символа в строке.

    СокрЛП(<Строка>) – отсекает незначащие символы, стоящие слева от первого значащего символа в строке и справа от последнего значащего символа в строке.

    СтрПолучитьСтроку(<Строка>, <НомерСтроки>) – получает строку многострочной строки по номеру.

    Прочие функции:

    СтрДлина(<Строка>) – возвращает количество символов в строке.

    СтрЧислоСтрок(<Строка>) – возвращает число строк в многострочной строке. Строка считается новой, если она отделена от предыдущей символом перевода строки.

    СтрСравнить(<Строка1>, <Строка2> ) – сравнивает две строки без учета регистра. Функция работает аналогично объекту СравнениеЗначений . Возвращает:

    • 1 — если первая строка больше второй
    • -1 — если вторая строка больше первой
    • 0 — если строки равны

    СтрСравнить("Первая строка" , "Вторая строка" ) ; // 1

    В данной статье я расскажу вам про функцию быстрого поиска 1С Предприятие 8. Что такое быстрый поиск? Очень просто. Быстрый поиск — это один из способов навигации в больших списках записей 1С. Это могут быть списки документов, справочники , регистры — все то, что представлено таблицами.

    Что такое быстрый поиск?

    Функция быстрого поиска в документах 1С Предприятие чрезвычайно удобна и позволяет не пролистывать огромные массивы данных (к примеру, с помощью полосы прокрутки), а сразу перейти к нужному месту в списке. К сожалению, начинающие пользователи 1С Предприятие 8 (в том числе и 1С Бухгалтерии 8) поначалу не используют возможности быстрого поиска, предпочитая листать списки документов вручную (а они могут быть очень большими). Данная статья поможет вам разобраться с использованием быстрого поиска в 1С.

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

    Быстрый поиск в 1С Бухгалтерии 8.2

    В версиях 1С Бухгалтерии с 8.0 по 8.2 функция предназначена именно для перехода к нужной части списка. Для примера посмотрите на окно плана счетов , приведённое на рисунке.


    В окне выделена некоторая строка. Обратите внимание малозаметный треугольник из полосок, на который указывает красная стрелка. Как и в других программах Windows, где есть списки (например, в Проводнике), положение этого маркера (треугольника) определяет сортировку списка в целом — в какой колонке установлен маркер, по той и будет отсортирован весь список. На рисунке маркер стоит в колонке Код , следовательно счета в плане счетов будут отсортированы по коду.

    Маркер можно перемещать с одной колонки на другую, щёлкая на нужной колонке (на ЗАГОЛОВКЕ колонки! ) мышкой. Если маркер и так уже стоит в текущей колонке, то щелчок приведет к изменению направления сортировки на противоположное (т.е. от большего к меньшему или наоборот). Это стандартное поведение для любых программ Windows. В чем же особенность этого маркера в 1С Предприятии и как это связано с быстрым поиском?

    Быстрый поиск в списках 1С Предприятие 8 осуществляется по колонке, в которой стоит маркер. В данном случае быстрый поиск в плане счетов будет осуществляться по колонке Код.

    Тут была важная часть статьи, но без JavaScript её не видно!

    Как пользоваться быстрым поиском в 1С? Легко! Просто начните печатать то, что хотите найти в ДАННОЙ колонке , т.е. там, где стоит маркер. В примере на рисунке выше следует вводить номер счета. Например, вы хотите найти счет 50 Касса . В таком случае введите (мышкой щелкать никуда не нужно! ) число 50 с клавиатуры и если в данной колонке есть счет с таким номером (а он, конечно, есть), то список прокрутится до этой строки, а сама строка окажется выделенной. Результат показан на скриншоте плана счетов ниже.

    сайт_

    Текст, на который указывает стрелка, стирать потом не нужно — он сам исчезнет.

    Если в приведенном примере начать вводить слово "Касса", то текст в нижней части окна будет вводится, а затем стираться. Происходит это потому, что как только начало вводимой строки быстрого поиска перестает совпадать с началом хотя бы одной строки в данной колонке, 1С Предприятие делает вывод, что искомая строка не найдена и автоматически её стирает. В связи с этим следует запомнить два правила .

    В 1С Предприятии 8 быстрый поиск производится по началу строки, т.е. в колонке ищется совпадение вводимого текста с началом одной из строк этой колонки.
    Отсюда вытекает важная рекомендация: при вводе данных в справочники именуйте элементы так, чтобы их было удобно искать при помощи быстрого поиска. Например, название контрагента лучше писать как "ИмяФирмы ООО", чем "ООО ИмяФирмы". И тем более не стоит использовать в названии кавычки и прочие ненужные символы (речь идет о заполнении поля Наименование в формах).

    Если вы начали вводить текст, а он стирается — то, что вы ищете, отсутствует в данной колонке! В этом случае проверьте язык ввода, а также колонку в которой производится быстрый поиск. Типичная ошибка — выбрана не та колонка. Например, маркер установлен в колонке Код, а поиск производится по названию счета.

    Быстрый поиск в 1С Бухгалтерии 8.3

    Теперь посмотрим, чем отличается быстрый поиск в версии 1С Предприятие 8.3 . Использование во многом схоже с версией 8.2, однако есть одно существенное отличие, которое следует запомнить.

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

    Как этим пользоваться, мы с вами сейчас выясним. Для начала посмотрите на скриншот окна плана счетов 1С Бухгалтерии 8.3, приведенный ниже.

    сайт_

    Как видите, тот же самый маркер в одной из колонок. Поиск так же производится по колонке, в которой установлен маркер. Это всё осталось без изменений. Однако, если начать вводить текст (в примере - номер счета), то произойдет следующее.

    сайт_

    Как видите, просто автоматически открылось окно поиска. Такое же точно окно откроется, если нажать на кнопку поиска на панели инструментов окна (на рисунке подчеркнута). В результате при нажатии в окне поиска кнопки Найти (на картинке скрыта за выпадающим меню) или просто Enter, то получиться следующий результат.

    сайт_

    Отсюда видно, что быстрый поиск в 1С Бухгалтерии 8.3 просто оставляет видимой часть списка, удовлетворяющую условиям поиска. При этом кнопка Найти пропадает, а вместо неё появляется линза с крестиком (на рис. подчеркнута), при нажатии на которую список возвращается в исходное состояние (при этом остаётся выделена строка, найденная в результате быстрого поиска).

    Еще одна важная особенность быстрого поиска в 1С Бухгалтерии 8.3 — совпадение ищется не по началу строки, как в версии 8.2, а производится поиск на совпадение с любой частью строк в колонке. Таким образом, если контрагента назвать "ООО ИмяФирмы", а при поиске начать вводить "ИмяФирмы ООО", то строка все равно найдется!

    Делаем выводы

    Таким образом, быстрый поиск в 1С Бухгалтерии 8.2 и более ранних версиях предназначается для прокрутки списка к нужной строке, а в 1С Бухгалтерии 8.3 быстрый поиск работает как обычный фильтр, скрывая ненужную вам часть списка.

    Главная Заметки из Зазеркалья

    07.02.2013 Поиск по строке

    Реализовано в версии 8.3.3.641.

    Мы серьёзно улучшили ввод по строке. Для этого нам пришлось реализовать новый мощный механизм поиска в поле ввода. Теперь он может быстро работать по миллионам записей, содержащихся в базе данных.

    Мы проанализировали задачи поиска, возникающие у пользователей. Провели "ревизию" имеющихся в платформе механизмов, которые используют различные алгоритмы поиска. В результате ввод по строке приобрёл качественно новые возможности.

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

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

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

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

    Использование полнотекстового поиска при вводе по строке включается отдельным свойством:

    С помощью полнотекстового поиска пользователи могут среди больших объёмов данных быстро находить подходящие данные по любому из слов, содержащихся, например, в наименовании:

    Также они могут искать и по нескольким известным словам. Незаконченные слова будут автоматически дополняться возможными сочетаниями:

    Если объём данных велик, то в обоих случаях вы можете указать, что поиск должен выполняться с помощью фонового задания:

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

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

    Все перечисленные свойства вы можете, при необходимости, переопределить в процессе выполнения прикладного решения.

    На клиенте - в клиентских обработчиках событий поля ввода АвтоПодбор и ОкончаниеВводаТекста :

    На сервере - в модуле менеджера того объекта, в данных которого выполняется поиск. В обработчике события ОбработкаПолученияДанныхВыбора :

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

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

    СтрЗаменить(Номер, Лев (Номер, 3 ), "" );

    Когда заглянул в синтакс-помощник так мне это понравилось, что захотелось написать о работе с строками в «1С:Предприятие» .

    Строка в 1С относится к примитивному типу данных.

    Если посмотреть в справку 1С увидим следующее описание типа Строка (String)
    Значения данного типа содержат строку в формате Unicode произвольной длины.
    Если своими словами о строках то получится. Строка — константа, состоящая из различных символов, обрамляется всегда кавычками.

    Задание строки
    Обращение = «Привет пассажир»;

    Многострочные строки в типовых конфигурациях чаще всего создаются с помощью вертикального разделителя «|»:
    Строка = «Многострочная
    |строка
    |пиши
    |текст»;

    Кавычка внутри строки задаются двойными кавычками.
    Строка = «»Текст в кавычках»»;

    Над строками существует множество операций (поиск в нутрии строки, определение первых и т.д.), лучше посмотреть Синтакс-помощник.
    Синтакс-помощник — Общее описание встроенного языка-> встроенные функции-> функции по работе со строками.

    Функций по работе со строками

    Здесь в краткой форме приведу функций по работе со строками:

    ВРег(<Строка>) — Все символы строки функция преобразует в верхний регистр.

    КодСимвола(<Строка>, <НомерСимвола>) – Функция получает код символа, расположенного в переданной строке в позиции с указанным номером.

    Лев(<Строка>, <ЧислоСимволов>) – Функция выбирает первые слева символы строки.

    Найти(<Строка>, <ПодстрокаПоиска>) — Функция находит вхождение искомой строки как подстроки в исходной строке.

    НРег(<Строка>) — Функция преобразует все символы строки в нижний регистр.

    Прав(<Строка>, <ЧислоСимволов>) – Данная функция отличается от функций Лев (Left) тем что выбирает последние справа символы строки.

    ПустаяСтрока(<Строка>) — Функция проверяет строку на наличие значащих символов.

    Символ(<КодСимвола>) — Функция преобразует код символа в строку, содержащую символ.

    СокрЛ(<Строка>) — Функция отсекает незначащие символы, стоящие слева от первого значащего символа в строке.

    СокрЛП(<Строка>) — Функция отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.

    СокрП(<Строка>) — Функция отсекает незначащие символы, стоящие справа от последнего значащего символа в строке.

    Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Функция выбирает строку символов, начиная с символа <НачальныйНомер>, общим количеством <ЧислоСимволов>.

    СтрДлина(<Строка>) — Функция получает количество символов в строке.

    СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Функция находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

    СтрПолучитьСтроку(<Строка>, <НомерСтроки>) — Функция получает строку многострочной строки по номеру.

    СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>) — Функция вычисляет число вхождений подстроки поиска в исходной строке.

    СтрЧислоСтрок(<Строка>) — Функция считает число строк в многострочной строке. В многострочной строке, строки разделены символами перевода строк.

    ТРег(<Строка>) — Функция преобразует строку к титульному регистру. Это означает, что у каждого слова первый символ преобразуется к титульному регистру или к верхнему регистру, если титульный регистр для символа не определен. Остальные символы преобразуются к нижнему регистру.

    Преобразования типов
    Для явного преобразования типов данных существуют функции одноименные с типом данных, к которому происходит преобразование: Строка(<Значение>)

    СтрокаИзЧисел= Строка(Число);

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

    Примеры по работе с строками

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

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

    Год = Формат(ТекущаяДата(), "ДФ=yyyy" ) // Год = "2012"

    Чтобы преобразовать число к строке без вставки символа-разделителя групп (неразрывного пробела), необходимо применить функцию Формат с параметром ЧГ=0:

    Число = 2012 Строка = Формат(Число, "ЧГ=0" ); //Строка = "2012"

    Строка Без пробелов.

    Строки в 1С 8.3 во встроенном языке 1с представляют собой значения примитивного типа Строка . Значения данного типа содержат строку в формате Unicode произвольной длины. Переменные строкового типа являются набором символов заключенных в кавычки.

    Пример 1. Создадим строковую переменную с текстом.

    СтроковаяПеременная = "Привет мир!";

    Функции работы со строками в 1с 8.3

    В данном разделе будут приведены основные функции, позволяющие изменять строки в 1с, либо анализировать информацию содержащуюся в них.

    СтрДлина

    СтрДлина(<Строка>) . Возвращает количество символов содержащихся в строке, переданной в параметре.

    Пример 2. Посчитаем количество символов в строке «Привет мир!».

    Строка = "Привет мир!"; КоличествоСимволов = СтрДлина(Строка); Сообщить(КоличествоСимволов);

    Итогом выполнения данного кода будет вывод на экран количества символов строки: 11.

    СокрЛ

    СокрЛ(<Строка>) . Отсекает незначащие символы, стоящие слева от первого значащего символа в строке.
    Незначащие символы:

    • пробел;
    • неразрывный пробел;
    • табуляция;
    • возврат каретки;
    • перевод строки;
    • перевод формы (страницы).

    Пример 3. Убрать все пробелы с левой стороны строки » мир!» и присоединить к ней строку «Привет «.

    Строка = СокрЛ(" мир!"); Строка = "Привет "+Строка; Сообщить(Строка);

    Итогом выполнения данного кода будет вывод на экран строки «Привет мир!».

    СокрП

    СокрП(<Строка>) . Отсекает незначащие символы, стоящие справа от первого значащего символа в строке.

    Пример 4. Сформировать из строк «Привет » и » мир!» фразу «Привет мир!»

    Строка = СокрП("Привет ")+" "+СокрЛ(" мир!"); Сообщить(Строка);

    СокрЛП

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

    Пример 5. Убрать незначащие символы стоящие слева и справа в наименовании контрагента.

    Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", "0777121211"); КонтрагентОбъект = Контрагент.ПолучитьОбъект(); КонтрагентОбъект.Наименование = СокрЛП(КонтрагентОбъект.Наименование); КонтрагентОбъект.Записать();

    Лев

    Лев(<Строка>, <ЧислоСимволов>) . Получает первые символы строки, число символов указывается в параметре ЧислоСимволов.

    Пример 6. Пусть в структуре Сотрудник содержаться имя, фамилия и отчество сотрудника. Получить строку с фамилией и инициалами.

    ИнициалИмени = Лев(Сотрудник.Имя, 1); ИнициалОтчества = Лев(Сотрудник.Отчество, 1); ПолноеИмя = Сотрудник.Фамилия + " " + ИнициалИмени + "." + ИнициалОтчества + ".";

    Прав

    Прав(<Строка>, <ЧислоСимволов>) . Получает последние символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.

    Пример 7. Пусть в конце строковой переменной записана дата в формате «ггггммдд», получить строку с датой и преобразовать ее к типу Дата .

    Строка = "Текущая дата: 20170910"; СтрокаДата = Прав(Строка, 8); Дата = Дата(СтрокаДата);

    Сред

    Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Получает подстроку из строки переданной в параметре Строка , начиная с символа номер которого указан в параметре НачальныйНомер и длиной переданной в параметр ЧислоСимволов. Нумерация символов в строке начинается с 1. Если в параметре НачальныйНомер указано значение, меньшее или равное нулю, то параметр принимает значение 1. Если параметр ЧислоСимволов не указан, то выбираются символы до конца строки.

    Пример 8. Пусть в строковой переменной начиная с девятой позиции содержится код региона, следует получить его и записать в отдельную строку.

    Строка = "Регион: 99 г. Москва"; Регион = Сред(Строка, 9, 2);

    СтрНайти

    СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Осуществляет поиск указанной подстроки в строке, возвращает номер позиции первого символа найденной подстроки. Рассмотрим параметры данной функции:

    • Строка . Исходная строка;
    • ПодстрокаПоиска . Искомая подстрока;
    • НаправлениеПоиска . Указывает направление поиска подстроки в строке. Может принимать значения:
      • НаправлениеПоиска.СНачала ;
      • НаправлениеПоиска.СКонца ;
    • НачальнаяПозиция . Указывает позицию в строке, с которой начинается поиск;
    • НомерВхождения . Указывает номер вхождения искомой подстроки в исходной строке.

    Пример 9. В строке «Привет мир!» определить позицию последнего вхождения символа «и».

    НомерПозиции = СтрНайти("Привет мир!", "и", НаправлениеПоиска.СКонца); Сообщить(НомерПозиции);

    Итогом выполнения данного кода будет вывод на экран номера последнего вхождения символа «и»: 9.

    ВРег

    ВРег(<Строка>) . Преобразует все символы указанной строки в 1с 8 к верхнему регистру.

    Пример 10. Преобразовать строку «привет мир!» к верхнему регистру.

    СтрокаВрег = ВРег("привет мир!"); Сообщить(СтрокаВрег);

    Итогом выполнения данного кода будет вывод на экран строки «ПРИВЕТ МИР!»

    НРег

    НРег(<Строка>) . Преобразует все символы указанной строки в 1с 8 к нижнему регистру.

    Пример 11. Преобразовать строку «ПРИВЕТ МИР!» к нижнему регистру.

    СтрокаНрег = НРег("ПРИВЕТ МИР!"); Сообщить(СтрокаВрег);

    Итогом выполнения данного кода будет вывод на экран строки «привет мир!»

    ТРег

    ТРег(<Строка>) . Преобразует строку следующим образом: первый символ каждого слова переводится в верхний регистр, остальные символы слова переводятся в нижний регистр.

    Пример 12. Сделать заглавными первые буквы слов в строке «привет мир!».

    СтрокаТрег = ТРег("привет мир!"); Сообщить(СтрокаТрег);

    Итогом выполнения данного кода будет вывод на экран строки «Привет Мир!»

    Символ

    Символ(<КодСимвола>) . Получает символ по его коду в кодировке Unicod.

    Пример 13. Добавим слева и справа в строку «Привет Мир!» символ ★

    СтрокаСоЗвездами = Символ("9733")+"Привет Мир!"+Символ("9733"); Сообщить(СтрокаСоЗвездами);

    Итогом выполнения данного кода будет вывод на экран строки «★Привет Мир!★»

    КодСимвола

    КодСимвола(<Строка>, <НомерСимвола>) . Получает код символа в кодировке Unicode из строки указанной в первом параметре, расположенного в позиции указанной во втором параметре.

    Пример 14. Узнать код последнего символа в строке «Привет Мир!».

    Строка = "Привет Мир!"; КодСимвола = КодСимвола(Строка, СтрДлина(Строка)); Сообщить(КодСимвола);

    Итогом выполнения данного кода будет вывод на экран кода символа «!» — 33.

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

    ПустаяСтрока(<Строка>) . Проверяет состоит ли строка только из незначащих символов, то есть является ли она пустой.

    Пример 15. Проверить является ли пустой строка состоящая из трех пробелов.

    Пустая = ПустаяСтрока(" "); Сообщить(Пустая);

    Итогом выполнения данного кода будет вывод на экран слова «Да» (строковое выражение логического значения Истина ).

    СтрЗаменить

    СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

    Пример 16. В строке «Привет Мир!» заменить слово «Мир» на слово «Друзья».

    Строка = СтрЗаменить("Привет Мир!", "Мир", "Друзья"); Сообщить(Строка);

    Итогом выполнения данного кода будет вывод на экран строки «Привет Друзья!»

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

    СтрЧислоСтрок(<Строка>) . Позволяет посчитать количество строк в многострочной строке. Для перехода на новую строку в 1с 8 используется символ ПС (символ перевода строки).

    Пример 17. Определить число строк в тексте:
    «Первая строка
    Вторая строка
    Третья строка»

    Число = СтрЧислоСтрок("Первая строка"+Символы.ПС +"Вторая строка"+Символы.ПС +"Третья строка"); Сообщить(Число);

    Итогом выполнения данного кода будет вывод на экран количества строк в тексте: 3

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

    СтрПолучитьСтроку(<Строка>, <НомерСтроки>) . Получает строку в многострочной строке по ее номеру. Нумерация строк начинается с 1.

    Пример 18. Получить последнюю строку в тексте:
    «Первая строка
    Вторая строка
    Третья строка»

    Текст = "Первая строка"+Символы.ПС +"Вторая строка"+Символы.ПС +"Третья строка"; ПоследняяСтрока = СтрПолучитьСтроку(Текст, СтрЧислоСтрок(Текст)); Сообщить(ПоследняяСтрока);

    Итогом выполнения данного кода будет вывод на экран строки «Третья строка».

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

    СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>) . Возвращает число вхождений указанной подстроки в строку. Функция чувствительна к регистру.

    Пример 19. Определить сколько раз входит в строку «Строки в 1с 8.3 и 8.2» буква «с», вне зависимости от ее регистра.

    Строка = "Строки в 1с 8.3 и 8.2"; ЧислоВхождений = СтрЧислоВхождений(Врег(Строка), "С"); Сообщить(ЧислоВхождений);

    Итогом выполнения данного кода будет вывод на экран числа вхождений: 2.

    СтрНачинаетсяС

    СтрНачинаетсяС(<Строка>, <СтрокаПоиска>) . Проверяет начинается ли строка переданная в первом параметре, со строки во втором параметре.

    Пример 20. Определить начинается ли ИНН выбранного контрагента с цифры 1. Пусть в переменной Контрагент Контрагенты .

    ИНН = Контрагент.ИНН; НачинаетсяСЕдиницы = СтрНачинаетсяС(ИНН, "1"); Если НачинаетсяСЕдиницы Тогда //Ваш код КонецЕсли;

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

    СтрЗаканчиваетсяНа(<Строка>, <СтрокаПоиска>) . Проверяет заканчивается ли строка переданная в первом параметре, на строку во втором параметре.

    Пример 21. Определить заканчивается ли ИНН выбранного контрагента на цифру 2. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты .

    ИНН = Контрагент.ИНН; ЗаканчиваетсяНаДвойку = СтрЗаканчиваетсяНа(ИНН, "2"); Если ЗаканчиваетсяНаДвойку Тогда //Ваш код КонецЕсли;

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

    СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>) . Разделяет строку на части по указанным символам-разделителям и записывает полученные строки в массив. В первом параметре хранится исходная строка, во втором строка содержащая разделитель, в третьем указывается, нужно ли записывать в массив пустые строки (по умолчанию Истина ).

    Пример 22. Пусть у нас есть строка содержащая числа разделенные символом «;», получить из строки массив чисел.

    Строка = "1; 2; 3"; Массив = СтрРазделить(Строка, ";"); Для Сч = 0 По Массив.Количество() - 1 Цикл Попытка Массив[Сч] = Число(СокрЛП(Массив[Сч])); Исключение Массив[Сч] = 0; КонецПопытки КонецЦикла;

    В результате выполнения будет получен массив с числами от 1 до 3-х.

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

    СтрСоединить(<Строки>, <Разделитель>) . Преобразует массив строк из первого параметра в строку, содержащую все элементы массива через разделитель, указанный во втором параметре.

    Пример 23. Используя массив чисел из предыдущего примера, получить исходную строку.

    Для Сч = 0 По Массив.Количество() - 1 Цикл Массив[Сч] = Строка(Массив[Сч]); КонецЦикла; Строка = СтрСоединить(Массив, "; ");