Chieftain писал(а) 25. Июня 2008 :: 07:14:orefkov писал(а) 25. Июня 2008 :: 07:12:Ну, либо если надо именно количество целых упаковок получить, то тогда только
Не совсем... Нужно получить количество полных упаковок и оставшихся штук
orefkov писал(а) 25. Июня 2008 :: 07:12:Вобщем, буду думать еще над этим.
А вот это не может не радовать!
Например, можно добавить функцию
Divide | Разделить (Делимое, Делитель, ТочностьДелимого, ТочностьДелителя, ТочностьРезультата)
Функция средствами арифметики 1С:
Преобразует Делимое из double в numeric заданной точности
Преобразует Делитель из double в numeric заданной точности
Выполняет деление numeric'ов.
Если точность результата не равна -1, округляет результат-numeric средствами 1С до указанной точности.
Возвращает: если ТочностьРезультата 0 - целое число (int64), иначе - numeric, пробразованный в double.
Аналогичная функция
Mod | ОстДеления (Делимое, Делитель, ТочностьДелимого, ТочностьДелителя, ТочностьРезультата)
тока возвращает остаток деления.
Кстати, сама 1С остаток от деления нецелых чисел интересно считает - она округляет операнды до целого, как задано в конфигурации, и возвращает остаток от деления целых.
То есть узнавать количество упаковок и сколько без упаковки, при нецелых коэффициентах - проблематично будет и в самой 1С.
Например, если остаток 63.7, а в упаковке 1.7, то 63.7 % 1.7 наврет, то бишь надо считать
63.7 - (Цел(63.7 / 1.7) * 1.7), то есть функция Mod остаток так должна считать:
ОкругленноеДелимое - (Цел (ОкругленноеДелимое / ОкругленныйДелитель) * ОкругленныйДелитель).
Во как табло выдало.
63.7 % 1.7 = 0
63.7 - (Цел(63.7 / 1.7) * 1.7) = 0.8