Специальные символы в 1С (ВК, ПС, НПП, ВТаб, ПС, ПФ, Таб)
Меню

Специальные символы в 1С (ВК, ПС, НПП, ВТаб, ПС, ПФ, Таб)

Строка в 1С – самый простой тип данных. Иногда возникает необходимость, при написании кодов 1С использовать специальные символы, например, чтобы перенести текст сообщения на новую строку, вставить пробел в строке и т.п. «1С:Предприятие» имеет большой набор инструментов для работы с указанным типом данных, при работе с которыми, используется перечисление «Символы». Рассмотрим их.

ВК (CR) – возврат каретки.

Пример использования в коде. Фрагмент кода. (1, 2)


	 // Сервер Сбербанка не умеет работать с символом возврата каретки.
         ПолучательНаименование = СтрЗаменить (ПолучательНаименование, Символы.ВК, "");

Фрагмент 1

ПС (LF) – linefeed переносит на одну строку вниз при ее создании в коде.

Например:


 НоваяСтрока = "Текст начало,"+Символы.ПС+"Текст конец";

Пример использования в коде. Фрагмент кода. (2, 3)


 СодержимоеПодписи = СтрЗаменить (СодержимоеПодписи, Символы.ПС, "");
 СодержимоеПодписи = СтрЗаменить (СодержимоеПодписи, Символы. ВК, "");

Фрагмент 2


// Передать на обработку данные.
Результат = МенеджерОборудованияКлиент.ОбработатьСобытиеОтУстройства (ОписаниеСобытия, ОписаниеОшибки);
Если Не Результат Тогда
         OбщегоНазначенияКлиентСервер.СообщитьПользователю (НСтр ("ru=’При обработке внешнего события от устройства произошла ошибка.'")
                                                                                                            + Символы.ПС + ОписаниеОшибки);
КонецЕсли;
// Конец ПодключаемоеОборудование

Фрагмент 3

ПС + ВК – с помощью комбинации этих символов осуществляется переход на одну строку вниз и возвращение каретки в начало строки. Действие имитирует нажатие клавиши Enter на клавиатуре.

Пример использования в коде. Фрагмент кода. (4, 5)


// Если структура папок (путь к рабочему каталогу текущей папки) превышает 260-5 (1.txt), пишем "Измените имена папок
// или перенесите текущую папку в другую папку".
Если СтрДлина (ПараметрыВыполнения.ДанныеФайла.РабочийКаталогВладельца) > ПараметрыВыполнения.МаксимальнаяДлинаПолногоПути - 5 Тогда 
         ТекстСообщения = ТекстСообщения + Символы.ВК + Символы.ВК
               + НСтр ("ru - 'Измените имена папок или перенесите текущую папку в другую папку.'"); 
         ВернутьРезультатПослеПоказаПредупреждения (ПараметрыВыполнения.ОбработчикРезультата, ТекстСообщения, Ложь);
         Возврат;
КонецЕсли;

Фрагмент 4


ЗаписьЖурналаРегистрации (НСтр ("ru = 'Поставляемые дополнительные отчеты и обработки. Загрузка поставляемой обработки завершена'", 
           ОбщегоНаэначенияКлиентСервер.КодОсновногоЯзыка ()),
           УровеньЖурналаРегистрации.Информация,
           ,
           ПоставляемаяОбработка.Ссылка,
           НСтр ("ru = 'Завершена загрузка поставляемой обработки'") + Символы.ПС + Символы.ВК + ОписаниеПоставляемойОбработки.Манифест);

Фрагмент 5

НПП (NBSp) – неразрывный пробел. Например, в строках числового вида 3580 преобразует в число вида 3 580, т.е. отделяя по три знака пробелом. Или 8956753 преобразует в 8 956 753.

Пример использования в коде. Фрагмент кода. (6-8)


// Для того чтобы строка правильно переносилась в веб-клиенте,
// вместо запятой используем символ - U+201A:Single Low-9 Quotation Mark (Keystroke: Alt+0130) 
ИсходнаяСтрока = СтрЗаменить (ИсходнаяСтрока, ",", ",");
Возврат СтрЗаменить (ИсходнаяСтрока, " ", Символы.НПП);

Фрагмент 6


Если ОповещениеПриЗавершении  Неопределено Тогда
        ТекстСообщения = НСтр ("ru = 'Нет кассовых смен для устройства'") + Символы.НПП + Строка (ИдентификаторУстройства); 
        РезультатОперации = ПараметрыВыполненияОперацииНаОборудовании (Ложь, ТекстСообщения, ИдентификаторУстройства); 
        ВыполнитьОбработкуОповещения (ОповещениеПриЗавершении, РезультатОперации);
КонецЕсли;

Фрагмент 7


Сообщения = НСтр ("ru='KKT№:'") + АтрибутыЧека.РегистрационныйНомерККТ + ";" + Символы.НПП
  НСтр ("ru='СУММА:'") + Формат (АтрибутыЧека.СуммаЧека, "ЧРД=.;ЧЦ=12;ЧДЦ=2;ЧН=0.00;ЧГ=0") + ";" + Символы.НПП 
  Формат (АтрибутыЧека.ДатаСеанса, "ДФ:""дд.ММ.гггг ЧЧ:мм""") + ";" + Символы.НПП
  НСтр ("ru='ФН№: ' ") + АтрибутыЧека.ЗаводскойНомерФН + ";" +  Символы.НПП
  НСтр ("ru=‘ФД№: ' ") + АтрибутыЧека.НомерЧекаФН + ";" + Символы.НПП
  НСтр ("ru='ФПД: ' ") + АтрибутыЧека.ФискальныйПризнак + ";" + Символы.НПП
  НСтр ("ru='САЙТ: ' ") + АтрибутыЧека.АдресСайтаПроверки;

Фрагмент 8

Таб (Tab) – символ горизонтальной табуляции. Позволяет перейти в положение, кратное определенному шагу, например, шаг на 4, 8, 12, 16 …

Пример использования в коде. Фрагмент кода. (9-10)


БухРекв = СтрЗаменить (БухРеквизиты, " ", "");
БухРекв = СтрЗаменить (БухРекв, Символы.ПС, ""); 
БухРекв = "," + СтрЗаменить (БухРекв, Символы.Таб, "")  + ",";

НалРекв = СтрЗаменить (НалРеквизиты, " ", "") ;
НалРекв = СтрЗаменить (НалРекв, Символы.ПС, "");
НалРекв = "," + СтрЗаменить (НалРекв, Символы.Таб, "") + ",";

Фрагмент 9


Функция ЗаменитьНедопустимыеСимволы (СтрокаДляОбработки)

       СтрокаПослеОбработки = СтрЗаменить (СтрокаДляОбработки, "\", " ");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "/", " ");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "*", " ");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "|", " ");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, ":", "");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, """", "");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "?","");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.ВК, ""); 
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.ПС, " "); 
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.Таб, " ");
       СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, Символы.НПП, " ");       

Также в функцию замены добавляется строка


СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, ">", " ");

И строка


СтрокаПослеОбработки = СтрЗаменить (СтрокаПослеОбработки, "

Фрагмент 10

ВТаб (VTab) – вертикальная табуляция, как и горизонтальная, переходит с определенным шагом, только опускаясь вниз по строкам, оставаясь в той же колонке.

Пример использования в коде. Фрагмент кода. (11)


НечитаемыеСимволы = Новый Массив () ;
НечитаемыеСимволы.Добавить (Символы.ВК) ;
НечитаемыеСимволы.Добавить (Символы.ВТаб) ;
НечитаемыеСимволы.Добавить (Символы.НПП) ;
НечитаемыеСимволы.Добавить (Символы.ПС) ;
НечитаемыеСимволы.Добавить (Символы.ПФ) ;
НечитаемыеСимволы.Добавить (Символы.Таб);
НечитаемыеСимволы.Добавить (Символ (182)); // символ параграфа 
НечитаемыеСимволы.Добавить (Символ (176)); // символ градуса

Фрагмент 11

ПФ (FF) – перевод формы. Начало печати с нового листа.

Пример использования в коде. Фрагмент кода. (12, 13)


//НазначениеПлатежа, НазначениеПлатежа1 НазначениеПлатежа2 НазначениеПлатежаЗ НазначениеПлатежа4 НазначениеПлатежа5 НазначениеПлатежа6
      СтрокаЭкспорта.НазначениеПлатежа = СтрЗаменить (ВыборкаДляЭкспорта.НазначениеПлатежа, Символы.ПС + Символы.ВК, " "); 
      СтрокаЭкспорта.НазначениеПлатежа = СтрЗаменить(
                СтрЗаменить (СтрЗаменить (СтрокаЭкспорта.НазначениеПлатежа, Символы.ПС, " "), Символы.ВК, " "), Символы.ПФ, " ");
      КоличествоСтрокНП = СтрЧислоСтрок (ВыборкаДляЭкспорта.НазначениеПлатежа);

Фрагмент 12


Если ИмяРаздела = "Титульный" Тогда

        Заменяемые Символы = " "  + Символы.ВК + Символы.ВТаб + Символы.НПП + Символы.ПС + Символы.ПФ + Символы.Таб;

        Если Область.Имя = "ОКТМО" Тогда
                 ОКТМО = СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими (ЗаменяемыеСимволы, СокрЛП (Область.Значение), ""); 
                 Если ЗначениеЗаполнено (ОКТМО) И НЕ (СтрДлина (ОКТМО) = 8 ИЛИ СтрДлина (ОКТМО) = 11) Тогда 
                         Область.Очистить ();
                         Сообщение = Новый СообщениеПользователю;
                         Сообщение.Текст = НСтр ("ru= 'Длина хода по ОКТМО должна быть равна 8 или 11. Значение хода по ОКТМО очищено!'"); 
                         Сообщение.Сообщить ();
                 Иначе
                         Область.Значение = ОКТМО;
                 KoнeцEcли;
       КонецЕсли;

ЗаполнитьПериодОтчета (ЭтаФорма);

Иначе

Фрагмент 13

Из примеров видно, что при написании кодов 1С используемые символы можно комбинировать. Они используются при выводе сообщений, текстов назначения платежа, формировании отчетов, то есть там, где необходимо сформировать какой-либо текст.


Рассказать друзьям
Предыдущая статья статья
Как автоматизировать казначейство на базе 1С
Следующая статья статья
1С:Управление торговлей 8 версия 11.5: обзор возможностей
Комментарии