Преобразовать в большие буквы 1с

Обновлено: 07.07.2024

Число - Число, которое необходимо преобразовать в строку прописью.

Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США).
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина.
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина.
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.

Параметры предмета исчисления - Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского и белорусского языков (ru_RU, be_BY)
"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
"рубль, рубля, рублей, м" – предмет исчисления:
рубль – единственное число именительный падеж,
рубля – единственное число родительный падеж,
рублей – множественное число родительный падеж,
м – мужской род (ж – женский род, с - средний род);
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для украинского языка (uk_UA)
"гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2", где:
"гривна, гривны, гривен, м" – предмет исчисления:
"гривна – единственное число именительный падеж,
гривны – единственное число родительный падеж,
гривен – множественное число родительный падеж,
м – мужской род (ж – женский род, с - средний род);
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для польского языка (pl_PL)
z?oty, z?ote, z?otych, m, grosz, grosze, groszy, m, 2
где:
"z?oty, z?ote, z?otych, m " - предмет исчисления (m - мужской род, ? - женский род, ? - средний род, mo – личностный мужской род)
z?oty - единственное число именительный падеж
z?ote - единственное число винительный падеж
z?otych - множественное число винительный падеж
m - мужской род (? - женский род, ? - средний род, mo – личностный мужской род)
"grosz, grosze, groszy, m " - дробная часть (может отсутствовать) (аналогично целой части)
2 - количество разрядов дробной части (может отсутствовать, по-умолчанию равно 2)
Код 1C v 8.х
Для английского, финского и казахского языков (en_US, fi_FI, kk_KZ)
"dollar, dollars, cent, cents, 2", где:
"dollar, dollars" – предмет исчисления в единственном и множественном числе;
"cent, cents" – дробная часть в единственном и множественном числе (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для немецкого языка (de_DE)
"EURO, EURO, М, Cent, Cent, M, 2", где:
"EURO, EURO, М" – предмет исчисления:
EURO, EURO – предмет исчисления в единственном и множественном числе;
М – мужской род (F – женский род, N - средний род);
"Cent, Cent, M" – дробная часть, аналогично предмету исчисления (может отсутствовать);
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).

Функции 1С ВРег(Строка) и 1С НРег(Строка) приводит все символы в строке к верхнему (АБВГД) или нижнему (абвгд) регистру.

Функция 1С ТРег(Строка) приводит все символы в строке к нижнему (абвгд) регистру, а первую букву в каждом слове к верхнему (АБВГД).

Функция 1С ТРег() используется при обработке полей, где пользователь должен ввести ФИО. Например в обработчике ПриИзменении у текстового поля на форме, с именем реквизита формы ФиоКонтактногоЛица:
ФиоКонтактногоЛица = ТРег(СокрЛП(ФиоКонтактногоЛица));

Функции 1С ВРег() и 1С НРег() используются чаще всего в условиях (сравнении) данных, введенных пользователем с шаблоном. Например – во многих типовых конфигурациях есть справочник стран мира, а в нем элемент «РОССИЯ». При работе документа нам известно, что если выбрана «РОССИЯ», то поле ГТД «не видно».

Если мы напишем:
Если СтранаСсылка.Наименование = "Россия" Тогда

Поэтому при сравнении лучше использовать 1С ВРег:
Если ВРЕГ(СокрЛП(СтранаСсылка.Наименование)) = "РОССИЯ" Тогда

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

На примере нашего анализатор текста сделаем с помощью 1С ВРег, 1С НРег и 1С ТРег – «нормализации» ФИО – первая буква в фамилии, имени и отчестве с большой, а остальные с маленькой, а к сокращениям добавим точку (про анализатор текста см. выше «Функции работы со строками 1С»). Примерно также работает 1С ТРег(), кроме добавления точки к сокращениям.

  • что нам на «входе» подается строка, содержащая ФИО в «неизвестном нам виде, как ввел пользователь»
  • ФИО может быть как полная фамилия, а имя и отчество в сокращенном, так и полностью
  • регистр букв неизвестен

Пример использования созданных нами функций:
НормализацияФИО("ПЕТРОВ-немерович сергей александрович");
НормализацияФИО("бегемотов с а");

Обратите внимание на следующие использованные конструкции.
Момент 1:
НормализированныйТекст = НРЕГ(СтрЗаменить(СокрЛП(ФИО), ".", ""));

Мы могли написать это так:
НормализированныйТекст = СокрЛП(ФИО);
НормализированныйТекст = СтрЗаменить(НормализированныйТекст, ".", "");
НормализированныйТекст = НРЕГ(НормализированныйТекст);
Но вызов функции можно «вкладывать» друг в друга, для экономии текста программы.

Момент 2:
РазрешенныйСимвол = Найти(РазрешенныеСимволы, Буква);
Если не РазрешенныйСимвол Тогда

Мы могли написать это так:
Позиция = Найти(РазрешенныеСимволы, Буква);
Если Позиция = 0 Тогда

Но значения «булево» (истина, ложь) можно выразить в числах (ложь – 0, истина – остальное), и наоборот. Чем мы и воспользовались, получив более читаемый текст.
Момент 3:
Результат = Результат + ?(ЗапрещенныйСимвол, ВРЕГ(НормализированныйТекст), НормализированныйТекст) + ?(ДлинаСлова = 0, ".", "");

Мы могли написать это так:
Если ЗапрещенныйСимвол Тогда
Результат = Результат + ВРЕГ(НормализованныйТекст);
Иначе
Результат = Результат + НормализованныйТекст;
КонецЕсли;
Если ДлинаСлова = 0 Тогда
Результат = Результат + ".";
КонецЕсли;

Но оператор ?(условие, что делать если да, что делать если нет) позволяет прописывать условные действия в более компактном виде.

Строки сравниваются посимвольно по коду символа, для ясности несколько примеров "Строка12" < "Строка2", "8.3.9.2000" > "8.3.8", "8.3.9.2000" > "8.3.10"

С учетом регистра можно сравнить строки через знаки сравнения как в примерах

Сравнение без учета регистра можно произвести функций СтрСравнить. Поддерживается с платформы 8.3.6.

  • -1 - первая строка меньше второй
  • 1 - первая строка больше второй.
  • 0 - первая строка равна второй

Преобразование в строку (Строка, Формат)

В языке 1С есть автоматическое преобразование типа когда все части выражения приводятся к типу первого выражения

Преобразование функцией Строка

при преобразовании появляется символ неразрывный пробел, а он обычно не нужен

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


Строка на разных языках НСтр

Форматирование строки по шаблону СтрШаблон. Поддерживается с платформы 8.3.6.

Очень полезная функция которая позволяет избежать соединения строк и сделать текст более читабельным

Функции СтрСоединить, СтрРазделить. Поддерживается с платформы 8.3.6.

Очень полезные функции улучшают читаемость кода.

СтрРазделить удобна когда необходимо разобрать строку с разделителями, например CSV файл, разбор текста на слова, строки

Аналогично, только наоборот работает функция СтрСоединить, преобразуя массив к строке.

Другие функции работы со строками, которые могут быть полезны

СтрСократить (Текст, Количество, Многострочная = Ложь) - сокращает текст до заданной длины заменяя окончание на .

ЭтоКорректныйИдентификатор (Строка) - Проверяет является ли строка корректным идентификатором, строка вида СуммаКонтрагента, _Идентификатор

Когда в 1с встает вопрос разбора большого текста это уже зоопарк из СтрДлина, Сред, СтрНайти для повышения читаемости программ для подобных задач использую свои функции: РазборПрочитатьЦелоеЧисло, РазборПрочитатьШестнадцатеричноеЧисло, РазборПрочитатьНезначимые, РазборПрочитатьИдентификатор,

РазборПропуститьНаборСимволов, РазборПрочитатьСимвол, РазборПрочитатьДоСимвола, РазборНайтиТекст

Функции для работы со строками в 1С 8.2 и 8.3

Строка

Функция Строка(x) возвращает текстовое представление переданного ей значения “x”.

СтрДлина

Функция СтрДлина(x) вычисляет количество символов в строке “x”, учитывая пробелы и ничего не значащие символы.

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

Функции СокрЛП(x), СокрЛ(x) и СокрП(x) убирают пробелы и ничего не значащие символы у переданной строки “x” с обеих сторон, слева и справа соответственно.

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

Функции Лев(x, y) и Прав(x, y) возвращают количество символов “y” с левого или правого края переданной им строки “x”. А функция Сред(x, y, z) возвращает количество символов “z” из указанного места “y” переданной строки “x”.

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

Сообщить(ТРег("Каждое слово с заглавной буквы")); //Каждое Слово С Заглавное Буквы

Найти

Функция Найти(x, y) возвращает номер первого символа первого вхождения подстроки “y” в строку “x”, если, конечно, такое вхождение найдено (при этом нумерация начинается с 1). Если же вхождений не найдено, то функция возвращает 0.

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

Функция СтрЧислоВхождений(x, y) возвращает количество вхождений подстроки “y” в строку “x”.

СтрЗаменить

Функция СтрЗаменить(x, y, z) позволяет в указанной строке “x” заменить все вхождения одной подстроки “y” на другую “z”, результатом выполнения функции будет строка с проведенными заменами.

Сообщить(СтрЗаменить("тест1,тест2,тест3,тест4", ",", " ")); //тест1 тест2 тест3 тест4

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

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

Функция СтрЧислоСтрок(x) возвращает количество строк в многострочном тексте “x”.

МногострочныйТекст = СтрЗаменить("тест1,тест2,тест3,тест4", ",", Символы.ПС); //тест1 тест2 тест3 тест4

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

Функция СтрПолучитьСтроку(x, y) возвращает строку с номером “y” из многострочного текста “x”.

МногострочныйТекст = СтрЗаменить("тест1,тест2,тест3,тест4", ",", Символы.ПС); //тест1 тест2 тест3 тест4 Сообщить(СтрПолучитьСтроку(МногострочныйТекст, 2)); //тест2

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

Символы

Это не функция, а набор наиболее часто используемых специальных символов, состоит из:

ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр

Функция ЗначениеВСтрокуВнутр(x) возвращает системное строковое представление значения “x”. Функция ЗначениеИзСтрокиВнутр(x) проделывает обратную операцию и возвращает значение, полученное из строкового системного представления “x”. Обе эти функции используются для сохранения функциональной совместимости с версией 7.7. Использование для каких-либо других целей не рекомендуется. В новых версиях платформы данные функции не работают (хотя их описание присутствует в справке).

ВвестиСтроку

Читайте также: