Символы ВК, ВТаб, НПП, ПС, ПФ, Таб в 1С 8.3 (8.2)
Специальные символы в 1С 8.3 — набор специальных символов для строковых типов данных.
Рассмотрим каждый из них подробнее.
Специальные символы в 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С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
Пример:
Строка(ТекущаяДата()) //"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С программирование, рекомендуем наш курс (не забудьте
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
&НаКлиенте Процедура ВыполнитьКод(Команда) /// Как найти длину строки в 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();
КонецПроцедуры