26.11.2020 Ольга Волкова 100269
Убрать пробелы в строках 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С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом треб...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Упр...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

Внедренное типовое решение:
Платформа 1С:Предприятие 8

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Ра...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Бухгалтерский учет Банк и касса Расчеты с контрагентами Торговые операции ...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

Внедренное типовое решение:
1С:Управление строительной организацией

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование п...

МИР ХОББИ
МИР ХОББИ

Отрасль:
Торговля. Интернет магазин

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Оформление заказов поставщикам
Взаиморасчеты с покупателями
Оформление...

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положе...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

Внедренное типовое решение:
1С:Комплексная автоматизация

- Разработка подсистемы оперативного учета транзакций...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:
1С:Управление корпоративными финансами

- Финансово-бухгалтерский блок
- Казначейство ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение