1с округлить до целого в большую сторону
Операции с числами это самое простое, что есть в любом языке программирования. Но и тут в 1с есть пара ньюансов. Привожу те, заморочки с которыми сам сталкивался.
Модуль числа.
Функции модуль в 1с нет. Но вопрос можно решить следующим образом:
_МодульЧислаА = Макс ( А , – А ) ;
Округление.
Арифметическое округление до 2-х знаков после запятой.
_Рез = Окр ( Число , 2 ) ;
Округлить в меньшую сторону.
Пример: отбросить до 2-х знаков после запятой.
_Рез = Цел ( _Число*100 ) / 100 ;
Округлить в большую сторону.
Делаем это за счет третьего параметра функции ОКР.
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 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 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Надеюсь, Вы знакомы с функцией Окр(), которая позволяет округлить дробное число до ближайшего целого. Все когда-нибудь ею пользовались. Но всё меняется, когда Вам требуется округлить числовое значение строго в большую сторону. Бывалый программист сразу же бросится за изобретение колеса. Через пару минут родится новая функция, например, такая:
Проверочное выражение Цел(1.1) + 1 = 2 , введенное в табло, убеждает в правильности выбранного пути, и новоиспеченное колесо начинает молотить ошибки, т.к. на проверку функции на всем диапазоне значений чего-то не хватило (надеюсь, что времени ;D). В итоге получается, что функция даже целые значения округляет вверх Цел(1) + 1 = 2
Найденное решение может быть более изощренным, например, таким:
Давайте разберем его подробнее: второй параметр функции Окр() указывает на необходимость округления до целого числа, а третий параметр заставляет воспринимать промежуточное значение 0.5 как 0 (ноль). И для того, чтобы спровоцировать округление в большую сторону, программист сознательно прибавляет к исходному значению число 0.5. Теперь, если исходное значение будет больше целого хотя бы на сотую, тысячную или миллионную долю, оно всегда будет округляться вверх.
Теперь ложка дегтя: округляться вверх будут и отрицательные значения. С математической точки зрения -2 меньше -1, но оригинальная функция Окр() выполняет округление по модулю, а не по математическим правилам. Поэтому программист должен подумать и над тем, как ему нужно округлять отрицательные значения.
Таким образом, если Вам нужен пример функции, выполняющей округление в большую сторону по аналогии с функцией Окр(), Вы попали куда нужно:
В данной статье будет рассмотрено как проводить округление в1С 8.3 в большую сторону при помощи специальных функций. Также будут приведены примеры для определения округления в большую сторону в 1С.
1. Функция округления числа
В системе 1С есть специальная функция, которая помогает округлить число в большую сторону – это «ОкруглитьВбольшуюСторону()».
Рис. 1 Пример стандартного вида этой функции на скриншоте с кодом для серверного применения
Выше показан пример кода функции «ОкруглитьВбольшуюСторону()» для серверного применения. Ее же можно применить и для клиента в системе 1С:
Рис. 2 Округление в большую сторону в 1С
Также можно рассмотреть функцию, которая совершает обычное округление числа в большую сторону, и проследить, как она отличается от «ОкруглитьВбольшуюСторону()». Это – функция Окр(). Например, если будет Окр(15.55), то возвращено будет простое число 15. При помощи данной функции, в отличие от предыдущей, которая производит округление до целого в большую сторону, можно убирать не целую часть от заданного числа. Также в ней можно устанавливать, до какого количества знаков будет проводится округление. Как пример, если будет Окр(15.2235), то в результате вернётся 15.22. Также данная функция может задавать сколько порядков в числе необходимо убрать. Например, если будет Окр(14567, -3), то вернётся значение 14000.
2. Применение для округления суммы в 1С
Рассмотрим, где можно на практике применять округление в большую сторону в 1С.
Рис. 3 Округление суммы в 1С
3. Режимы округления в 1С 8
Также следует уделить внимание и другим режимам округления в системе 1С 8:
· Округление до первого знака после запятой при условии, что знак меньше пяти:
Рис. 4 Код для округления в 1С 8
· Округление до первого знака после запятой при условии, что знак больше, либо равен пяти:
Рис. 5 Пример кода округления 1С 8.3
· Округление до N-ного знака после запятой в случае, если N+1 = 5, а все остальные знаки равны нулям, то округляться будет по третьему параметру внутри функции по округлению числа:
Рис. 6 Функция округления числа
· Округление на основании целой части заданного числа, данная функция может быть также рассмотрена, как округление числа в большую сторону:
Рис. 7 Функция округления числа в большую сторону в 1С
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
В данной статье будет рассмотрено как проводить округление в1С 8.3 в большую сторону при помощи специальных функций. Также будут приведены примеры для определения округления в большую сторону в 1С.
1. Функция округления числа
В системе 1С есть специальная функция, которая помогает округлить число в большую сторону – это «ОкруглитьВбольшуюСторону()».
Рис. 1 Пример стандартного вида этой функции на скриншоте с кодом для серверного применения
Выше показан пример кода функции «ОкруглитьВбольшуюСторону()» для серверного применения. Ее же можно применить и для клиента в системе 1С:
Рис. 2 Округление в большую сторону в 1С
Также можно рассмотреть функцию, которая совершает обычное округление числа в большую сторону, и проследить, как она отличается от «ОкруглитьВбольшуюСторону()». Это – функция Окр(). Например, если будет Окр(15.55), то возвращено будет простое число 15. При помощи данной функции, в отличие от предыдущей, которая производит округление до целого в большую сторону, можно убирать не целую часть от заданного числа. Также в ней можно устанавливать, до какого количества знаков будет проводится округление. Как пример, если будет Окр(15.2235), то в результате вернётся 15.22. Также данная функция может задавать сколько порядков в числе необходимо убрать. Например, если будет Окр(14567, -3), то вернётся значение 14000.
2. Применение для округления суммы в 1С
Рассмотрим, где можно на практике применять округление в большую сторону в 1С.
Рис. 3 Округление суммы в 1С
3. Режимы округления в 1С 8
Также следует уделить внимание и другим режимам округления в системе 1С 8:
· Округление до первого знака после запятой при условии, что знак меньше пяти:
Рис. 4 Код для округления в 1С 8
· Округление до первого знака после запятой при условии, что знак больше, либо равен пяти:
Рис. 5 Пример кода округления 1С 8.3
· Округление до N-ного знака после запятой в случае, если N+1 = 5, а все остальные знаки равны нулям, то округляться будет по третьему параметру внутри функции по округлению числа:
Рис. 6 Функция округления числа
· Округление на основании целой части заданного числа, данная функция может быть также рассмотрена, как округление числа в большую сторону:
Рис. 7 Функция округления числа в большую сторону в 1С
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
В данной статье будет рассмотрено как проводить округление в1С 8.3 в большую сторону при помощи специальных функций. Также будут приведены примеры для определения округления в большую сторону в 1С.
1. Функция округления числа
В системе 1С есть специальная функция, которая помогает округлить число в большую сторону – это «ОкруглитьВбольшуюСторону()».
Рис. 1 Пример стандартного вида этой функции на скриншоте с кодом для серверного применения
Выше показан пример кода функции «ОкруглитьВбольшуюСторону()» для серверного применения. Ее же можно применить и для клиента в системе 1С:
Рис. 2 Округление в большую сторону в 1С
Также можно рассмотреть функцию, которая совершает обычное округление числа в большую сторону, и проследить, как она отличается от «ОкруглитьВбольшуюСторону()». Это – функция Окр(). Например, если будет Окр(15.55), то возвращено будет простое число 15. При помощи данной функции, в отличие от предыдущей, которая производит округление до целого в большую сторону, можно убирать не целую часть от заданного числа. Также в ней можно устанавливать, до какого количества знаков будет проводится округление. Как пример, если будет Окр(15.2235), то в результате вернётся 15.22. Также данная функция может задавать сколько порядков в числе необходимо убрать. Например, если будет Окр(14567, -3), то вернётся значение 14000.
2. Применение для округления суммы в 1С
Рассмотрим, где можно на практике применять округление в большую сторону в 1С.
Рис. 3 Округление суммы в 1С
3. Режимы округления в 1С 8
Также следует уделить внимание и другим режимам округления в системе 1С 8:
· Округление до первого знака после запятой при условии, что знак меньше пяти:
Рис. 4 Код для округления в 1С 8
· Округление до первого знака после запятой при условии, что знак больше, либо равен пяти:
Рис. 5 Пример кода округления 1С 8.3
· Округление до N-ного знака после запятой в случае, если N+1 = 5, а все остальные знаки равны нулям, то округляться будет по третьему параметру внутри функции по округлению числа:
Рис. 6 Функция округления числа
· Округление на основании целой части заданного числа, данная функция может быть также рассмотрена, как округление числа в большую сторону:
Рис. 7 Функция округления числа в большую сторону в 1С
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени В чем разница между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ в языке запросов 1С 10
Цитата из справки 1С: " По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные РАЗНЫМИ запросами, заменяются одной . Если требуется, чтобы были оставлены разные строки, необходимо указать ключевое Внешние источники данных 0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр Посмотреть все результаты поиска похожих
Еще в этой же категории
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 23
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 19
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Оператор ВЫРАЗИТЬ, аналог методов Лев, Прав, СокрЛП в Запросе? 11
Использовать конструкцию « ВЫРАЗИТЬ »: Запрос.Текст = " … |ГДЕ | (ВЫРАЗИТЬ(ЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) Груз" ; Запрос.УстановитьПараметр(" Груз" ," Тонн" ); С целью приведения строк неограниченной длины к строкам Посмотреть все в категории Запросы
Читайте также: