Числа в 1С

Рассмотрим один из примитивных типов, с которым приходится сталкиваться разработчикам на платформе 1С 8.3, – Число. В этой статье мы научимся задавать числа в коде, создавать реквизиты с типом число , получать случайное число, округлять числа и получать из числа с дробью целое число.

Тип число в 1С

Задать число в коде просто: нужно какой-то переменной просто присвоить определенное число.

Так задаётся целое число:

Число1 = 1000;

А так задаются дробные числа:

Число1 = 5.25;
Число2 = 0.25;

Отрицательные:

Число1 = - 10;

И число ноль:

Число1 = 0;  

Над числами в коде можно выполнять простые арифметические операции: сложение, вычитание, умножение и деление.

Причем, как непосредственно над числами:

Число1 = 10 + 20;
Число2 = 15 - 19;
Число3 = 3 * 5.7;
Число4 = 1.5/23.1;

Так и над переменными с типом число:

Число1 = 10.34;
Число2 = 15;

п_Сложение  = Число1 + Число2;
п_Вычитание = Число1 - Число2;
п_Умножение = Число1 * Число2;
п_Деление   = Число1 / Число2;

Если нужно инвертировать число, т.е. поставить какому-то уже заданному числу обратный знак (например, было 5, стало -5), то его нужно умножить на -1.

Сделать это можно несколькими способами:

Число1 = - 10.34;
Число2 = Число1*-1;
Число2 = Число1*(-1);
Число2 = -1*Число1;
Число2 = (-1)*Число1;
Число2 = -Число1;

Если нам нужно создать реквизит какого-то объекта, с типом число, то в свойстве Тип реквизита нужно выбрать тип Число. На картинке ниже у справочника создан реквизит с типом Число.

Тип число

А также задать его точность и длину.  

Длина и точность типа число

Остановимся на точности и длине подробнее.

Точность – это максимальное количество знаков после запятой.

Длина – это максимальное количество разрядов в числе (включая знаки после запятой).

Например, если длина 5, а точность 3, то максимальное число будет 99,999.

Если длина 5, а точность 0, то – 99999.

А если  длинна 3, а точность 3, то – 0,999. Т.е когда длинна равна точности мы не сможем задать число равное 1.

Когда мы в коде задаем переменную с типом Число, то мы не ограничиваем эту переменную по длине и точности, в тоже время для реквизита объекта с типом Число нужно это делать заранее. При разработке вы должны заранее предусмотреть, какие у реквизита числового типа будет длинна и точность.

Точно также, реквизит с типом число нужной длинны и точности можно создать на управляемой форме.

Число на управляемой форме 1С

Случайное число в 1С

В платформе 1С 8.3 имеется возможность сгенерировать случайное целое число  при помощи генератора случайных чисел, который так и называется ГенераторСлучайныхЧисел.  Для генерации случайного числа нужно воспользоваться методом этого объекта СлучайноеЧисло.

Рассмотрим, простой пример генерации случайного числа.

Генератор = Новый ГенераторСлучайныхЧисел;
Число1 = Генератор.СлучайноеЧисло();

В этом случае Число1 будет сгенерировано от 0 до 4294967295 (2^32 -1).

В примере выше метод СлучайноеЧисло без параметров, но у этого метода есть два параметра:

СлучайноеЧисло(НижняяГраница, ВерхняяГраница).

Оба параметра являются необязательных и с их помощью можно задать верхнюю и нижнюю границу генерации случайных чисел. Причем параметр НижняяГраница не может быть меньше нуля, а параметр ВерхняяГраница не может быть больше 4294967295.

Например, в этом случае будет сгенерировано случайное число от 1 до 100.

Генератор = Новый ГенераторСлучайныхЧисел;
Число1 = Генератор.СлучайноеЧисло(1,100);

Округлить число в 1С

В платформе 1С имеется возможность округления чисел по определенному правилу. Для этих целей существует метод Окр. Этот метод является функцией, которая принимает число, нужное для округления, и возвращает округленное число. Данный метод имеет следующий синтаксис:

Окр(<Число>,<Разрядность>,<РежимОкругления>)

Где:

Число – число, которое будет округляться;

Разрядность – до какого количества знаков после запятой нужно округлить число (если разрядность равна 0, то число будет округлено до целого числа).

РежимОкругления – системное перечисление, которое имеет два значения: РежимОкругления.Окр15как10 – в этом случае 1.5 округляется до 1, РежимОкругления.Окр15как20 – 1.5 округляется до 2. Если этот параметр не задан, то по умолчанию 1.5 округляется до 2

Например:

ЧислоОкрБ = Окр(3/2,0,РежимОкругления.Окр15как20);
ЧислоОкрМ = Окр(3/2,0,РежимОкругления.Окр15как10);

Сообщить("ЧислоОкрБ = " + ЧислоОкрБ);
Сообщить("ЧислоОкрМ = " + ЧислоОкрМ);

В этом случае будет следующий результат:

Округлить число в 1С

Целое число в 1С

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

Рассмотрим работу этого метод в сравнении с методом округления числа.

Число1 = 10;
Число2 = 6;

Число3 = Число1 / Число2;
ЧислоОкр2 = Окр(Число3,2);
ЧислоОкр0 = Окр(Число3,0);
ЧислоЦел = Цел(Число3);

Сообщить("Окр (" + Число1 + "/" + Число2 + ",2) = " + ЧислоОкр2);
Сообщить("Окр (" + Число1 + "/" + Число2 + ",0) = " + ЧислоОкр0);
Сообщить("Цел (" + Число1 + "/" + Число2 + ") = " + ЧислоЦел);

Должен получиться следующий результат:

Целое число и округлить число в 1С

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

Степень числа в 1С

В платформе 1С имеется возможность возвести нужное число в степень. Делается это при помощи метода Pow, который является функцией со следующим синтаксисом.

Pow(<Число>, <СтепеньЧисла>)

Рассмотрим ряд примеров:

Число1 = 10;

Число2 = Pow(Число1,3);
Число3 = Pow(Число1,-3);
Число4 = Pow(Число1,2.5);
Число5 = Pow(Число1,-3.5);


Сообщить("10^3 = " + Число2);
Сообщить("10^-3 = " + Число3);
Сообщить("10^2.5 = " + Число4);
Сообщить("10^-3.5 = " + Число5); 

И результат:

Степень числа в 1С

Из примеров видно, что мы можем возводить в положительную и отрицательную степень, а также степень может быть дробной.

Функции чисел в 1С

В платформе 1С 8.3 имеется другие функции пот работе с числами , познакомится с ними можно в синтаксис-помощнике. В подразделе Функции работы со значениями типа Число.

Функции работы со значениями типа число

Другие статьи о примитивных типах:

Примитивный тип Строка

Примитивный тип Булево

Примитивный тип Дата

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *