Символы нпп 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С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
ВРег, НРег, ТРег
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Преобразовать число в строку
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Сравнение строк в 1С
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
Строка считается одним из простых типов реквизита в 1С Бухгалтерия. Этот тип используется практически везде в системе и потому для удобного обращения с ним, было добавлено большое количество инструментов, которые помогают нам при работе со строкой.
В данном случае мы поговорим о спецсимволах 1С для строк.
Строка может быть как однострочная, так и многострочная, все зависит от настроек программы 1С и необходимости в разрезе задачи.
Итак, что такое спецсимволы 1С? Это особые методы глобального действия «Символы», имеющие свой список выполняемых символов:
2. Расшифровка спецсимволов в программе 1С Бухгалтерия Предприятия
Далее поговорим подробнее о каждом. И начнем мы со спецсимвола «ВК». Он используется для возврата каретки (или курсора) на начало строки. Вполне удобно, если, например, идет отправка электронного письма из программы 1С Бухгалтерия Предприятия - в таком случае пользователь может добавить какой-то текст с новой строки, не заданный программой.
«ВТаб» - это спецсимвол, относящийся к табуляции. Если в коде имеется такой символ, то создается строка с вертикальной табуляцией для движения по строкам вниз, которые находятся в одной колонке.
«НПП» – это всего лишь неразрывный пробел. Его часто используют в строках числового типа, для разделения знаков в больших числах пробелом.
Мой любимый и довольно часто используемый метод – «ПС». Это символ переноса строки 1С. К примеру, у нас есть большая по длине строка, которую корректнее было бы частично перенести на новую строку. В таких случаях и используется «ПС». Кроме того, его можно использовать и с другими методами, например, с «ВК». При их совместном использовании каретка будет установлена в начале строки. И это всего лишь один из примеров применения «ПС».
Далее – «ПФ». За что отвечает этот инструмент? Все просто: этот метод отвечает за печать с нового листа. То есть если в коде есть этот метод, а именно в печати, то печать начинает выполняться заново и с нового листа.
И вот мы подошли к последнему в списке спецсимволу – «Таб». Этот метод аналогичен методу «ВТаб», но отвечает за горизонтальную табуляцию согласно определенному шагу в строке.
В 1С довольно много инструментов для работы с типом Строка. Очень полезно подробно изучить их и ак5тивно использовать, так как они существенно облегают работу специалисту.
В данной статье будет рассмотрено, как происходит замена и удаление недопустимых символов в системе 1С, если мы находим недопустимые символы в имени файла и когда недопустимые символы содержит XML.
1. Недопустимые символы в имени файла
Когда имя некоторого файла содержит недопустимые символы, возникает потребность замены этих символов. Для произведения замены нужно оговорить, какой синтаксис имеет функция замены при ошибке недопустимых символов в имени файла. Он представлен на скриншоте со строкой кода далее:
Рис.1 Замена недопустимых символов с имени файла
Также у данной функции есть первичные параметры:
· «ИмяФайла» – параметр со строкой, которая содержит наименование файла;
· «НаЧтоМенять» – параметр со строкой, на которую будут заменены недопустимые символы в названии файла.
Результат работы данной функции – это значение, которое будет возвращаться. В нашем случае это строка, которая содержит новое имя файла, после преобразований.
Рассмотрим пример вызова данной функции:
Рис. 2 функция замены при ошибке недопустимых символов
Также очень важным аспектом является доступность данной функции. В системе 1С функцию можно использовать на сервере, на тонком клиенте, на толстом клиенте и на внешнем соединении.
2. Недопустимые символы в XML
Рассмотрим, как происходит удаление если XML содержит недопустимые символы.
Чтобы выполнить данную процедуру, аналогично предыдущему пункту используем специальную функцию, которая продемонстрирована на строке ниже:
Рис. 3 Функция для удаления недопустимых символов XML
Далее следует оговорить, какие параметры поддерживаются в данной функции. Параметр в данном случае только один – это «Текст-Строка». Это строка, внутри которой требуется провести удаление всех недопустимых символов.
Итогом работы этой функции будет значение, которое возвращается в виде строки, полученной в итоге удаления всех недопустимых символов из XML строки.
Рассмотрим на примере общего вида, который представлен ниже, как будет выглядеть вызов функции по удалению, когда текст XML содержит недопустимые символы:
Рис. 4 Вызов функции для удаления недопустимых символов XML
Использование данной функции доступно для сервера, на тонком и толстом клиентах и для внешнего соединения.
Рассмотрим использование функции «НайтиНедопустимыеСимволыXML» на примере. Данная функция не удаляет, а только производит поиск по символам в строке, которые являются недопустимыми в XML строке:
Рис. 5 Удаление недопустимых символов XML
Чтобы сделать поиск по недопустимым символам более быстрым, попытаемся определить позицию недопустимого символа в тексте XML строки. Для этого в середине цикла дадим функции первичные позиции из поиска. Пример данного применения показан на строчке кода ниже:
Рис. 6 Поиск недопустимого символа в тексте
В данной статье были рассмотрены функции, которые помогают определять и удалять, либо заменять, недопустимые символы в имени файла и в XML строке.
Читайте также: