Встроенный язык Работа с числами 1. Создайте папку «Встроенный язык 1С». 2. Запустите программу 1С в режиме Конфигуратора, указав путь к созданной Вами папке. 3. Откройте окно конфигурации. 4. В ветке Обработки добавьте обработку «Работа с числами». Немного теории. Примитивный тип данных Число (Number). Числовым типом данных во встроенном языке 1С может быть реквизит объекта конфигурации или переменные в модулях. Максимально допустимая разрядность числа составляет 38 знаков, длина целой части не может превышать 32 символа, точность — 10 символов. Хотя в переменных можно оперировать числами превышающих разрядность в 38 символов, но в ИБ (информационную базу) можем записывать значения с длинной целой части не больше 32-х знаков. Над данными числового типа применимы операции: +, -, *, /, ( ), %(остаток от деления нацело 10%3=1). Математические функции для чисел можно посмотреть в Синтакспомощнике: Общее описание встроенного языка-> Встроенные функции-> Функции по работе с типом Число. Рассмотрим некоторые из них на примерах: Окр(<Число>, <Разрядность>, <РежимОкругления>) Функция округляет исходное число до нужной разрядности в соответствии с заданным режимом округления. Параметры: <Число> (обязательный), Исходное число. Остальные параметры не обязательны. Пример: // Округлим цену до копеек ОкругленнаяЦена = Окр(Цена, 2); // Округлим цену до сотен рублей ОкругленнаяЦена = Окр(Цена, -2); Цел(<Число>) — Функция вычисляет целую часть переданного числа, полностью отсекая дробную часть. Пример: МожноКупить = Цел(Наличность/Цена); Часто на практике встречается преобразование типов данных из строки в число, для этих целей есть функция Число(). Функция Число() — Преобразует полученный параметр (параметр обычно строкового типа) в значение типа Число. Пример: КонтрольноеЧисло = Число(Прав(СтраховойНомер,2)); Типа Булево преобразуется в число: • Ложь преобразуется в 0; • Истина преобразуется в 1. Приоритет арифметических операций: 1) ( ) 2) Унарные арифметические операции (+, -) 3) *, /, % 4) Бинарные арифметические операции (+, -) 5) Операции сравнения (>,>=, 6) НЕ 7) И 8) ИЛИ Формат(<Значение>, <ФорматнаяСтрока>) Функция формирует удобное для чтения представление значений. Параметры: <Значение> (обязательный) Тип параметра: Число; Дата; Булево. Форматную строку удобно задавать, вызвав: Конструктор форматной строки Макс(<Значение1>,…,<ЗначениеN>) Функция определяет максимальное значение из полученных параметров. Параметры: <Значение1>,…,<ЗначениеN> (обязательный) и могут иметь один Тип: Число; Строка; Дата; Булево. Пример: // Пример для чисел A = Макс(1, 2, 3); // A = 3 Мин(<Значение1>,…,<ЗначениеN>) Из полученных параметров функция определяет минимальное значение. Пример: // Пример для чисел A = Мин(1, 2, 3); // А = 1 Часто встречаются задачи, когда число надо представить прописью, для этих целей есть функиця: ЧислоПрописью(<Число>, <ФорматнаяСтрока>, <ПараметрыПредметаИсчисления>)Функция формирует представление числа прописью. Задание 1. 5. В обработке «Работа с числами» перейдите на закладку данные. Добавьте реквизиты: Число1 (тип данных Строка, 10), Число2 (тип данных Число, 10, точность 4), Число 3 (тип данных Число, 10, точность 0). 6. Перейдите на закладку Формы и добавьте форму обработки с созданными реквизитами. 7. Добавьте команды формы и перетащите их на командную панель, как показано на рисунке ниже. 8. В свойствах каждой команды добавьте соответствующее действие. 9. Например, по нажатию на кнопку Числовой формат в поле Число2 должно появляться числовое значение поля Число1. 10. Ниже приведен программный код процедур и результаты их выполнения. Задание 2. Результат: Задание 3. Результат: Задание 4. Результат: Задание 5. Примеры работы с числовыми функциями в 1С 8.2 и 8.3 Окр Функция Окр(x, y, z) позволяет округлить число “x” в зависимости от заданной разрядности “y” и режима округления “z”. Цел Функция Цел(x) возвращает целую часть переданного в параметре числа “x”. Число Функция Число(x) пытается преобразовать полученное значение “x” в значение типа Число. Такому преобразованию поддаются значения типа Булево и типа Строка (строка должна состоять только из цифр), во всех остальных случаях генерируется ошибка. Мин Функция Мин(x1…xn) возвращает минимальное из переданных ей значений “x1…xn”, работает не только с числами. Макс Функция Макс(x1…xn) возвращает максимальное из переданных ей значений “x1…xn”, как и предыдущая функция работает не только с числами. Вычислить Функция Вычислить(x) позволяет вычислить математические и логические выражения “x”, а также операции конкатенации. Модуль В 1С пока нет отдельной функции для получения модуля числа, но эта проблема решается просто: Использование этой функции: Sqrt Функция Sqrt(x) просто возвращает квадратный корень переданного ей числа “x”. Pow Функция Pow(x, y) возводить число “x” в степень “y” и возвращает результат. Exp Функция Exp(x) возвращает результат возведения числа Эйлера в указанную степень “x”. Логарифм Функции Log(x) и Log10(x) возвращают натуральный и десятичный логарифм числа “x” соответственно. Тригонометрия Набор функций которые вычисляют соответствующие тригонометрические функции, результат исчисляется в радианах: Sin(x) — синус; Cos(x) — косинус; Tan(x) — тангенс; ASin(x) — арксинус; ACos(x) — арккосинус; ATan(x) — арктангенс. Случайные числа Для получения случайных чисел в 1С существует даже не функция, а целый объект — генератор случайных чисел, пусть даже этот объект содержит всего один метод — СлучайноеЧисло(x, y), который возвращает случайное число в диапазоне от “x” до “y”. Ввести число Функция ВвестиЧисло(x, y, z, v) позволяет вывести форму ввода числа, которое записывается в переменную “x”, в параметрах можно указать подсказку “y”, длину числа “z” и точность “v”. В результате получится что-то вроде этого: 11. САМОСТОЯТЕЛЬНО. 1. Выведите сообщение о максимальном и минимальном значениях из данных, внесенных в поля Число1, Число2 и Число3. 2. Выведите сообщение о максимальном и минимальном значениях из данных, внесенных в поля Число1, Число2 и Число3 прописью. 3. С помощью функции ВвестиЧисло() введите число а. Возведите число а в квадрат. Выведите результат в поле Число1. 4. С помощью функции ВвестиЧисло() введите число а. Вычислите квадратный корень из числа а. Выведите результат в поле Число1. 5. С помощью функции ВвестиЧисло() введите числа а и в. Возведите число а в степень в. Выведите результат в поле Число1. 6. Внесите в поле Число1 значение «1000». Вычислите функцию Log(x) и представьте результат в поле Число2. Вычислите функцию Log10(x) и представьте результат в поле Число3. 7. Внесите в поле Число1 значение «10». Вычислите функцию Sin(x) и представьте результат в поле Число2. Вычислите функцию Cos(x) и представьте результат в поле Число3. 8. С помощью функции ВвестиЧисло() введите числа а и в. Вычислите функцию Tan(x) и функцию ATan(x). Выведите результат с помощью функции Сообщить(). 9. С помощью функции ВвестиЧисло() введите число а. Выведите с помощью функции Сообщить() число а прописью. 10. Вычислите площадь круга по формуле S=πr2, если значение радиуса вводится в поле Число1. Результат выведите в поле Число2. 11. Рассчитайте площадь треугольника через основание (значение вводится в поле Число1) и высоту (значение вводится в поле Число2) по формуле . Результат выведите в поле Число3. 12. Рассчитайте площадь трапеции по формуле: . Значения h,a,b вводите в поля Число1, Число2 и Число3. Результат вывести с помощью функции Сообщить(). Покажите результаты работы преподавателю.