Вход | Регистрация
 

СтрокаСЧислом - не отображает число 0

СтрокаСЧислом - не отображает число 0
Я
   Sasha_H
 
15.05.21 - 13:07
СП - гласит:
<ИсходнаяСтрока> (обязательный)
Тип: Строка.
Строка, содержит перечисленные через точку с запятой 6 форм строки для каждой категории числительного:
%1 обозначает позицию числа,
порядок категорий - по возрастанию: Ноль, Один, Два, Немного, Много, Другое.

СтрокаСЧислом("Выгружено0: %1 элементов;Выгружен1: %1 элемент;Выгружен2: %1 элемент;Выгружено3: %1 элемента;Выгружено4: %1 элементов;Выгружен5: %1 элемент",  0, ВидЧисловогоЗначения.Количественное)

Специально пронумеровал позиции Выгружено0 и т.д., чтобы для отладки понять какой уровень выполнился:
Выгружено4:  элементов

Собствено "пробел" вместо числового 0, подскажите. что я сделал не так. Спасибо.
 
 Партнерская программа EFSOL Oblako
   Sasha_H
 
1 - 15.05.21 - 13:09
Из зазеркалья:

Реализовано в версии 8.3.10.2168.

Мы добавили в платформу поддержку строк, требующих согласования с числительными. Теперь вы можете формировать строки вида «время выполнения 32 секунды» и «время выполнения 65 секунд» автоматически, не анализируя числительное для того, чтобы использовать правильную форму существительного.

Для этого мы добавили в платформу новый метод СтрокаСЧислом(). Принцип его работы основан на том, что любое числительное в любом языке можно отнести к одной из шести категорий:

ZERO – ноль;
ONE – один;
TWO – два;
FEW – немного;
MANY – много;
OTHER - другое.

https://wonderland.v8.1c.ru/blog/podderzhka-strok-trebuyushchikh-soglasovaniya-s-chislitelnymi/
   Sasha_H
 
2 - 15.05.21 - 13:11
Используется
1С:Предприятие 8.3 (8.3.18.1363)
   Sasha_H
 
3 - 15.05.21 - 13:20
По ходу это бага. 0
из СП:

дней:
для целых чисел, оканчивающихся на 0,
для целых чисел, оканчивающихся на 5..9,
для целых чисел, оканчивающихся на 11..14;

Тоесть выполняется категория "Выгружено4" , а сам 0 они какого-то "Х" решили не выводить.
   RomanYS
 
4 - 15.05.21 - 13:46
(3) у нуля пустое представление по умолчанию, поэтому баг или фича - неочевидно.
Пропиши в самом шаблоне "Выгружено0: 0 элементов" и не парься
   Sasha_H
 
5 - 15.05.21 - 13:53
(4) так он не попадает в шаблон Выгружено0, а выполняет шаблон Выгружено4 - тоесть Много. из СП пример:

"; день; ; дня; дней; дня":
день – для целых чисел, оканчивающихся на 1, но не оканчивающихся на 11;
дня – для целых чисел, оканчивающихся на 2..4, но не оканчивающихся на 12..14;
дней:
для целых чисел, оканчивающихся на 0,
для целых чисел, оканчивающихся на 5..9,
для целых чисел, оканчивающихся на 11..14;
дня – для чисел, не подходящих под предыдущие правила.


То есть срабатывает "для целых чисел, оканчивающихся на 0,". Ноль заканчивается на 0, но он не выводится вообще. баг/фича неизвестно, по моему баг, поскольку 0 - это число!
   RomanYS
 
6 - 15.05.21 - 14:05
(5) Короче точно не баг. Есть четвертый параметр, поставь туда "ЧН=". Без него представление 0 это пустая строка, абсолютно ожидаемо
   Sasha_H
 
7 - 15.05.21 - 14:12
(6) пробовал.
https://ibb.co/Syms6q2
   Sasha_H
 
8 - 15.05.21 - 14:15
(6) ну вот, натупил 

СтрокаСЧислом("Выгружено0: %1 элементов;Выгружен: %1 элемент;;Выгружено: %1 элемента;Выгружено: %1 элементов;Выгружен: %1 элемент",  0,   ВидЧисловогоЗначения.Количественное, "ЧН=0; ЧГ=")

формат не верно применял. Спасибо.
   RomanYS
 
9 - 15.05.21 - 14:15
(7) эээ... Зачем "Формат(..", просто форматную строку
   Sasha_H
 
10 - 15.05.21 - 14:19
(9) да уже ошибку увидел, спасибо.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.