ПривестиЗначение() - неожиданное округление!
Исходные данные:
- Windows 2016 x64;
- 1С:Предприятие 8.3 (8.3.14.1565) x64;
- Управление небольшой фирмой для Украины, редакция 1.6 (1.6.9.1)
Проблемка:
Метод работает не так, как ожидалось: округляет до 2-х десятичных знаков независимо от квалификатора числа.
Например, для ОписаниеТиповЧисло.КвлификаторыЧисла(15,5,Неотрицательный), возвращается 0, если число < 0,005. Иначе возвращается 0,01.
Наглядная картинка в прицепленном снимке экрана.
Вопрос:
Что(где) я делаю не так? Направьте меня, пожалуйста, куда копать.
- Windows 2016 x64;
- 1С:Предприятие 8.3 (8.3.14.1565) x64;
- Управление небольшой фирмой для Украины, редакция 1.6 (1.6.9.1)
Есть функция: |
---|
Процедура СтрокаВЧисло(ЧислоРезультат, ЧислоСтрокой, ЗначениеПоУмолчанию = 0, ОписаниеТиповЧисло = Неопределено) Экспорт
Если ПустаяСтрока(ЧислоСтрокой)
И (ОписаниеТиповЧисло = Неопределено)
И (ОписаниеТиповЧисло.Типы.Найти(Тип("Число")) = Неопределено)
Тогда
ЧислоРезультат = ЗначениеПоУмолчанию;
Возврат;
КонецЕсли;
ЧислоРезультат = ОписаниеТиповЧисло.ПривестиЗначение(ЧислоСтрокой);
КонецПроцедуры
Показать |
Проблемка:
Метод
ПривестиЗначение()
Например, для ОписаниеТиповЧисло.КвлификаторыЧисла(15,5,Неотрицательный), возвращается 0, если число < 0,005. Иначе возвращается 0,01.
Наглядная картинка в прицепленном снимке экрана.
Вопрос:
Что(где) я делаю не так? Направьте меня, пожалуйста, куда копать.
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ОписаниеТипов.ПривестиЗначение (TypeDescription.AdjustValue)
ОписаниеТипов (TypeDescription)
ПривестиЗначение (AdjustValue)
Синтаксис:
ПривестиЗначение(<Значение>)
Параметры:
<Значение> (необязательный)
Тип: Произвольный.
Значение, которое будет приводиться.
Возвращаемое значение:
Тип: Произвольный.
Если значение передано, то выполняется проверка на соответствие значения описанию типа. Если значение соответствует, то метод возвращает переданное значение. Если значение не соответствует, то оно приводится к типу, доступному в описании типа.
Если значение не передано, то выдается значение по умолчанию для данного описания типа.
Описание:
Формирует значение на основании описания типа и переданного значения.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
С этим вопросом необходимо немедленно обратиться к 1С разработчикам в ЗАО 1С или в ближайший франчайзинг.
Есть второй путь disassembler и медитация, отыскание неисправности и пропатчивание всех остальных версий 1С с этой ошибкой.
ОписаниеТипов.ПривестиЗначение (TypeDescription.AdjustValue)
ОписаниеТипов (TypeDescription)
ПривестиЗначение (AdjustValue)
Синтаксис:
ПривестиЗначение(<Значение>)
Параметры:
<Значение> (необязательный)
Тип: Произвольный.
Значение, которое будет приводиться.
Возвращаемое значение:
Тип: Произвольный.
Если значение передано, то выполняется проверка на соответствие значения описанию типа. Если значение соответствует, то метод возвращает переданное значение. Если значение не соответствует, то оно приводится к типу, доступному в описании типа.
Если значение не передано, то выдается значение по умолчанию для данного описания типа.
Описание:
Формирует значение на основании описания типа и переданного значения.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
С этим вопросом необходимо немедленно обратиться к 1С разработчикам в ЗАО 1С или в ближайший франчайзинг.
Есть второй путь disassembler и медитация, отыскание неисправности и пропатчивание всех остальных версий 1С с этой ошибкой.
(1)
Хм...
Поставил 1С:Предприятие 8.3 (8.3.14.1565) x64 файловый вариант на Windows 10 LTSC 2019 x64.
Создал голую файловую ИБД.
Набросал обработку.
Работает!
На Windows 2016 в УНФ не работает ни в файловом, ни в серверном варианте.
Попробую голую ИБД на 2016.
Windows 2016 x64
Хм...
Поставил 1С:Предприятие 8.3 (8.3.14.1565) x64 файловый вариант на Windows 10 LTSC 2019 x64.
Создал голую файловую ИБД.
Набросал обработку.
Работает!
На Windows 2016 в УНФ не работает ни в файловом, ни в серверном варианте.
Попробую голую ИБД на 2016.
(10)Язык то ладно, а разделитель целой и дробной части везде запятая?
А то подозреваю, там где не работает ПривестиЗначение с числом с запятой, вполне сработает, если там вместо запятой точка будет.
То есть там где не работает для 0,00035
проверьте для 0.00035
Будет работать?
А то подозреваю, там где не работает ПривестиЗначение с числом с запятой, вполне сработает, если там вместо запятой точка будет.
То есть там где не работает для 0,00035
проверьте для 0.00035
Будет работать?
Вы не считаете, что у вас в условии в принципе неработоспособные условия указаны?
Как одновременно может быть переменная Неопределено, а дальше проверка ее свойств?
Если ПустаяСтрока(ЧислоСтрокой)
И (ОписаниеТиповЧисло = Неопределено)
И (ОписаниеТиповЧисло.Типы.Найти(Тип("Число")) = Неопределено)
Как одновременно может быть переменная Неопределено, а дальше проверка ее свойств?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот