1С 8.3 БСП СтрокаСЧисломДляЛюбогоЯзыка
Данные > 1С 8.3 БСП > Строковые функции
Перейти в раздел примеры кода 1С 8.3:
1С 8.3 БСП СтрокаСЧисломДляЛюбогоЯзыка: Формирует представление числа для определенного языка и параметров числа. На замену устаревшей функции ЧислоЦифрамиПредметИсчисленияПрописью (до вер.2.4.2 БСП)
Примера кода от rayastar
Дней = 10;
Результат = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(НСтр("ru = ';%1 день;;%1 дня;%1 дней;';
|en = ';%1 day;;%1 days;%1 days;'"), Дней); // 10 дней
Результат = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(НСтр("ru = ';%1 день;;%1 дня;%1 дней;';
|en = ';%1 day;;%1 days;%1 days;'"), Дней); // 10 дней
// Автор библиотеки: ООО "1С-Софт". Все права защищены © 2021
// Типовая конфигурация Библиотека стандартных подсистем (далее - БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
Метод БСП
/// Формирует представление числа для определенного языка и параметров числа. //
// Параметры:
// Шаблон - Строка - строка, содержит перечисленные через точку с запятой 6 форм строки
// для каждой категории числительного:
// %1 обозначает позицию числа;
// Число - Число - число, которое будет подставлено в строку вместо параметра "%1".
// Вид - ВидЧисловогоЗначения - определяет вид числового значения, для которого формируется представление.
// Количественное (по умолчанию) или Порядковое.
// ФорматнаяСтрока - Строка - строка параметров форматирования. См. аналогичный параметр в СтрокаСЧислом.
//
// Возвращаемое значение:
// Строка - представление строки числа в требуемой форме.
//
// Пример:
//
// Строка = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
// НСтр("ru=';остался %1 день;;осталось %1 дня;осталось %1 дней;осталось %1 дня';
// |en=';left %1 day;;;;left %1 days'"),
// 0.05,, "ЧДЦ=1");
//
Функция СтрокаСЧисломДляЛюбогоЯзыка(Шаблон, Число, Вид = Неопределено, ФорматнаяСтрока = Неопределено) Экспорт
Если ПустаяСтрока(Шаблон) Тогда
Возврат Формат(Число, ФорматнаяСтрока);
КонецЕсли;
Если Вид = Неопределено Тогда
Вид = ВидЧисловогоЗначения.Количественное;
КонецЕсли;
Возврат СтрокаСЧислом(Шаблон, Число, Вид, ФорматнаяСтрока);
КонецФункции
// Шаблон - Строка - строка, содержит перечисленные через точку с запятой 6 форм строки
// для каждой категории числительного:
// %1 обозначает позицию числа;
// Число - Число - число, которое будет подставлено в строку вместо параметра "%1".
// Вид - ВидЧисловогоЗначения - определяет вид числового значения, для которого формируется представление.
// Количественное (по умолчанию) или Порядковое.
// ФорматнаяСтрока - Строка - строка параметров форматирования. См. аналогичный параметр в СтрокаСЧислом.
//
// Возвращаемое значение:
// Строка - представление строки числа в требуемой форме.
//
// Пример:
//
// Строка = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
// НСтр("ru=';остался %1 день;;осталось %1 дня;осталось %1 дней;осталось %1 дня';
// |en=';left %1 day;;;;left %1 days'"),
// 0.05,, "ЧДЦ=1");
//
Функция СтрокаСЧисломДляЛюбогоЯзыка(Шаблон, Число, Вид = Неопределено, ФорматнаяСтрока = Неопределено) Экспорт
Если ПустаяСтрока(Шаблон) Тогда
Возврат Формат(Число, ФорматнаяСтрока);
КонецЕсли;
Если Вид = Неопределено Тогда
Вид = ВидЧисловогоЗначения.Количественное;
КонецЕсли;
Возврат СтрокаСЧислом(Шаблон, Число, Вид, ФорматнаяСтрока);
КонецФункции
Аналог (устаревшая функция БСП v.2)
// Устарела. Следует использовать см. СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка.
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут");
// ->СтрокаСЧисломДляЛюбогоЯзыка(";%1 минуту;;%1 минуты;%1 минут;%1 минуты ", Значение);
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут ", Ложь);
// ->СтрокаСЧисломДляЛюбогоЯзыка(";минуту;;минуты;минут;минуты", Значение);
//
// Возвращает текстовое представление числа с единицей измерения в правильном склонении и числе.
//
// Параметры:
// Значение - Число - любое целое число.
// ПараметрыПредметаИсчисления - Строка - варианты написания единицы измерения для одной,
// для двух и для пяти единиц, разделитель - запятая.
// ДобавлятьЧислоКРезультату - Булево - при передаче значения Ложь число не будет добавлено к строке.
//
// Возвращаемое значение:
// Строка - текстовое представление количества единиц, число записывается цифрами.
//
// Пример:
// ЧислоЦифрамиПредметИсчисленияПрописью(23, "минуту,минуты,минут") = "23 минуты";
// ЧислоЦифрамиПредметИсчисленияПрописью(15, "минуту,минуты,минут") = "15 минут".
//
Функция ЧислоЦифрамиПредметИсчисленияПрописью(Знач Значение, Знач ПараметрыПредметаИсчисления,
Знач ДобавлятьЧислоКРезультату = Истина) Экспорт
Результат = ?(ДобавлятьЧислоКРезультату, Формат(Значение, "ЧН=0") + " ", "");
ПредставленияПредмета = Новый Массив;
ПараметрыПредметаИсчисления = СтрРазделить(ПараметрыПредметаИсчисления, ",");
Для Каждого Параметр Из ПараметрыПредметаИсчисления Цикл
ПредставленияПредмета.Добавить(СокрЛП(Параметр));
КонецЦикла;
Значение = Значение % 100;
Если Значение > 20 Тогда
Значение = Значение % 10;
КонецЕсли;
Индекс = ?(Значение = 1, 0, ?(Значение > 1 И Значение < 5, 1, 2));
Результат = Результат + ПредставленияПредмета[Индекс];
Возврат Результат;
КонецФункции
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут");
// ->СтрокаСЧисломДляЛюбогоЯзыка(";%1 минуту;;%1 минуты;%1 минут;%1 минуты ", Значение);
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут ", Ложь);
// ->СтрокаСЧисломДляЛюбогоЯзыка(";минуту;;минуты;минут;минуты", Значение);
//
// Возвращает текстовое представление числа с единицей измерения в правильном склонении и числе.
//
// Параметры:
// Значение - Число - любое целое число.
// ПараметрыПредметаИсчисления - Строка - варианты написания единицы измерения для одной,
// для двух и для пяти единиц, разделитель - запятая.
// ДобавлятьЧислоКРезультату - Булево - при передаче значения Ложь число не будет добавлено к строке.
//
// Возвращаемое значение:
// Строка - текстовое представление количества единиц, число записывается цифрами.
//
// Пример:
// ЧислоЦифрамиПредметИсчисленияПрописью(23, "минуту,минуты,минут") = "23 минуты";
// ЧислоЦифрамиПредметИсчисленияПрописью(15, "минуту,минуты,минут") = "15 минут".
//
Функция ЧислоЦифрамиПредметИсчисленияПрописью(Знач Значение, Знач ПараметрыПредметаИсчисления,
Знач ДобавлятьЧислоКРезультату = Истина) Экспорт
Результат = ?(ДобавлятьЧислоКРезультату, Формат(Значение, "ЧН=0") + " ", "");
ПредставленияПредмета = Новый Массив;
ПараметрыПредметаИсчисления = СтрРазделить(ПараметрыПредметаИсчисления, ",");
Для Каждого Параметр Из ПараметрыПредметаИсчисления Цикл
ПредставленияПредмета.Добавить(СокрЛП(Параметр));
КонецЦикла;
Значение = Значение % 100;
Если Значение > 20 Тогда
Значение = Значение % 10;
КонецЕсли;
Индекс = ?(Значение = 1, 0, ?(Значение > 1 И Значение < 5, 1, 2));
Результат = Результат + ПредставленияПредмета[Индекс];
Возврат Результат;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник