1с убрать пробелы в строке
Необходимость убрать лишние пробелы в строке возникает нередко, и в 1С предусмотрен набор инструментов для решения этой задачи. Пробел относиться к так называемым «незначащим символам». В данной статье мы рассмотрим не только удаление пробелов, но и остальных незначащих символом.
· Символ возврата каретки
Постараемся рассмотреть как можно больше вариантов решения этой задачи.
Итак, от простого к сложному.
1.Удаление лишних пробелов
Для удаления пробелов в строках в 1С предусмотрены функции
СокрЛ() – удалить пробелы слева
СокрП() – удалить пробелы справа
СокрЛП() – удалить все пробельные символы
Выглядит это так:
//Отсекает незначащие символы слева
Строка = СокрЛ(" Привет! ");
//Строка = "Привет! ";
//Отсекает незначащие символы справа
Строка = СокрП(" Привет! ");
//Строка = " Привет!";
//Отсекает незначащие символы слева и справа
Строка = СокрЛП(" Привет! ");
//Строка = "Привет!";
2.Замена пробелов
Замена пробелов нужна если пробел находится в строковом представлении числа
//ПрСтрока = Убираем пробелы
3.Как убрать неразрывные пробелы?
Неразрывный пробел – это пробел, по которому не должен выполняться перенос на другую строку или другое разбиение текста при форматировании.
При представлении числового значения в строковое (Функция Строка(Число);) система может записать число с использованием пробелов, т.е. могут появиться разделители групп числа. Например, число 20000 система преобразовав в строку, добавит нам пробел «20 000».
Удаление лишних пробелов в таком случае можно выполнить через функцию Формат(), которая позволяет превратить число, дату или булево в строку. Функция Формат() принимает два параметра: – это собственно то значение, которому мы хотим придать какой-либо вид, и – второй параметр, в котором и заключается весь смысл функции Формат(). В рассматриваемом примере мы будем использовать ЧГ (NG) – порядок группировки разрядов числа.
В качестве значения указываются числа через запятую, обозначающие количество группируемых разрядов справа налево. Но мы не будем задавать значение и получим строковое представление числа без пробелов.
Строка = Формат(20000, "ЧГ 20000";
Для того, чтобы убрать неразрывные пробелы, также можно воспользоваться функцией СтрЗаменить(). Эта функция позволяет заменить одну подстроку на другую, то есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.
Строка = СтрЗаменить(" Привет! Привет!", Символы.НПП, "");
//Строка = " Привет!Привет!";
Иногда приведенные выше методы не удаляют пробельные символы. Такая ситуация может возникнуть, например, при работе с файлами Excel. Для решения данной задачи можно попробовать заменить, например, неразрывный пробел используя код символа 160 (код символа неразрывного пробела) на пустую строку.
Строка = СтрЗаменить(" Строка ", Символ(160),"");
//Строка = "Строка";
4. Удаление из строки символов табуляции, символа возврата каретки, перевода Строки и перевода формы
Для этих символом в 1С описано перечисление Символы (Chars) со значениями:
ВК – символ возврата каретки;
ВТаб – вертикальная табуляция;
НПП – неразрывный пробел;
ПС – перевод строки;
ПФ – перевод формы (страницы);
Таб (Tab) – горизонтальная табуляция.
Для удаления этих символов в строке можно использовать функцию замены СтрЗаменить(). Можно также использовать символы с соответствующими кодами по ASCII или Unicode. Например, вместо Символы.ВК и Символы.ПС поставить соответственно Символ(10) и Символ(13).
Строка = СтрЗаменить(" Привет! Привет!", Символы.таб,"");
Строка = СтрЗаменить(" Привет! Привет!", Символы.(13),"");
5. Еще несколько способов удаления лишних пробелов в строке в 1С
По умолчанию программа "1С:Предприятие 8" преобразует значения типа Число и Дата к строке в соответствии с национальными установками. В меню «Администрирование → Региональные установки информационной базы» можно изменить и отдельные параметры форматирования дат и чисел, а также представление значений типа Булево. Например, можно в конкретной информационной базе отключить разделение триад числовых значений. Тогда при представлении числа в виде строки система не будет добавлять лишний пробел, а нам не нужно будет его, в последствии, удалять.
Вариант, когда нужно из многострочия получить одну строку, то есть убрать лишние пробелы ПС. Сделать это можно, используя функцию СтрПолучитьСтроку(, ).
Смоделируем ситуацию для примера. Наша задача – убрать убрать лишние пробелы в строке и символы перевода строки.
Код будет выглядеть следующим образом:
Код, убирающий лишние пробелы в строке
В итоге получим удаление лишних пробелов:
Преобразование строки путем удаления лишних пробелов
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Необходимость убрать лишние пробелы в строке возникает нередко, и в 1С предусмотрен набор инструментов для решения этой задачи. Пробел относиться к так называемым «незначащим символам». В данной статье мы рассмотрим не только удаление пробелов, но и остальных незначащих символом.
· Символ возврата каретки
Постараемся рассмотреть как можно больше вариантов решения этой задачи.
Итак, от простого к сложному.
1.Удаление лишних пробелов
Для удаления пробелов в строках в 1С предусмотрены функции
СокрЛ() – удалить пробелы слева
СокрП() – удалить пробелы справа
СокрЛП() – удалить все пробельные символы
Выглядит это так:
//Отсекает незначащие символы слева
Строка = СокрЛ(" Привет! ");
//Строка = "Привет! ";
//Отсекает незначащие символы справа
Строка = СокрП(" Привет! ");
//Строка = " Привет!";
//Отсекает незначащие символы слева и справа
Строка = СокрЛП(" Привет! ");
//Строка = "Привет!";
2.Замена пробелов
Замена пробелов нужна если пробел находится в строковом представлении числа
//ПрСтрока = Убираем пробелы
3.Как убрать неразрывные пробелы?
Неразрывный пробел – это пробел, по которому не должен выполняться перенос на другую строку или другое разбиение текста при форматировании.
При представлении числового значения в строковое (Функция Строка(Число);) система может записать число с использованием пробелов, т.е. могут появиться разделители групп числа. Например, число 20000 система преобразовав в строку, добавит нам пробел «20 000».
Удаление лишних пробелов в таком случае можно выполнить через функцию Формат(), которая позволяет превратить число, дату или булево в строку. Функция Формат() принимает два параметра: – это собственно то значение, которому мы хотим придать какой-либо вид, и – второй параметр, в котором и заключается весь смысл функции Формат(). В рассматриваемом примере мы будем использовать ЧГ (NG) – порядок группировки разрядов числа.
В качестве значения указываются числа через запятую, обозначающие количество группируемых разрядов справа налево. Но мы не будем задавать значение и получим строковое представление числа без пробелов.
Строка = Формат(20000, "ЧГ 20000";
Для того, чтобы убрать неразрывные пробелы, также можно воспользоваться функцией СтрЗаменить(). Эта функция позволяет заменить одну подстроку на другую, то есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.
Строка = СтрЗаменить(" Привет! Привет!", Символы.НПП, "");
//Строка = " Привет!Привет!";
Иногда приведенные выше методы не удаляют пробельные символы. Такая ситуация может возникнуть, например, при работе с файлами Excel. Для решения данной задачи можно попробовать заменить, например, неразрывный пробел используя код символа 160 (код символа неразрывного пробела) на пустую строку.
Строка = СтрЗаменить(" Строка ", Символ(160),"");
//Строка = "Строка";
4. Удаление из строки символов табуляции, символа возврата каретки, перевода Строки и перевода формы
Для этих символом в 1С описано перечисление Символы (Chars) со значениями:
ВК – символ возврата каретки;
ВТаб – вертикальная табуляция;
НПП – неразрывный пробел;
ПС – перевод строки;
ПФ – перевод формы (страницы);
Таб (Tab) – горизонтальная табуляция.
Для удаления этих символов в строке можно использовать функцию замены СтрЗаменить(). Можно также использовать символы с соответствующими кодами по ASCII или Unicode. Например, вместо Символы.ВК и Символы.ПС поставить соответственно Символ(10) и Символ(13).
Строка = СтрЗаменить(" Привет! Привет!", Символы.таб,"");
Строка = СтрЗаменить(" Привет! Привет!", Символы.(13),"");
5. Еще несколько способов удаления лишних пробелов в строке в 1С
По умолчанию программа "1С:Предприятие 8" преобразует значения типа Число и Дата к строке в соответствии с национальными установками. В меню «Администрирование → Региональные установки информационной базы» можно изменить и отдельные параметры форматирования дат и чисел, а также представление значений типа Булево. Например, можно в конкретной информационной базе отключить разделение триад числовых значений. Тогда при представлении числа в виде строки система не будет добавлять лишний пробел, а нам не нужно будет его, в последствии, удалять.
Вариант, когда нужно из многострочия получить одну строку, то есть убрать лишние пробелы ПС. Сделать это можно, используя функцию СтрПолучитьСтроку(, ).
Смоделируем ситуацию для примера. Наша задача – убрать убрать лишние пробелы в строке и символы перевода строки.
Код будет выглядеть следующим образом:
Код, убирающий лишние пробелы в строке
В итоге получим удаление лишних пробелов:
Преобразование строки путем удаления лишних пробелов
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Необходимость убрать лишние пробелы в строке возникает нередко, и в 1С предусмотрен набор инструментов для решения этой задачи. Пробел относиться к так называемым «незначащим символам». В данной статье мы рассмотрим не только удаление пробелов, но и остальных незначащих символом.
· Символ возврата каретки
Постараемся рассмотреть как можно больше вариантов решения этой задачи.
Итак, от простого к сложному.
1.Удаление лишних пробелов
Для удаления пробелов в строках в 1С предусмотрены функции
СокрЛ() – удалить пробелы слева
СокрП() – удалить пробелы справа
СокрЛП() – удалить все пробельные символы
Выглядит это так:
//Отсекает незначащие символы слева
Строка = СокрЛ(" Привет! ");
//Строка = "Привет! ";
//Отсекает незначащие символы справа
Строка = СокрП(" Привет! ");
//Строка = " Привет!";
//Отсекает незначащие символы слева и справа
Строка = СокрЛП(" Привет! ");
//Строка = "Привет!";
2.Замена пробелов
Замена пробелов нужна если пробел находится в строковом представлении числа
//ПрСтрока = Убираем пробелы
3.Как убрать неразрывные пробелы?
Неразрывный пробел – это пробел, по которому не должен выполняться перенос на другую строку или другое разбиение текста при форматировании.
При представлении числового значения в строковое (Функция Строка(Число);) система может записать число с использованием пробелов, т.е. могут появиться разделители групп числа. Например, число 20000 система преобразовав в строку, добавит нам пробел «20 000».
Удаление лишних пробелов в таком случае можно выполнить через функцию Формат(), которая позволяет превратить число, дату или булево в строку. Функция Формат() принимает два параметра: – это собственно то значение, которому мы хотим придать какой-либо вид, и – второй параметр, в котором и заключается весь смысл функции Формат(). В рассматриваемом примере мы будем использовать ЧГ (NG) – порядок группировки разрядов числа.
В качестве значения указываются числа через запятую, обозначающие количество группируемых разрядов справа налево. Но мы не будем задавать значение и получим строковое представление числа без пробелов.
Строка = Формат(20000, "ЧГ 20000";
Для того, чтобы убрать неразрывные пробелы, также можно воспользоваться функцией СтрЗаменить(). Эта функция позволяет заменить одну подстроку на другую, то есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.
Строка = СтрЗаменить(" Привет! Привет!", Символы.НПП, "");
//Строка = " Привет!Привет!";
Иногда приведенные выше методы не удаляют пробельные символы. Такая ситуация может возникнуть, например, при работе с файлами Excel. Для решения данной задачи можно попробовать заменить, например, неразрывный пробел используя код символа 160 (код символа неразрывного пробела) на пустую строку.
Строка = СтрЗаменить(" Строка ", Символ(160),"");
//Строка = "Строка";
4. Удаление из строки символов табуляции, символа возврата каретки, перевода Строки и перевода формы
Для этих символом в 1С описано перечисление Символы (Chars) со значениями:
ВК – символ возврата каретки;
ВТаб – вертикальная табуляция;
НПП – неразрывный пробел;
ПС – перевод строки;
ПФ – перевод формы (страницы);
Таб (Tab) – горизонтальная табуляция.
Для удаления этих символов в строке можно использовать функцию замены СтрЗаменить(). Можно также использовать символы с соответствующими кодами по ASCII или Unicode. Например, вместо Символы.ВК и Символы.ПС поставить соответственно Символ(10) и Символ(13).
Строка = СтрЗаменить(" Привет! Привет!", Символы.таб,"");
Строка = СтрЗаменить(" Привет! Привет!", Символы.(13),"");
5. Еще несколько способов удаления лишних пробелов в строке в 1С
По умолчанию программа "1С:Предприятие 8" преобразует значения типа Число и Дата к строке в соответствии с национальными установками. В меню «Администрирование → Региональные установки информационной базы» можно изменить и отдельные параметры форматирования дат и чисел, а также представление значений типа Булево. Например, можно в конкретной информационной базе отключить разделение триад числовых значений. Тогда при представлении числа в виде строки система не будет добавлять лишний пробел, а нам не нужно будет его, в последствии, удалять.
Вариант, когда нужно из многострочия получить одну строку, то есть убрать лишние пробелы ПС. Сделать это можно, используя функцию СтрПолучитьСтроку(, ).
Смоделируем ситуацию для примера. Наша задача – убрать убрать лишние пробелы в строке и символы перевода строки.
Код будет выглядеть следующим образом:
Код, убирающий лишние пробелы в строке
В итоге получим удаление лишних пробелов:
Преобразование строки путем удаления лишних пробелов
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Тип «Строка» встречается во всех языках программирования. Он является примитивным, и в 1С существует много функций для работы с ним. В данной статье мы подробно рассмотрим различные способы работы со строковыми типами в 1С 8.3 и 8.2 на примерах.
Строковые функции в 1С
Строка
Строка(Ложь) // возвращает «Нет»
Строка(12345) // возвращает «12 345»
Строка(ТекущаяДата()) //»21.07.2017 11:55:36″
Преобразовывать к строке возможно не только примитивные типы, но и остальные, например элементы справочников, документов.
СокрЛП, СокрЛ, СокрП
В качестве входных параметров данных функций выступает переменная строкового типа. Функции удаляют незначащие символы (пробелы, переносы каретки и прочие): с левой и правой стороны, только с левой стороны, и только с правой соответственно.
СокрЛП(» Будут удалены пробелы с обеих сторон «) // «Будут удалены пробелы с обеих сторон»
СокрЛ(» Будут удалены пробелы с обеих сторон «) // «Будут удалены пробелы слева »
СокрП(» Будут удалены пробелы с обеих сторон «) // « Будут удалены пробелы справа»
Лев, Прав, Сред
Данные функции позволяют обрезать часть строки. Функция «Лев()» вернет часть строки с ее левой стороны указанной длины. Функция «Прав()» аналогично, но обрезка производится справа. Функция «Сред()» позволяет указать номер символа, с которого будет выделена строка и ее длину.
Лев(«Строковая переменная», 4) // возвращает «Стро»
Прав(«Строковая переменная», 7) // возвращает «еременная»
Сред(«Строковая переменная», 2, 5)// возвращает «троко»
СтрДлина
Функция определяет количество символов, которые содержатся в строковой переменной.
СтрДлина(«Слово «) // результатом выполнения будет число 5
Найти
Функция дает возможность искать в какой-либо строковой переменной часть строки. В качестве возвращаемого значения будет выступать число, которое показывает позицию начала найденной строки. Если совпадений не обнаружено, возвращается ноль.
Обратите внимание, что поиск производится с учетом регистра. Если в изначальной строке будет больше одного вхождения подстроки поиска, функция вернет начало первого вхождения.
Найти(«раз, два, раз, два, три», «два») // функция вернет число 6
ПустаяСтрока
Использование данной функции позволяет определить, является ли строка пустой. Незначимые символы, например, пробел, перенос каретки и другие не учитываются.
ПустаяСтрока(«Пупкин Василий Иванович») // функция вернет значение Ложь
ПустаяСтрока(» «) // функция вернет значение Истина
ВРег, НРег, ТРег
Получите понятные самоучители по 1С бесплатно:
Данные функции очень полезны при сравнении и преобразовании строковых переменных. «Врег()» вернет исходную строку в верхнем регистре, «НРег()» в нижнем, а «ТРег()» отформатирует ее так, что первый символ каждого отдельного слова будет с большой буквы, а все последующие с маленькой.
ВРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «ГЕНЕРАЛЬНЫЙ ДИРЕКТОР»
НРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «генеральный директор»
ТРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «Генеральный Директор»
СтрЗаменить
Данная функция является аналогом замены в текстовых редакторах. Она позволяет подменять один символ или набор символов другим в строковых переменных.
СтрЗаменить(«красный, белый, желтый», «,», «;») // вернет «красный; белый; желтый»
СтрЧислоСтрок
Функция позволяет определить количество строк, разделенных переносом каретке в текстовой переменной.
Цикл, в приведенном ниже примере, пройдет три круга, так как функция СтрЧислоСтрок вернет значение 3:
Для инд=1 по СтрЧислоСтрок(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3») Цикл
КонецЦикла;
СтрПолучитьСтроку
Данная функция работает с многострочным текстом так же, как и предыдущая. Она позволяет получить определенную строку из текстовой переменной.
СтрПолучитьСтроку(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3», 2) // вернет «Строка2»
СтрЧислоВхождений
Функция подсчитывает количество вхождений символа или подстроки в искомой строке.
СтрЧислоВложений(«а;б;в;г; «, «;») // функция вернет число 4
Символ и КодСимвола
Эти функции позволяют получать символ по его коду в кодировке Unicode, а так же определять этот код по самому символу.
КодСимвола(«А») // функция вернет число 1 040
КодСимвола(1040) // функция вернет «А»
Частые задачи при работе со строками
Объединение строк
Чтобы объединить несколько строк (произвести конкатенацию) достаточно использовать оператор сложения.
«Строка 1″ + » Строка 2″ //результатом сложения двух строк будет «Строка 1 Строка 2»
Преобразование типов
Для того, чтобы преобразовать тип в строку, например, ссылку на элемент справочника, число и прочее, достаточно использовать функцию «Строка()». Функции, подобные «СокрЛП()» так же будут преобразовывать переменные в строку, но уже сразу с отсечением незначащих символов.
Обратите внимание, что при преобразовании числа в строку, программа автоматически добавила пробел, отделяющий тысячу. Для того чтобы этого избежать можно воспользоваться следующими конструкциями:
СтрЗаменить(Строка(1000),Символы.НПП,»») // вернет «1000»
Кавычки в строке
Довольно часто вам придется сталкиваться с необходимостью указать в строковой переменной кавычки. Это может быть как текст запроса, написанный в конфигураторе, так и просто переменная. Для решения данной задачи вам достаточно установить два символа кавычек.
Заголовок = Строка(«ООО «»Рога и копыта»» — это мы!») // вернет «ООО «Рога и копыта» — это мы!»
Многострочность, перенос строки
Для того, чтобы создать многострочный текст достаточно добавить в него символы переноса строки (Символы.ПС).
МногострочныйТекст = «Первая строка» + Символы.ПС + «Вторая строка»
Как убрать пробелы
Для того, чтобы убрать пробелы справа или слева можно воспользоваться функцией «СокрЛП()» (а так же «СокрЛ()» и «СокрП()»):
СтрокаБезПробелов = СокрЛП(» Много букв «) // функция вернет значение «Много букв»
Если после преобразования числа в строку вам потребовалось убрать неразрывные пробелы, воспользуйтесь следующей конструкцией:
СтрокаБезПробелов = СтрЗаменить(Строка(99999),Символы.НПП,»») // вернет «99999»
Так же программисты часто пользуются ниже приведенной конструкцией, которая позволяет удалить, либо заменить на другой символ все пробелы текстовой переменной:
СтрокаБезПробелов = СтрЗаменить(« п р и в е т», » » ,»») // вернет «привет»
Сравнение строк между собой
Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.
«Здраствуйте» = «здравствуйте» // вернет Ложь
«Здраствуйте» = «Здравствуйте» // вернет Истина
«Здраствуйте» = «До свидания» // вернет Ложь
Часто бывает, что при загрузке и выгрузке из 1С 8.2 и 8.3 данных в числах встречаются пробелы, которые мешают нормально обрабатывать данные. Решение этой проблемы очень простое.
Рассмотрим, какие бывают виды пробелов.
Виды пробелов в 1С
Пробелы могут быть двух видов:
Убираем неразрывные пробелы
СтроковоеПредставление = Строка(Число); // система запишет в переменную «10 000»
Удалить такие пробелы в 1С очень просто через функцию формат числа:
Число = Формат(10000, «ЧГ=»);
СтроковоеПредставление = Строка(Число); // система запишет в переменную «10000»
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Мы установили группировку в форматной строке Пустое значение (можно записать и «0»).
Если тип данных уже «строка», тогда можно использовать следующий способ:
СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), Символы.НПП, «»); // в переменной СтроковоеПредставление было «10 000», стало «10000»
То есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.
Обычные пробелы
Убрать обычный пробел в строке проще простого. Достаточно выполнить следующую функцию:
СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), » «, «»); // «10 000», стало «10000»
Пример аналогичен предыдущему способу. Однако вместо Символы.НПП мы используем строку с одним пробелом.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Читайте также: