Символы пс – Использование ASCII кодов в 1С » Полезные, Универсальные Функции » FAQ » HelpF.pro

Символы ВК, ВТаб, НПП, ПС, ПФ, Таб в 1С 8.3 (8.2)

Специальные символы в 1С 8.3 — набор специальных символов для строковых типов данных.

Рассмотрим каждый из них подробнее.

специальные символы в 1С

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

Спецсимволы вызываются с помощью глобального свойства «Символы», например:

Текст = «Текст до табуляции» + Символы.Таб + » текст после табуляции»;

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

  • ВК (CR) — возврат каретки. В старые времена на матричных или ромашковых принтерах этот код символа использовался как команда, которая возвращала печатающую головку в начало строки.
  • НПП (NBSp) — неразрывный пробел (часто можно увидеть в строках числового вида, например: 1 000).
  • ПС (LF) — Перевод строки (LF — linefeed) — прокручиваем барабан на одну строку вниз, печатающая головка на том же месте.
  • ПФ (FF) — перевод формата. Лист выбрасывается из принтера, печать начинается с нового листа.
  • Таб (Tab) — символ табуляции. Горизонтальная табуляция — способ спозиционироваться для печати на ближайшую колонку, кратную какому-либо числу (например, на 8, 16, 24 …).
  • ВТаб (VTab) — вертикальная табуляция. Аналогична горизонтальной, только позиционируемся на строку. Вызывает некоторую прокрутку барабана принтера (печатающая головка остается на той же позиции (колонке)!)

ПС + ВК — это комбинация, которая выполняет две операции: прокручивает барабан на строку вниз и возвращает печатающую каретку в начало строки, что соответствует тому, что пользователь ожидает получить, нажимая на Enter.

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

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

Работа со строками в 1С 8.3 (8.2)

Строка — примитивный тип данных в языке программирования 1С. Помимо 1С, этот тип данных используется во всех известных языках программирования, обычно он называется «string».

работа со строками в 1С

Функции работы со строками в 1С

Рассмотрим основные функции встроенного языка программирования 1С.

Строка

Функция Строка() позволяет получить текстовое представление переменных других типов.

Пример:

Строка(ТекущаяДата()) //"23.02.2015 21:31:24"

Строка(Истина)  // Да

Строка(1058)  // "1 058"

СтрДлина

Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.

Например:

СтрДлина("Тестовая строка") // 15

СокрЛП, СокрЛ, СокрП

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

Пример:

СокрЛП(" Слева и справа есть незначащие символы - пробелы ") // получим строку без пробелов слева и справа

Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.

Лев, Прав, Сред

С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).

Пример:

Лев("Тестовая строка", 4) // "Тест"

Сред("Тестовая строка", 5, 6) // "овая с"

Найти

Функция для поиска подстроки внутри другой подстроки. Синтаксис Найти(<Строка для поиска>, <Подстрока поиска>). Функция возвращает число — номер позиции символа (или символов) в исходной подстроке. Если подстроки не найдено, вернётся число 0. Если в искомой подстроке есть несколько вхождений, вернется номер позиции первого совпадения.

Пример:

Найти("Тестовая строка", "строка") // 10

Найти("Тестовая строка", "123") // вернется 0, подстроки "123" нет в исходной строке

Найти("Тестовая строка", "я") // 8

ВРег, НРег, ТРег

Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.

Пример:

ВРег("Тестовая строка")  // "ТЕСТОВАЯ СТРОКА"

НРег("Тестовая строка")  // "тестовая строка"

ТРег("Тестовая строка") // "Тестовая Строка"

ПустаяСтрока

Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.

Пример:

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

ПустаяСтрока("Тест") //ложь

ПустаяСтрока(" ") // истина


Аналогично можно проверить строку на пустое значение следующим образом:

СокрЛП(" ") = "" // истина

СтрЗаменить

Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:

Например:

СтрЗаменить("Произвольная Строка", " " , "") //"ПроизвольнаяСтрока"

СтрЧислоСтрок

Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).

Например, построчная обработка текстового фрагмента:

Для Н=1 по СтрЧислоСтрок(ТекстФайла) Цикл

.....

КонецЕсли;

СтрПолучитьСтроку

С помощью данной функции можно получить произвольную строку из многострочного текста. Синтаксис — СтрПолучитьСтроку(<Строка>, <Номер строки>).

Пример:

СтрокаНомер5 =  СтрПолучитьСтроку(ИсходнаяСтрока, 5)

СтрЧислоВхождений

Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.

Пример:

СтрЧислоВхождений ("Тестовая строка", "т")  // 2

Символ и КодСимвола

Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.

Примеры:

КодСимвола("Т")  // 1 058

Символ(1058) // "Т"

Часто встречающиеся задачи по работе со строками в 1С

Рассмотрим классические примеры решения задач в работе с текстовыми переменными.

Конкатенация строк в 1С

Конкатенация, или объединение строк в 1С делается оператором «+».

Например:

"Первая часть строки " + "и вторая" // получим "Первая часть строки и вторая"


Преобразовать число в строку

Тут всё просто. Достаточно использовать метод «Строка()»:

Строка(12355.44) // "12 355,44"

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

Его можно убрать с помощью замены неразрывного пробела на пустую строку:

СтрЗаменить(Строка(12355.44),Символы.НПП,"")  // "12355,44"

или с помощью метода Формат:

Строка(Формат(12355.44,"ЧГ="))

Кавычки в строке 1С

Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.

Например:

Строка("Наша организация называется ""Березка"", мы работаем на рынке с 1999 года")

Символ переноса строки

Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».

Пример:

"Этот текст будет на первой строке" + Символы.ПС + "А этот на второй"

Сравнение строк в 1С

Сравнить строки достаточно просто с помощью оператора сравнения — «=».

Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:

СокрЛП(ВРег(Строка1)) = СокрЛП(ВРег(Строка2))

Таким образом, мы получим более точное сравнение двух строк.

Убрать пробелы в строке 1С

Достаточно часто нужно убрать пробелы в строке 1С.

Если требуется убрать пробелы справа и слева:

ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока)


Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, " " ,"")

Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.НПП ,"")

Другие статьи по 1С:

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

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

Строки в языке 1С 8.3, 8.2 (в примерах)

&НаКлиенте
Процедура ВыполнитьКод(Команда)
 
    /// Как найти длину строки в 1с 8.3, 8.2
 
    Сообщить(СтрДлина("123456789")); // 9
 
    /// Как взять часть строки в 1с 8.3, 8.2
 
    // как взять N символов слева
    Строка = "Иван Грозный";
    Сообщить(Лев(Строка, 4)); // Иван
 
    // как взять N символов справа
    Строка = "Иван Грозный";
    Сообщить(Прав(Строка, 7)); // Грозный
 
    // как взять строку из середины
    Строка = "Мама, папа, я.";
    // возьмём начиная с 7 индекса 4 символа
    Сообщить(Сред(Строка, 7, 4)); // папа
 
    /// Как найти подстроку в 1с 8.3, 8.2
 
    Строка = "Привет, мир!";
    Индекс = Найти(Строка, "Привет"); // 1, строки индексируются с единицы
 
    /// Как узнать число вхождений подстроки в строку в 1с 8.3, 8.2
 
    Сообщить(СтрЧислоВхождений("я, я и ещё раз я.", "я")); // 3
 
    /// Как заменить подстроку в строке в 1с 8.3, 8.2
 
    Сообщить(СтрЗаменить("Идёт сильный дождь.", "дождь", "снег"));
 
    /// Как проверить на пустую строку в 1с 8.3, 8.2
 
    Если ПустаяСтрока("         ") Тогда
        Сообщить("Строка пустая, то есть не содержит значащих символов.");
    КонецЕсли;
 
    /// Как удалить незначащие символы из строки в 1с 8.3, 8.2
 
    // слева
    Сообщить(СокрЛ("   из лесу ёлочку    ")); // "из лесу ёлочку    "
    // справа
    Сообщить(СокрП("   из лесу ёлочку    ")); // "   из лесу ёлочку"
    // с двух сторон
    Сообщить(СокрЛП("   из лесу ёлочку    ")); // "из лесу ёлочку"
 
    /// Как вставить в строку перенос в 1с 8.3, 8.2
 
    Строка =
        "Первая строка" + Символы.ПС +
        "Вторая строка" + Символы.ПС +
        "Третья строка";
 
    /// Как работать с многострочными строками (нумерация с 
    /// единицы) в 1с 8.3, 8.2
 
    Сообщить(СтрЧислоСтрок(Строка)); // 3
    Сообщить(СтрПолучитьСтроку(Строка, 2)); // "Вторая строка"
 
    /// Верхний, нижний и титульный регистры в 1с 8.3, 8.2
 
    Сообщить(ВРег("россия - родина моя!")); // РОССИЯ - РОДИНА МОЯ!
    Сообщить(НРег("МИР, ТРУД, МАЙ!")); // мир, труд, май
    Сообщить(ТРег("мама мыла раму")); // Мама Мыла Раму
 
    /// Как получить код символа строки в 1с 8.3, 8.2
 
    // код отдельного символа:
    //   туда
    Сообщить(КодСимвола("A")); // 65
    //   и обратно
    Сообщить(Символ(65)); // "A"
 
    // код третьего символа в строке
    Сообщить(КодСимвола("ABC", 3)); //67
 
    // код первого символа в строке
    КодПервогоСимволаФамилии = КодСимвола("Грозный");
    Сообщить(КодПервогоСимволаФамилии); // 1043, потому что Unicode.
 
    /// Как преобразовать строку в число в 1с 8.3, 8.2
 
    Сообщить(Число("125.36")); // 125,36
    Сообщить(Число("125,36")); // 125,36
 
    /// Как преобразовать число в строку в 1с 8.3, 8.2
 
    Сообщить(25 + "10"); // 35
    // если же нужно сложить число и строку как строки
    Сообщить(Строка(25) + "10"); // 2510
 
    /// Как разбить строку с разделителями в 1с 8.3, 8.2
 
    Разделитель = ",";
    Строки = СтрЗаменить("январь, февраль, март", Разделитель, Символы.ПС);
    Для Индекс = 1 По СтрЧислоСтрок(Строки) Цикл
        Сообщить(СтрПолучитьСтроку(Строки, Индекс));
    КонецЦикла;
 
КонецПроцедуры
 
&НаСервереБезКонтекста
Процедура ВыполнитьКодНаСервере()
 
    /// Как сериализовать значение в строку в 1с 8.3, 8.2
 
    Массив = Новый Массив(3);
    Массив[0] = 1;
    Массив[1] = "Земля";
    Массив[2] = 3.14;
 
    Стр = ЗначениеВСтрокуВнутр(Массив);
    Сообщить(Стр);
 
    //{"#",51e7a0d2-530b-11d4-b98a-008048da3034,
    //  {3,
    //      {"N",1},
    //      {"S","Земля"},
    //      {"N",3.14}
    //  }
    //}
 
    /// Как десериализовать значение из строки в 1с 8.3, 8.2
 
    МассивКопия = ЗначениеИзСтрокиВнутр(Стр);
    Элемент = МассивКопия[1];
    Сообщить(Элемент); // Земля
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Автор джойстика PlayStation рассказал о значении символов на клавишах

МОСКВА, 27 авг - РИА Новости, Илья Илембитов. Тейу Гото (Teiyu Goto), человек, участвовавший в создании первой версии игровой приставки PlayStation, рассказал о том, что означают ставшие культовыми символы на джойстике этой консоли, сообщило в четверг издание Engadget.

Как отмечает Engadget, именно благодаря таким людям как Гото, Sony не стала копировать решения тогдашнего монополиста игровой индустрии – компании Nintendo. В результате, у PlayStation появилось несколько серьезных новшеств. Например, PS 1 стала одной из первых игровых приставок, работавших с компакт-дисками, а не с картриджами.

Нововведения коснулись и джойстика. Мода на геймпады тех времен предполагала совершенно плоскую, неэргономичную форму. Например, плоские джойстики были у приставок Nintendo, NES (известна в России под именем своего клона "Денди") и SNES.

Джойстик для PlayStation отличался тем, что разработчики учли расположение рук и пальцев игрока, разместив на джойстике удобные рукояти, а также расположив клавиши максимально удобным способом. Такое устройство до сих пор является эталоном игрового в своем классе (стоит отметить, что сама Nintendo в более поздних приставках, таких как Nintendo 64 или Game Cube, отказалась от плоских устройств управления).

Успех джойстик Sony Platstation был полным. Культовый статус в среде игроков обрели даже обозначения на клавишах джойстика PlayStation. В отличие от других устройств управления, использовавших буквенно-цифровое (например, A, B, X, Y на различных устройствах Nintendo) или цветовое обозначение, Sony использовала изображения крестика, треугольника, квадрата и круга. К настоящему времени PlayStation пережила издание трех новых версий и множество модификаций, однако ее джойстик так и не изменился. Фактически, он стал визитной карточкой PS.

По словам Гото, каждый символ на клавишах джойстика и его цвет имеют значение. Зеленый треугольник символизирует направление, в котором смотрит игрок. Квадрат означает бумагу или документ – эта клавиша используется, например, для доступа к игровому меню. Красный круг и голубой крестик означают "да" и "нет" соответственно и используются для принятия решений.

Даже японское руководство Sony не воспринимало это решение как однозначно понятное, говорит Гото, однако конструктору пришлось настоять на своем. Так и был создан повсеместно узнаваемый образ джойстика PlayStation.

Внешняя печатная форма word | Заметки программиста 1с

&НаКлиенте

Процедура ПечатьСФормы(Команда) //Наша команда с формы

СобратьМакет(Объект.СсылкаНаОбъект);

КонецПроцедуры

 

&НаСервере

Функция ПолучитьДанныеМакета()

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");

АдресХранилища = Новый УникальныйИдентификатор();

Макет          = ОбработкаОбъект.ПолучитьМакет("МакетWORD");

ВременныйФайл = ПолучитьИмяВременногоФайла("doc");

Макет.Записать(ВременныйФайл);

Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл),АдресХранилища);

УдалитьФайлы(ВременныйФайл);

Возврат Адрес;

    

КонецФункции

 

&НаКлиенте

Процедура СобратьМакет(п_СсылкаНаОбъект)

 

Пользователь = ПользователиКлиентСервер.ТекущийПользователь();

Каталог        = КаталогВременныхФайлов();

Каталог        = ?(Прав(Каталог,1) = "\", Каталог, Каталог + "\");

ПолноеИмяФайла = Каталог + Строка(Новый УникальныйИдентификатор) + ".doc";

Попытка

Индификатор   = ПолучитьДанныеМакета();

МакетДоговора = ПолучитьИзВременногоХранилища(Индификатор);

МакетДоговора.Записать(ПолноеИмяФайла);

Исключение

Сообщить(ОписаниеОшибки());

КонецПопытки;

Попытка

MSWord = Новый COMОбъект("Word.Application");

Исключение

Сообщить("Ошибка при попытке создать объект ""MS Word""!" + Символы.ПС +

"Возможно приложение ""MS Word"" не установлено или установлено неправильно.", СтатусСообщения.Внимание);

КонецПопытки;

MSWord.Documents.Open(ПолноеИмяФайла);

Попытка

Документ = MSWord.Application.Documents(1);

Документ.Activate();

СамыйКрутойПрограмист1с = СокрЛП(п_СсылкаНаОбъект);

Компания                = "КРАФТ 1С";

СамыйКрутойБлогПро1с    = "www.craft1c.ru";

ДатаПараметр   = Строка(ТекущаяДата());

// Поиск и замена маркеров

Замена = Документ.Content.Find;    

Замена.Execute("<СамыйКрутойПрограмист1с>",Ложь,Истина,Ложь,,,Истина,,Ложь,СамыйКрутойПрограмист1с);

Замена = Документ.Content.Find;    

Замена.Execute("<Компания>", Ложь, Истина, Ложь, , , Истина , , Ложь, Компания);

Замена = Документ.Content.Find;    

Замена.Execute("<СамыйКрутойБлогПро1с>", Ложь, Истина, Ложь, , , Истина , , Ложь, СамыйКрутойБлогПро1с);

Замена = Документ.Content.Find;    

Замена.Execute("<ДатаПараметр>", Ложь, Истина, Ложь, , , Истина , , Ложь, ДатаПараметр);

Исключение

Сообщение = Новый СообщениеПользователю();

Сообщение.Текст = ОписаниеОшибки();

Сообщение.Сообщить();

MSWord.Application.Quit();

Возврат;

КонецПопытки;

MSWord.Application.Visible = Истина;

MSWord.Activate();

КонецПроцедуры

Отправить ответ

avatar
  Подписаться  
Уведомление о