1С 8.3 Математика — Программист 1С Минск. Автоматизация бизнеса.
✔ Арифметические операции
&НаКлиенте
Процедура Арифметика ( Команда )
//Сложение
Формула_Суммы = 50 + 10 ; // Результат сложения = 60
//Разность
Формула_Вычитания = 50 — 10 ; // Результат вычитания (разности) = 40
//Произведение
Формула_Умножения = 50 * 10 ; // Результат умножения (произведения) = 500
//Частное
Формула_Деления = 50 / 10 ; // Результат деления (частное) = 5
//Остаток
Формула_Остатка_от_деления = 50 % 8 ; // Результат остатка от деления = 6
&НаКлиенте
Процедура Математика ( Команда )
//Функция округления
Результат_Окр_до_десятой = Окр ( 123.432 , 1 ); // = 123.4
Результат_Окр_до_десятой = Окр ( 123.679 , 1 ); // = 123.7
Результат_Окр_до_сотой = Окр ( 123.432 , 2 ); // = 123.43
Результат_Окр_до_сотой = Окр ( 123.679 , 2 ); // = 123.68
// Если предыдущий дробный знак = 5, а последующие = 0
// То результат округления зависит от 3-го параметра РежимОкругления
// По умолчанию = РежимОкругления.Окр15как20 (в большую сторону)
Результат_Окр_Окр15как10 = Окр ( 200.150 , 1 , РежимОкругления . Окр15как10 ); // = 200.1
Результат_Окр_Окр15как20 = Окр ( 200.150 , 1 , РежимОкругления . Окр15как20 ); // = 200.2
//Функция вычисления максимального значения из нескольких
Результат_Макс = Макс ( 1 , 2 , 3 , 4 , 5 , 6 , 7 ); // = 7
Результат_Макс = Макс ( Дата ( 1983 , 07 , 01 ), Дата ( 2020 , 04 , 17 )); // = 17.04.2020
Результат_Макс = Макс (Истина, Ложь); // = Истина
Результат_Макс = Макс ( «Alena» , «Clark» , «Boris» ); // = «Clark»
//Функция вычисления минимального значения из нескольких
Результат_Мин = Мин ( 1 , 2 , 3 , 4 , 5 , 6 , 7 ); // 1
Результат_Мин = Мин ( Дата ( 1983 , 07 , 01 ), Дата ( 2020 , 04 , 17 )); // = 01.07.1983
Результат_Мин = Мин (Истина, Ложь); // Ложь
Результат_Мин = Мин ( «Alena» , «Clark» , «Boris» ); // = «Alena»
//Функция вычисления целого числа
Результат_Цел = Цел ( 200.150 ); // = 200
//Функция возведения числа в степень
Результат_Степень = Pow ( 50 , 2 ); // 50^2 = 2500
//Функция извлечения квадратного корня из числа
Результат_КвКорень = Sqrt ( 2500 ); // √2500 = 50
&НаКлиенте
Процедура Тригонометрия ( Команда )
//Косинус угла (углы выражаются в радианах)
Результат_Косинус_угла = Cos ( 45 ); //
0.5253
//Арккосинус числа
Результат_АркКосинус_числа = ACos ( 1 ); // = 0
//Синус угла (углы выражаются в радианах)
Результат_Синус_угла = Sin ( 45 ); //
0.8509
//Арксинус числа
Результат_АркСинус_числа = ASin ( 1 ); //
1.5708
//Тангенс угла (углы выражаются в радианах)
Результат_Тагенс_угла = Tan ( 45 ); //
1.6198
//Арктангенс угла (углы выражаются в радианах)
Результат_АркТагенс_угла = ATan ( 1 ); //
0.7854
//Натуральный логарифм числа
Результат_НатЛогарифм_числа = Log ( 3 ); //
1.0986
//Десятичный логарифм числа
Результат_ДесЛогарифм_числа = Log10 ( 3 ); //
0.4771
//Exponenta — возведение основания натурального логарифма
//(числа E) 2,7182818284590452353602874713527…
// в степень: Параметр «Число»
Результат_Эксп_числаE = Exp ( 709.78271289338397 ); //709.782712893
Работа с числами в 1С 8.2 и 8.3
Число — это один из примитивных типов данных существующих в 1С. Числа в 1С:Предприятии встречаются абсолютно везде и всюду. Следовательно важность знания функций для работы с числами трудно переоценить. К рассмотрению этих функций и приступим.
В начале скажем, что максимальная разрядность для числа равняется 38-ми знакам, при этом для целой части выделено 32 символа.
При этом в конфигураторе можно указать длину числа в 64 символа (при точности в 32 символа), но это вероятно какая-то ошибка, так как при попытке обновить конфигурацию Вы увидите нечто подобное:
Ошибка конфигуратора
С числами в 1С можно выполнять все стандартные арифметические операции:
- “+” — сложение;
- “-” — вычитание;
- “*” — умножение;
- “/” — деление;
- “%” — остаток от деления.
Функции для работы с числами в 1С 8.2 и 8.3
Функция Окр(x, y, z) позволяет округлить число “x” в зависимости от заданной разрядности “y” и режима округления “z”.
Программа 1С: Дробное число
Формат ввода не целого значения, округление и получение дробной части могут вызывать вопросы у начинающего специалиста. Широкий круг прикладных задач требует понимания принципов работы с дробными числами.
1. Особенности в программе 1С: дробные числа
Любые числа в 1С принадлежат одному и тому же типу данных. Система счисления программы – десятичная, то есть все входные и выходные значения будут содержать только цифры от 0 до 9. Фактически, целое или дробное значение будет расценено программой одинаково.
Чтобы отделить целую часть от дробной, используется символ «.». Например: 0.5, 3.14, -123.456. Запятая на месте разделителя не позволит считать число корректно. Предельное число разрядов (включая знаки) – 38.
В коде программы не обязательно указывать десятичную дробь. Например, запись 1 2 дробью будет автоматически вычислена при запуске кода. То же правило относится к арифметическому типу выражения и стандартным математическим функциям.
2. Получение целой и дробной части числа 1С
Для получения целой части в программе существует функция Цел(<Число>). В качестве примера, определим, делится ли число А на число В.
Если Цел(С) = С Тогда
Число 125 нацело не разделилась на 6: целая часть результата деления меньше всего частного. Программа выдаст ответ «Нет».
Чтобы получить только дробные разряды, нужно вычесть из числа его целую часть. Например:
ДЧасть = А — Цел(А);
В данном случае переменная ДЧасть примет значение 0.456.
3. Функция округление в запросе 1С
Функция Окр(<Число>, <Разрядность>, <РежимОкругления>) позволяет округлить число по заданным пользователем правилам.
1. <Число> – заданное пользователем число для выполнения функции;
2. <Разрядность> – знак после запятой, до которого происходит округление в запросе 1С. Нулевое значение будет соответствовать округлению до целого значения, отрицательное – до десятков, сотен и т.д.
3. <РежимОкругления> – 0 или 1. Если пользователь передал в параметр нулевое значение, разряд 5 будет округляться в меньшую сторону, если передана единица, то в большую.
Функция округления в запросе 1С очень полезна на практике, так как после применения формул или перевода в другие единицы могут образовываться десятки дробных разрядов, которыми оптимально пренебречь.
4. Функции работы с дробными числами 1С
Функция Pow(<Основание>, <Показатель>) возводит число в степень. Дробный показатель степени позволяет получать значения корней.
Функции для работы с числами в 1С
Для получения целой части числа можно использовать функцию Цел. Для получения дробной части нужно из исходного числа вычесть целую часть:
Округление чисел
Для округления чисел в 1С предназначена функция Окр. Первым параметром передается само число, вторым — количество знаков после запятой, до которых нужно округлить. Если вторым параметром передать отрицательное число, то будет выполнено округление до соответствующего разряда в целой части, начиная с младших разрядов (-1 до десятков, -2 до сотен и т.д.). Третьим параметром указывается режим округления: если 0, то число 1.5 округляется до 1, если 1, то 1.5 округляется до 2.
Округление всегда в большую сторону
Число = 11.2345;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12
Число = 11.01;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12
Число = 11.99;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12
Для получения натурального логарифма используется функция Log, для десятичного — Log10:
Тригонометрические функции
В 1С можно рассчитывать синус, косинус, тангенс, арксинус, арккосинус, арктангенс:
Число = 0;
Арксинус = ASin(Число); //0
Арккосинус = ACos(Число); //
Возведение в степень
Возвести в степень можно двумя функция: Exp — возводит основание натурального логарифма (
2.72) в переданную ей параметром степень; Pow — можно передать как основание, так и показатель степени:
Число = 2;
Степень = 3;
ЧислоВКубе = Pow(Число, Степень); //8
Квадратный корень
Для получения квадратного корня можно воспользоваться функцией Sqrt:
Перевод в десятичную систему счисления
С помощью функций ЧислоИзШестнадцатеричнойСтроки и ЧислоИзДвоичнойСтроки можно получить десятичное число из шестнадцатиричного и двоичного числа. Обе функции параметром принимают строки. Для функции ЧислоИзШестнадцатеричнойСтроки строка должна начинаться с «0x», для функции ЧислоИзДвоичнойСтроки с «0b»:
Получение максимума и минимума
Для получения максимального и минимального числа можно использовать функции Макс и Мин. Параметром можно передать неограниченное количество чисел, через запятую: