1C Округление целой и дройбной части чисел программно

Было дано задание, получать баллы, расчет которых шел по формуле СуммаПродажи / 1000. И округлять в большую сторону, если остаток больше 700р.

Звуковое управление в 1С 8.3

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    7295    velemir    33    

Программное округление целой и дробной части числа

И так программно можно округлить любое число как до целых так и до десятых , сотых. Делается это с помощью функции Окр, синтаксис такой.

Окр(Число , 0, 0);

Окр — сама функция

Число — соответственно число которое хотим округлить

0 — разрядность, число знаков после запятой

0 — Режим округления 0 в меньшую сторону 1 в большую, его можно не указывать по умолчанию всегда 0

Скажем если взять число = 12,123 то после применения Окр(Число , 0, 0); число будет 12.

Надеюсь объяснил понятно если нет то можете открыть Синтаксис-помощник.

1C Округление

Для примера я сделал форму, на которой размести реквизит «Цена» и 4 кнопки. Первая округляет введённое число в большую сторону, вторая в меньшею. Т.е если будет например число 10,12 при нажатии первой кнопки число округлиться до 11 а при нажатии второй до 10.

Третья и четвертая кнопка округляет дробную часть, т.е копейки, возьмем тоже число 10,12. Если нажмем третью кнопку результатом будет число 10,20, а если нажмем четвертую то 10,10.

Программное округление целой и дробной части числа 1С

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

&НаКлиенте
Процедура ТабличнаяЧастьПриИзмененииПосле(Элемент)
// Вставить содержимое обработчика.
Округление = Элементы.ТабличнаяЧасть.ТекущиеДанные;
Округление.Сумма = Окр(Округление.Сумма-0.05,1);

КонецПроцедуры

В результате все суммы будут округлены до сотых причем в меньшую сторону. Надеюсь все объяснил достаточно подробно но если остались вопросы обязательно спрашивайте!

Число

Описание:

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции: сложение, вычитание, умножение и деление. Максимально допустимая разрядность числа 38 знаков.

Литералы:

Набор цифр, написанных непосредственно в тексте модуля вида: [+|-]{0|1|2|3|4|5|6|7|8|9}[.{0|1|2|3|4|5|6|7|8|9}] В качестве разделителя целой и дробной части используется “.” (точка).

&НаКлиентеПроцедура ВыполнитьКод(Команда)     /// Как округлить число в 1с 8.3, 8.2  // https://ru.wikipedia.org/wiki/Округление  // до первого знака после запятой // случай когда (N + 1) знак < 5 Сообщить(Окр(321.123, 1)); // 321.1  // до первого знака после запятой // случай когда (N + 1) знак >= 5 Сообщить(Окр(321.163, 1)); // 321.2  // особый случай: // если при округлении до N-го знака // (N + 1)-й знак равен 5, а все последующие // знаки равны нулю, то результат округления // будет зависеть от третьего параметра функции Окр  Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как10)); // вернёт 100.3 Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как20)); // вернёт 100.4  // по умолчанию значение третьего параметра // равно РежимОкругления.Окр15как20 (округление в большую сторону)     /// Как получить целую часть числа в 1с 8.3, 8.2  Сообщить(Цел(12.654)); // 12     /// Как возвести число в степень в 1с 8.3, 8.2  Сообщить(Pow(10, 3)); // 10^3 = 1000     /// Как вычислить остаток от деления в 1с 8.3, 8.2  Сообщить(5 % 3); // 2     /// Как извлечь квадратный корень из числа в 1с 8.3, 8.2  Сообщить(Sqrt(25)); // 5     /// Как вычислить максимальное из нескольких значений в 1с 8.3, 8.2  Сообщить(Макс(1, 2, 3)); // 3 Сообщить(Макс(“aaa”, “bbb”, “ccc”)); // ccc Сообщить(Макс(ТекущаяДата(), ДобавитьМесяц(ТекущаяДата(), 1))); Сообщить(Макс(Истина, Ложь)); // Истина     /// Как вычислить минимальное из нескольких значений в 1с 8.3, 8.2  Сообщить(Мин(1, 2, 3)); // 1 Сообщить(Мин(“aaa”, “bbb”, “ccc”)); // aaa Сообщить(Мин(ТекущаяДата(), ДобавитьМесяц(ТекущаяДата(), 1))); Сообщить(Мин(Истина, Ложь)); // Ложь     /// Как вычислить выражение из строки в 1с 8.3, 8.2  Сообщить(Вычислить(“1+2”)); // 3 Сообщить(Вычислить(“ИСТИНА И ЛОЖЬ”)); // Нет Сообщить(Вычислить(“Sin(3.14)”)); // ~0 Сообщить(Вычислить(“Pow(Sin(3.14), 2) + Pow(Cos(3.14), 2)”)); // ~1     /// Тригонометрия в 1с 8.3, 8.2  // углы выражаются в радианах  Пи = 3.14; E = 2.718; // Число Эйлера http://ru.wikipedia.org/wiki/E_(число)  Сообщить(Cos(Пи / 2)); // ~0 Сообщить(ACos(0)); // ~1,57  Сообщить(Sin(Пи / 2)); // ~1 Сообщить(ASin(1)); // ~1,57  Сообщить(Sin(Пи / 2) * Sin(Пи / 2) + Cos(Пи / 2) * Cos(Пи / 2)); // ~1  Сообщить(Sin(Пи / 3) / Cos(Пи / 3)); // 1.73 Сообщить(Tan(Пи / 3)); // 1.73 Сообщить(Tan(ATan(1.73))); // 1.73  // экспонента – возведение числа эйлера в степень X // http://ru.wikipedia.org/wiki/Экспонента Сообщить(Pow(E, 2)); // 7,389 Сообщить(Exp(2)); // 7,389  // натуральный логарифм – степень в которую надо // возвести число эйлера e, чтобы получить X // http://ru.wikipedia.org/wiki/Натуральный_логарифм Сообщить(Log(9)); // 2,197 Сообщить(Pow(E, 2.197)); // ~9  // десятичный логарифм – степень в которую надо // возвести число 10, чтобы получить X // http://ru.wikipedia.org/wiki/Десятичный_логарифм Сообщить(Log10(1000)); // 3 Сообщить(Pow(10, 3)); // 1000     /// Как вывести число без пробелов в 1с 8.3, 8.2  Сообщить(Формат(1000000, “ЧГ=0”)); // 1000000 КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере

).

расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте

, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Получение целой и дробной части числа

Для получения целой части числа можно использовать функцию Цел. Для получения дробной части нужно из исходного числа вычесть целую часть:

Число= 1.23;

ЦелаяЧасть= Цел(Число);//1

ДробнаяЧасть= Число-Цел(Число);//0.23

Для этого используется такой синтаксис:

ВЫРАЗИТЬ( КАК ЧИСЛО ( . ))

Общие особенности использования в запросе

Если в качестве параметра передано не числовое значение, это может не вызывать ошибки выполнения запроса, но значение корректно не обработается:

Например, если передан NULL или он сформировался при соединениях таблиц, значение на выходе останется NULL:

Логарифмы

Для получения натурального логарифма используется функция Log, для десятичного — Log10:

Число= 100;

НатуральныйЛогарифм= Log(Число);//4.605170…

ДесятичныйЛогарифт= Log10(Число);//2

Vyrazit-NULL-kak-chislo.jpg

Передача же «Неопределено» вызывает ошибку «Несовместимые типы ВЫРАЗИТЬ»:

Возведение в степень

Возвести в степень можно двумя функция: Exp — возводит основание натурального логарифма (~2.72) в переданную ей параметром степень; Pow — можно передать как основание, так и показатель степени:

Степень= 2;

ЕВКвадрате= Exp(Степень);  //7.39…

Число= 2;

Степень= 3;

ЧислоВКубе= Pow(Число,Степень);//8

Квадратный корень

Для получения квадратного корня можно воспользоваться функцией Sqrt:

Число= 9;

КвадратныйКорень= Sqrt(Число);//3

Получение максимума и минимума

Для получения максимального и минимального числа можно использовать функции Макс и Мин. Параметром можно передать неограниченное количество чисел, через запятую:

Максимум= Макс(2,3,1);//3

Минимум= Мин(2,3,1);//1

Подписывайтесь на группу

ВКонтакте

, где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...