26.11.2020 Ольга Волкова 106304
Убрать пробелы в строках 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С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление об...

Фирма 1С
Фирма 1С

Отрасль:

Внедренное типовое решение:
1С:Документооборот

- Подготовка функциональной модели прикладного решения «1С:Документооборот...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

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

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

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

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Группа компаний ТМ «Дружба народов»
Группа компаний ТМ «Дружба народов»

Отрасль:
Пищевая промышленность

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

- Переход на новый релиз 2.1 программы «1С:ERP Управление предприятием»
- Разра...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

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

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

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

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

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

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

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

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

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

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

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

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

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