Не подскажите, как в Количество Мест, да и вообще в коде округлять числа равные 5.
Хотя это уже не округление называется)

Нужно что бы цифры округлить число 0.5 и целое. По "ПОЛОВИНКЕ"
Пример:

2.4 = 2.5
4.2 = 4.0
26.9 = 27.
44.7 = 44.5
Кстати, с точки зрения математики 3 и 8 куда идут? К целому или дробному?
---
в заголовке темы четко написано кратно 5Да, здесь есть путаница: заголовок поста не соответствует примеру в теле поста. Т.к. текст поста я понять до конца не смог, то ориентировался исключительно на пример.

 ЗарплатаКадрыКлиентСервер.Округлить(ОкруглитьДробьДоЦелогоНашМетод(2.4), 5))Это лишнее. Приведенная Вами функция нормально считает и до дробной точности:

```1c
    ЗарплатаКадрыКлиентСервер.Округлить(2.4, 0.5)
```
---
Принцип прост: у нас есть готовое округление до единиц. А надо до половинок. Значит, надо округлить удвоенное число до единиц и поделить это пополам.
Еще у нас есть округление до заданного числа десятичных знаков. Можно поделить на пять, округлить до десятых и обратно помножить на пять.
---
```1c
    Результат = Окр(Значение * 2)/2;
```
---
зультат = Окр
Не подскажите, как округлить Количество Мест? Она у меня в дробном виде. Да понимаю не правильно, но все же. Мне нужно что бы было по половинке.
---
Извините, я не понимаю Вашего вопроса. Вы не знаете, как применить приведенную мной формулу? Или она не решает Вашу задачу, т.к. я не правильно понял ее условие?
---
не катит, из отладки

Окр(2 * 2)/2 2
Окр(3 * 2)/2 3
Окр(8 * 2)/2 8

все уже придумано до нас

ЗарплатаКадрыКлиентСервер.Округлить(2, 5) 0
ЗарплатаКадрыКлиентСервер.Округлить(3, 5) 5
ЗарплатаКадрыКлиентСервер.Округлить(8, 5) 10

```1c
    // Округляет число до заданной точности по указанному правилу.
    //
    // Параметры:
    // Число - Число - число, которое необходимо округлить.
    // Точность - Число - "базис", до которого нужно округлить заданное число.
    // Правило - ПеречислениеСсылка.ПравилаОкругленияПриРасчетеЗарплаты.
    //
    // Возвращаемое значение:
    // Число - округленное до заданной точности значение.
    //
    Функция Округлить(Число, Точность = 0, Правило = Неопределено) Экспорт

    // Если надо округлить 0 или точность не задана, то возвращаем заданное число.
    Если Не ЗначениеЗаполнено(Число)
    Или Точность <= 0 Тогда
    Возврат Число
    КонецЕсли;

    Множитель = Число / Точность;
    ЦелыйМножитель = Цел(Множитель);

    Если Множитель = ЦелыйМножитель Тогда
    Результат = Число;
    Иначе
    Результат = Точность * Окр(Множитель);

    Если Правило = ПредопределенноеЗначение("Перечисление.ПравилаОкругленияПриРасчетеЗарплаты.ВБольшуюСторону") Тогда
    Результат = Точность * (ЦелыйМножитель + 1);
    ИначеЕсли Правило = ПредопределенноеЗначение("Перечисление.ПравилаОкругленияПриРасчетеЗарплаты.ВМеньшуюСторону") Тогда
    Результат = Точность * ЦелыйМножитель;
    КонецЕсли;
    КонецЕсли;

    Возврат Результат;

    КонецФункции
```

Велосипедистам которые тут вопят, что читать общие модули это плохо, а писать свои костыли это гуд - привет.
---
Как я понял, округлять то нужно до 0.5, а не до 5. В приведенной Вами функции ровно тот же алгоритм, только с дополнительной опцией, в какую сторону округлять.

В свою защиту против велосипедиста скажу, что попросту никогда не работал с подсистемой ЗУП, а потому ни разу не видел функцию "Округлить", только и всего. Полностью все общие модули же не перечитаешь и не удержишь в голове.
---
в заголовке темы четко написано кратно 5, думаю необходимо округлять дробные числа кратно целому 5.

Тогда сначала избавляемся от дроби можно согласно вашему обернуть в функцию и уже потом типовой
ЗарплатаКадрыКлиентСервер.Округлить(ОкруглитьДробьДоЦелогоНашМетод(2.4), 5))

проверил в отладке работает

ЗарплатаКадрыКлиентСервер.Округлить(2.4, 5) 0 Число
ЗарплатаКадрыКлиентСервер.Округлить(4.2, 5) 5 Число
ЗарплатаКадрыКлиентСервер.Округлить(26.9, 5) 25 Число
ЗарплатаКадрыКлиентСервер.Округлить(44.7 , 5) 45 Число
---
в заголовке темы четко написано кратно 5Да, здесь есть путаница: заголовок поста не соответствует примеру в теле поста. Т.к. текст поста я понять до конца не смог, то ориентировался исключительно на пример.

 ЗарплатаКадрыКлиентСервер.Округлить(ОкруглитьДробьДоЦелогоНашМетод(2.4), 5))Это лишнее. Приведенная Вами функция нормально считает и до дробной точности:

```1c
    ЗарплатаКадрыКлиентСервер.Округлить(2.4, 0.5)
```
---
да, я уже проверил и исправил сообщение до вашего теста.

цель не помочь страждущему, а запомнить самому.
по большему счету мне тут побарабану кто чего справшивает.
главное спрашивают то, что может пригодиться
и я ищу решения прежде всего для себя.
---
Да и придумать такое выражение быстрее, чем заучивать функции общих модулей, по-моему. Если оно надо раз в пять лет, функции модулей за это время раза три поменяются уже.
---
Настаиваю: такую элементарную мелочь выискивать в общих модулях, если она нужна раз в несколько лет - плохо! Понять однажды, из любого источника, даже общего модуля, если оно случайно встретилось - хорошо. Но общие модули - не детективы. И читать их просто так - это для особо извращенных умов. А вот придумать простое решение по ходу - хорошо.
---
общие модули - не детективы. И читать их просто так - это для особо извращенных умов. А вот придумать простое решение по ходу - хорошо. Именно способность придумать свой алгоритм отличает программиста от 1Сника - последний полагается исключительно на функции платформы или типовых конфигураций.
---
Окр(,) - функция платформы. Как округление к единице использовать для округления к любой кратности - это, извините, элементарная задачка по арифметике, которую любому кодеру знать неплохо бы, даже 1С-нику :)
---
элементарная задачка по арифметике, которую любому кодеру знать неплохо бы, даже 1С-нику Ничего не имею против, просто переадресую это пожелание настаивающим на использовании модуля ЗарплатаКадрыКлиентСервер в задаче определения количества мест... интересно, мест чего? Штатного расписания, наверное? ;)
---
интересно, мест чего?
ХЗ. Места еще фигурируют, например, в накладных. Где-то это упаковки, где-то паллеты... Хотя половинки мест..? С другой стороны, я когда-то участвовал в автоматизации оптовой торговли пивом, там народ перепаковывал упаковки 6 бутылок на 2 сорта, чтобы только поддерживать ассортимент точек, в которых продается только самое дешевое... А в правилах хорошего стиля программирования есть и такое: "не делать лишних предположений". И, насколько я понял про общий модуль, коллега утверждал, что в общих модулях много полезных функций и процитировал оттуда решение задачи в более общей постановке. Отчего он цитировал именно ЗУП? Возможно, он сейчас интенсивно с ней работает. Все-таки, ставил вопрос и писал ответ разные люди. И связывать "места" вопроса с "ЗУП" ответа для получения каких-то выводов о контексте исходной задачи не очень корректно, мне кажется.
---
неважно откуда метод - из ЗУП, ПУП... я оставил идентификацию(имя общего модуля) только для того
чтобы пытливый ум понял откуда эта идея. а ваши рассуждения о местах порожняк какой-то

какая разница откуда идея если она применима на практике в других задачах?
---
Кэп, не смешите

с утра повеселили адепты "вечного сияния чистого разума"

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

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

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