Убрать пробел в числе 1С

Функции 1С СокрЛП(Строка), 1С СокрЛ(Строка) и 1С СокрП(Строка) удаляют из текста лишние символы.

Например:

  • Выполняем
    СокрЛП(«
    | Привет, мир!
    | «)
  • 1С возвращает «Привет, мир!»

Удаление производится:

  • 1С СокрЛ – с начала строки до «значащих символов»
  • 1С СокрП – с последнего «значащего символа» до конца строки
  • 1С СокрЛП – одновременно слева и справа.

«Лишние символы», которые можно убрать с помощью 1С СокрЛ, 1С СокрП, 1С СокрЛП:

  • Пробел
  • Перенос строки, страницы
  • Табуляция.

Лишние пробелы внутри строки, между словами функции 1С СокрЛ, 1С СокрП, 1С СокрЛП не удаляют.

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

Если пользователь ввел значение с пробелом, то сравнение с заданной строкой не будет работать – ведь сравнение учитывает все символы, включая незначимые.

Например:

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

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

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

Удалить пробелы справа, слева

Незначащие символы — это «Пробел», «Неразрывный пробел», «Табуляция», «Возврат коретки», «Перевод коретки», «Перевод строки», «Перевод формы».
//Отсекает незначащие символы слева
Строка = СокрЛ(» Строка «);
//Строка = «Строка «;
//Отсекает незначащие символы справа
Строка = СокрП(» Строка «);
//Строка = » Строка»;
//Отсекает незначащие символы слева и справа
Строка = СокрЛП(» Строка «);
//Строка = «Строка»;

Удалить все пробельные символы

Для удаления всех пробельных символов строки можно воспользоваться функцией «СтрЗаменить()». Эта функция позволяет заменить одну подстроку на другую.
Строка = СтрЗаменить(» Строка Строка», Символы.НПП, «»);
//Строка = «СтрокаСтрока»;
При преобразовании числа к строке могут появиться разделители групп числа. Если разделителем групп является символ «Неразрывный пробел», то функцией СтрЗаменить() можно заменить данный символ на пустую строку.
Иногда, приведенные выше примеры не удаляют пробельные символы. Такая ситуация может возникнуть, например, при работе с Excel файлами. Для решения данной задачи можно попробовать заменить Символ(160) на пустую строку.
Строка = СтрЗаменить(» Строка «, Символ(160), «»);
//Строка = «Строка»;

Когда я работал в издательстве (сначала верстальщиком, а затем начальником производственного отдела) моим основным рабочим инструментом была программа вёрстки PageMaker от фирмы Adobe (ныне на смену ему пришел InDesign). Когда я освоил все нюансы работы в PageMakerе, я стал задумываться о том, что еще можно сделать для сокращения рутинных операций, увеличения доли творчества в работе верстальщика. И я открыл для себя язык Script ов, поддерживаемый PageMaker

Скачать заметку в формате Word, примеры в формате Excel

Сегодня об одном из трюков, изложенных в книге, а также о моих методах борьбы с как бы числами… ?

Нередко (особенно при импорте из внешних источников) данные выглядят как числа, но числами не являются. Их нельзя суммировать, и вообще с точки зрения Excel это текст. В Excel`е визуально отличить текст от чисел довольно просто. Сделайте колонку достаточно широкой. Числа, по умолчанию, форматируются по правому краю ячейки, текст — по левому (для лучшего понимания откройте файл Excel, лист «Пример1»):

Видно, что числа в колонке «прилипли» к левому краю, то есть Excel их не воспринимает, как числа.

Выделите пустую ячейку, скопируйте её в буфер, выделите диапазон, который вы хотите превратить из как бы чисел в настоящие числа, выберите «Специальная вставка» (на ленте или с помощью правой кнопки мыши), в открывшемся окне выберите «значения» и «сложить», нажмите Ok:

Как бы числа преобразовались в числа:

Эффект связан с тем, что когда мы специальной вставкой прибавляем значение пустой ячейки, Excel прибавляет ноль и при этом превращает как бы число в число.

Иногда это не работает — см. в файле Excel лист «Пример2». Обратите внимание на рисунке ниже: в строке формул между числом 88 и курсором есть пробелы.

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

Выделите диапазон, в котором вы хотите избавиться от пробелов. Откройте диалоговое окно «Найти и заменить», например, с помощью «горячих» клавиш Ctrl + H, в строку «Найти» вставьте ранее выделенные пробелы, строку «Заменить на» оставьте пустой.

Нажмите «Заменить все». Вуаля (готово) ?

Часто бывает, что при загрузке и выгрузке из 1С 8.2 и 8.3 данных в числах встречаются пробелы, которые мешают нормально обрабатывать данные. Решение этой проблемы очень простое.

Рассмотрим, какие бывают виды пробелов.

Виды пробелов в 1С

Пробелы могут быть двух видов:

  • неразрывный пробел;
  • «обычный» пробел.

Убираем неразрывные пробелы

Пример:

Число = 10000;

Получите 267 видеоуроков по 1С бесплатно:

  • Бесплатный видео самоучитель по 1С Бухгалтерии 8.3 и 8.2;
  • Самоучитель по новой версии 1С ЗУП 3.0;
  • Хороший курс по 1С Управление торговлей 11.

СтроковоеПредставление = Строка(Число); // система запишет в переменную «10 000»

Удалить такие пробелы в 1С очень просто через функцию формат числа:

Число = Формат(10000, «ЧГ=»);

СтроковоеПредставление = Строка(Число); // система запишет в переменную «10000»

Мы установили группировку в форматной строке Пустое значение (можно записать и «0»).

Если тип данных уже «строка», тогда можно использовать следующий способ:

СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), Символы.НПП, «»); // в переменной СтроковоеПредставление было «10 000», стало «10000»

То есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.

Обычные пробелы

Убрать обычный пробел в строке проще простого. Достаточно выполнить следующую функцию:

СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), » «, «»); // «10 000», стало «10000»

Пример аналогичен предыдущему способу. Однако вместо Символы.НПП мы используем строку с одним пробелом.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *