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

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

ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)
ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)

Отрасль:
Оптовая торговля транспортными средствами и оборудованием

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

- Финансы, управленческий учет, мониторинг показателей
- Бухгалтерский уче...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

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

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

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

Проведение серии интервью с руководством и ключевыми специалистами Разраб...

ООО “РТИТС”
ООО “РТИТС”

Отрасль:
Транспортные системы

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

Блок регламентированного кадрового учета и расчета заработной платы в 1С:ERP;...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

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

Производственные операции
Автоматизация бизнес-процессов...

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

Отрасль:
Профессиональные услуги

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

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

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

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

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

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

ООО «Экслтрейд»
ООО «Экслтрейд»

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

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

Оформление заказов поставщикам Оптовая торговля Торговые операции ...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

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

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

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

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