Специальные символы 1С: ВК, ВТаб, НПП, ПС, ПФ, Таб.
Данные спецсимволы можно используются в строке, к примеру для переноса строки (ПС).
Список спецсимволов:
- ВК — возврат каретки.
- ВТаб — символ табуляции (вертикальной).
- НПП — неразрывный пробел. При данном пробеле не выполняться перенос на другую строку или другое разбиение текста при форматировании.
- ПС — перевод строки.
- ПФ — перевод формы
- Таб — символ табуляции (горизонтальной).
Синтаксис:
Символы.
Пример
Текст = "Иванов И.И."+Символы.ПС+"19 лет";
Символы нпп 1с что такое
Допустим в коде пишу
Переменная = Фамилия + » » + Имя + » » Отчество. в 1с можно заменить пробел в коде, как например в других языках на #32? Тут есть что-то подобное?
Обращаться к символам по кодам — это моветон.
(2) какие ваши доказательства?
(3) Есть же системные перечисления Символы.НПП и т.д.
Автору можно создать константу, например, «РазделительФИО», в которую записать пробел. И в коде проверять, что разделитель указан, а если нет, то добавлять стандартный пробел.
А чем отличается пробел от #32?
Похоже на попытку разделить ФИО в массив. Тогда по другому это делается. Кстати, если указать конфигурацию, то, возможно, проблема решится гораздо проще
(6) Это был пример, вопрос возник из-за банального любопытства, думал есть альтернатива #32
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший
Специальные символы в 1С (ВК, ПС, НПП, ВТаб, ПС, ПФ, Таб)

Строка в 1С – самый простой тип данных. Иногда возникает необходимость, при написании кодов 1С использовать специальные символы, например, чтобы перенести текст сообщения на новую строку, вставить пробел в строке и т.п. «1С:Предприятие» имеет большой набор инструментов для работы с указанным типом данных, при работе с которыми, используется перечисление «Символы». Рассмотрим их.
ВК (CR) – возврат каретки.
Пример использования в коде. Фрагмент кода. (1, 2)
// Сервер Сбербанка не умеет работать с символом возврата каретки. ПолучательНаименование = СтрЗаменить (ПолучательНаименование, Символы.ВК, "");
ПС (LF) – linefeed переносит на одну строку вниз при ее создании в коде.
НоваяСтрока = "Текст начало,"+Символы.ПС+"Текст конец";
Пример использования в коде. Фрагмент кода. (2, 3)
СодержимоеПодписи = СтрЗаменить (СодержимоеПодписи, Символы.ПС, ""); СодержимоеПодписи = СтрЗаменить (СодержимоеПодписи, Символы. ВК, "");
// Передать на обработку данные. Результат = МенеджерОборудованияКлиент.ОбработатьСобытиеОтУстройства (ОписаниеСобытия, ОписаниеОшибки); Если Не Результат Тогда OбщегоНазначенияКлиентСервер.СообщитьПользователю (НСтр ("ru=’При обработке внешнего события от устройства произошла ошибка.'") + Символы.ПС + ОписаниеОшибки); КонецЕсли; // Конец ПодключаемоеОборудование
ПС + ВК – с помощью комбинации этих символов осуществляется переход на одну строку вниз и возвращение каретки в начало строки. Действие имитирует нажатие клавиши Enter на клавиатуре.
Пример использования в коде. Фрагмент кода. (4, 5)
// Если структура папок (путь к рабочему каталогу текущей папки) превышает 260-5 (1.txt), пишем "Измените имена папок // или перенесите текущую папку в другую папку". Если СтрДлина (ПараметрыВыполнения.ДанныеФайла.РабочийКаталогВладельца) > ПараметрыВыполнения.МаксимальнаяДлинаПолногоПути - 5 Тогда ТекстСообщения = ТекстСообщения + Символы.ВК + Символы.ВК + НСтр ("ru - 'Измените имена папок или перенесите текущую папку в другую папку.'"); ВернутьРезультатПослеПоказаПредупреждения (ПараметрыВыполнения.ОбработчикРезультата, ТекстСообщения, Ложь); Возврат; КонецЕсли;
ЗаписьЖурналаРегистрации (НСтр ("ru = 'Поставляемые дополнительные отчеты и обработки. Загрузка поставляемой обработки завершена'", ОбщегоНаэначенияКлиентСервер.КодОсновногоЯзыка ()), УровеньЖурналаРегистрации.Информация, , ПоставляемаяОбработка.Ссылка, НСтр ("ru = 'Завершена загрузка поставляемой обработки'") + Символы.ПС + Символы.ВК + ОписаниеПоставляемойОбработки.Манифест);
НПП (NBSp) – неразрывный пробел. Например, в строках числового вида 3580 преобразует в число вида 3 580, т.е. отделяя по три знака пробелом. Или 8956753 преобразует в 8 956 753.
Пример использования в коде. Фрагмент кода. (6-8)
// Для того чтобы строка правильно переносилась в веб-клиенте, // вместо запятой используем символ - U+201A:Single Low-9 Quotation Mark (Keystroke: Alt+0130) ИсходнаяСтрока = СтрЗаменить (ИсходнаяСтрока, ",", ","); Возврат СтрЗаменить (ИсходнаяСтрока, " ", Символы.НПП);
Если ОповещениеПриЗавершении Неопределено Тогда ТекстСообщения = НСтр ("ru = 'Нет кассовых смен для устройства'") + Символы.НПП + Строка (ИдентификаторУстройства); РезультатОперации = ПараметрыВыполненияОперацииНаОборудовании (Ложь, ТекстСообщения, ИдентификаторУстройства); ВыполнитьОбработкуОповещения (ОповещениеПриЗавершении, РезультатОперации); КонецЕсли;
Сообщения = НСтр ("ru='KKT№:'") + АтрибутыЧека.РегистрационныйНомерККТ + ";" + Символы.НПП НСтр ("ru='СУММА:'") + Формат (АтрибутыЧека.СуммаЧека, "ЧРД=.;ЧЦ=12;ЧДЦ=2;ЧН=0.00;ЧГ=0") + ";" + Символы.НПП Формат (АтрибутыЧека.ДатаСеанса, "ДФ:""дд.ММ.гггг ЧЧ:мм""") + ";" + Символы.НПП НСтр ("ru='ФН№: ' ") + АтрибутыЧека.ЗаводскойНомерФН + ";" + Символы.НПП НСтр ("ru=‘ФД№: ' ") + АтрибутыЧека.НомерЧекаФН + ";" + Символы.НПП НСтр ("ru='ФПД: ' ") + АтрибутыЧека.ФискальныйПризнак + ";" + Символы.НПП НСтр ("ru='САЙТ: ' ") + АтрибутыЧека.АдресСайтаПроверки;
Таб (Tab) – символ горизонтальной табуляции. Позволяет перейти в положение, кратное определенному шагу, например, шаг на 4, 8, 12, 16 …
Пример использования в коде. Фрагмент кода. (9-10)
БухРекв = СтрЗаменить (БухРеквизиты, " ", ""); БухРекв = СтрЗаменить (БухРекв, Символы.ПС, ""); БухРекв = "," + СтрЗаменить (БухРекв, Символы.Таб, "") + ","; НалРекв = СтрЗаменить (НалРеквизиты, " ", "") ; НалРекв = СтрЗаменить (НалРекв, Символы.ПС, ""); НалРекв = "," + СтрЗаменить (НалРекв, Символы.Таб, "") + ",";
Функция ЗаменитьНедопустимыеСимволы (СтрокаДляОбработки) СтрокаПослеОбработки = СтрЗаменить (СтрокаДляОбработки, "\", " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "/", " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "*", " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "|", " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, ":", ""); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, """", ""); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "?",""); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.ВК, ""); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.ПС, " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.Таб, " "); СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.НПП, " ");
Также в функцию замены добавляется строка
СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, ">", " ");
СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "
ВТаб (VTab) – вертикальная табуляция, как и горизонтальная, переходит с определенным шагом, только опускаясь вниз по строкам, оставаясь в той же колонке.
Пример использования в коде. Фрагмент кода. (11)
НечитаемыеСимволы = Новый Массив () ; НечитаемыеСимволы.Добавить (Символы.ВК) ; НечитаемыеСимволы.Добавить (Символы.ВТаб) ; НечитаемыеСимволы.Добавить (Символы.НПП) ; НечитаемыеСимволы.Добавить (Символы.ПС) ; НечитаемыеСимволы.Добавить (Символы.ПФ) ; НечитаемыеСимволы.Добавить (Символы.Таб); НечитаемыеСимволы.Добавить (Символ (182)); // символ параграфа НечитаемыеСимволы.Добавить (Символ (176)); // символ градуса
ПФ (FF) – перевод формы. Начало печати с нового листа.
Пример использования в коде. Фрагмент кода. (12, 13)
//НазначениеПлатежа, НазначениеПлатежа1 НазначениеПлатежа2 НазначениеПлатежаЗ НазначениеПлатежа4 НазначениеПлатежа5 НазначениеПлатежа6 СтрокаЭкспорта.НазначениеПлатежа = СтрЗаменить (ВыборкаДляЭкспорта.НазначениеПлатежа, Символы.ПС + Символы.ВК, " "); СтрокаЭкспорта.НазначениеПлатежа = СтрЗаменить( СтрЗаменить (СтрЗаменить (СтрокаЭкспорта.НазначениеПлатежа, Символы.ПС, " "), Символы.ВК, " "), Символы.ПФ, " "); КоличествоСтрокНП = СтрЧислоСтрок (ВыборкаДляЭкспорта.НазначениеПлатежа);
Если ИмяРаздела = "Титульный" Тогда Заменяемые Символы = " " + Символы.ВК + Символы.ВТаб + Символы.НПП + Символы.ПС + Символы.ПФ + Символы.Таб; Если Область.Имя = "ОКТМО" Тогда ОКТМО = СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими (ЗаменяемыеСимволы, СокрЛП (Область.Значение), ""); Если ЗначениеЗаполнено (ОКТМО) И НЕ (СтрДлина (ОКТМО) = 8 ИЛИ СтрДлина (ОКТМО) = 11) Тогда Область.Очистить (); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = НСтр ("ru= 'Длина хода по ОКТМО должна быть равна 8 или 11. Значение хода по ОКТМО очищено!'"); Сообщение.Сообщить (); Иначе Область.Значение = ОКТМО; KoнeцEcли; КонецЕсли; ЗаполнитьПериодОтчета (ЭтаФорма); Иначе
Из примеров видно, что при написании кодов 1С используемые символы можно комбинировать. Они используются при выводе сообщений, текстов назначения платежа, формировании отчетов, то есть там, где необходимо сформировать какой-либо текст.
Что такое Символы.ПС в 1с 8?
Конструкция Символы.ПС означает символьную константу «перенос строки», которая подставляется в место вызова. Обычно используется для подстановки специальных символов в строковые литералы.
мЗначения = Новый Массив; мЗначения.Добавить("Один"); мЗначения.Добавить("Два"); мЗначения.Добавить("Три"); ВыхСтрока = ""; Для Каждого Элемент ИЗ мЗначения Цикл ВыхСтрока = ВыхСтрока + ?(ЗначениеЗаполнено(ВыхСтрока), Символы.ПС, "") + Элемент; КонецЦикла; Сообщить(ВыхСтрока); //Результат: // Один // Два // Три //Аналогично: ВыхСтрока = ""; Для Каждого Элемент ИЗ мЗначения Цикл ВыхСтрока = ВыхСтрока + ?(ЗначениеЗаполнено(ВыхСтрока), " |", "") + Элемент; КонецЦикла; Сообщить(ВыхСтрока); //Аналогично (версия 8.3.6+): ВыхСтрока = СтрСоединить(мЗначения, Символы.ПС); Сообщить(ВыхСтрока);
Со всеми символьными константами можно познакомиться в статье Свойство Символы глобального контекста