1С 8.3 БСП СтрокаСЧисломДляЛюбогоЯзыка - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 БСП СтрокаСЧисломДляЛюбогоЯзыка

Данные > Примеры кода 1С > 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 дней
// Автор библиотеки: ООО "1С-Софт". Все права защищены © 2021
// Типовая конфигурация Библиотека стандартных подсистем (далее - БСП)
// Код БСП распространяется по лицензии 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");
//
Функция СтрокаСЧисломДляЛюбогоЯзыка(Шаблон, Число, Вид = Неопределено, ФорматнаяСтрока = Неопределено) Экспорт

   Если ПустаяСтрока(Шаблон) Тогда
       Возврат Формат(Число, ФорматнаяСтрока);
   КонецЕсли;

   Если Вид = Неопределено Тогда
       Вид = ВидЧисловогоЗначения.Количественное;
   КонецЕсли;

   Возврат СтрокаСЧислом(Шаблон, Число, Вид, ФорматнаяСтрока);

КонецФункции
Аналог (устаревшая функция БСП v.2)
// Устарела. Следует использовать см. СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка.
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут");
// ->СтрокаСЧисломДляЛюбогоЯзыка(";%1 минуту;;%1 минуты;%1 минут;%1 минуты ", Значение);
//
// ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут ", Ложь);
// ->СтрокаСЧисломДляЛюбогоЯзыка(";минуту;;минуты;минут;минуты", Значение);
//
// Возвращает текстовое представление числа с единицей измерения в правильном склонении и числе.
//
// Параметры:
//  Значение                    - Число  - любое целое число.
//  ПараметрыПредметаИсчисления - Строка - варианты написания единицы измерения для одной,
//                                         для двух и для пяти единиц, разделитель - запятая.
//  ДобавлятьЧислоКРезультату   - Булево - при передаче значения Ложь число не будет добавлено к строке.
//
// Возвращаемое значение:
//  Строка - текстовое представление количества единиц, число записывается цифрами.
//
// Пример:
//  ЧислоЦифрамиПредметИсчисленияПрописью(23,  "минуту,минуты,минут") = "23 минуты";
//  ЧислоЦифрамиПредметИсчисленияПрописью(15,  "минуту,минуты,минут") = "15 минут".
//
Функция ЧислоЦифрамиПредметИсчисленияПрописью(Знач Значение, Знач ПараметрыПредметаИсчисления,
   Знач ДобавлятьЧислоКРезультату = Истина) Экспорт

   Результат = ?(ДобавлятьЧислоКРезультату, Формат(Значение, "ЧН=0") + " ", "");
   ПредставленияПредмета = Новый Массив;

   ПараметрыПредметаИсчисления = СтрРазделить(ПараметрыПредметаИсчисления, ",");
   Для Каждого Параметр Из ПараметрыПредметаИсчисления Цикл
       ПредставленияПредмета.Добавить(СокрЛП(Параметр));
   КонецЦикла;

   Значение = Значение % 100;
   Если Значение > 20 Тогда
       Значение = Значение % 10;
   КонецЕсли;

   Индекс = ?(Значение = 1, 0, ?(Значение > 1 И Значение < 5, 1, 2));
   Результат = Результат + ПредставленияПредмета[Индекс];

   Возврат Результат;

КонецФункции
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 26.05.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому