Как в 1 с чтобы исправить округление

Опубликовано 23.01.2023 09:59
Просмотров: 6446

Многие бухгалтеры отмечают, что в ведомостях на выплату аванса за январь происходит округление копеек, хотя раньше такого не наблюдалось. В этом лайфхаке расскажем, как в режиме технического специалиста вы сможете самостоятельно поправить настройки округления в программах 1С. Алгоритм действий един, что для 1С: Бухгалтерии предприятия ред. 3.0, что для 1С: ЗУП ред. 3.1. Различается лишь путь достижения конечного результата в зависимости от того облачная у вас программа или локальная. 

Сначала рассмотрим пример в локальной конфигурации.

В правом верхнем углу нажмем кнопку «Сервис и настройки» и в пункте «Настройки» выберем «Параметры».

В открывшемся окне поставим галочку в поле «Режим технического специалиста».

Теперь вам открыт доступ к регистрам и справочникам программы.

Зайдем снова в «Сервис и настройки» и откроем «Функции для технического специалиста».

В открывшемся окне нас интересует пункт «Справочники».

Провалимся в него и выберем сначала справочник способов выплаты заработной платы.

В 1С: Бухгалтерии предприятия ред. 3.0 картина будет следующей:

Видим, что в программе для аванса, договора подряда и зарплаты за месяц предусмотрены разные способы округления сумм. Причем именно у аванса на текущий момент стоит выбор «Округления до рубля в большую сторону», хотя раньше стояла позиция «Округления до копейки».

Вы можете поставить тот способ, который вам необходим.

В 1С: ЗУП ред. 3.1 способов выплаты гораздо больше, они даже не помещаются все на экран.

Вернемся еще к одному справочнику – к «Способам округления зарплаты».

Здесь можно настроить точность и конкретное правило округления.

В облачных программах «Режим технического специалиста» недоступен в целях безопасности. Но пользователь может воспользоваться объектами, используя штатный интерфейс, а при отсутствии нужного элемента получить доступ к нему, используя ссылки.

Рассмотрим, как это можно сделать.

Перейдите в облачную 1С и вызовите команду «Перейти по ссылке». Сделать это можно двумя способами:

– в разделе «Сервис и настройки – одноименная кнопка-стрелка в правом верхнем углу программы;

– комбинация клавиш «Shift+F11».

В открывшемся необходимо ввести следующую ссылку (прямо скопируйте и вставьте):

e1cib/list/Справочник.СпособыВыплатыЗарплаты

Далее кнопка «Перейти».

Программа откроет привычный нам уже справочник Способов выплаты зарплаты.

Ссылочку на второй справочник тоже оставим: e1cib/list/Справочник.СпособыОкругленияПриРасчетеЗарплаты

Не будем рассматривать как мы получили эти ссылки из 1С, подробнее почитать об этом можно здесь.

Автор статьи: Ирина Плотникова

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

Содержание:

1.       Функция округления числа

2.       Применение для округления суммы в 1С

3.       Режимы округления в 1С 8

В данной статье будет рассмотрено как проводить округление в1С 8.3 в большую сторону при помощи специальных функций. Также будут приведены примеры для определения округления в большую сторону в 1С.  

1.    Функция округления числа

В системе 1С есть специальная функция, которая помогает округлить число в большую сторону – это «ОкруглитьВбольшуюСторону()».

Рис. 1 Пример стандартного вида этой функции на скриншоте с кодом для серверного применения

Выше показан пример кода функции «ОкруглитьВбольшуюСторону()» для серверного применения. Ее же можно применить и для клиента в системе 1С:

Рис. 2 Округление в большую сторону в 1С

Также можно рассмотреть функцию, которая совершает обычное округление числа в большую сторону, и проследить, как она отличается от «ОкруглитьВбольшуюСторону()». Это – функция Окр(). Например, если будет Окр(15.55), то возвращено будет простое число 15. При помощи данной функции, в отличие от предыдущей, которая производит округление до целого в большую сторону, можно убирать не целую часть от заданного числа. Также в ней можно устанавливать, до какого количества знаков будет проводится округление. Как пример, если будет Окр(15.2235), то в результате вернётся 15.22. Также данная функция может задавать сколько порядков в числе необходимо убрать. Например, если будет Окр(14567, -3), то вернётся значение 14000.  

2.    Применение для округления суммы в 1С

Рассмотрим, где можно на практике применять округление в большую сторону в 1С.

Например, запустим документ «ПоступлениеТоваровИУслуг». В нём нам необходимо проверить условие по возможности округления суммы. В случае, если округление необходимо произвести, то выведется окно с сообщением, в котором будет указано, сумму какого товара можно округлить. Как настроить округление в 1С, показано ниже:

Рис. 3 Округление суммы в 1С  

3.    Режимы округления в 1С 8

Также следует уделить внимание и другим режимам округления в системе 1С 8:

·        Округление до первого знака после запятой при условии, что знак меньше пяти:

Рис. 4 Код для округления в 1С 8

·        Округление до первого знака после запятой при условии, что знак больше, либо равен пяти:

Рис. 5 Пример кода округления 1С 8.3

·        Округление до N-ного знака после запятой в случае, если N+1 = 5, а все остальные знаки равны нулям, то округляться будет по третьему параметру внутри функции по округлению числа:

Рис. 6 Функция округления числа

·        Округление на основании целой части заданного числа, данная функция может быть также рассмотрена, как округление числа в большую сторону:

Рис. 7 Функция округления числа в большую сторону в 1С

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Добрый день!

Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.65.80)

С недавнего времени в программе появилась такая проблема: при создании/редактировании Ведомости в кассу суммы выплат внутри документа показываются с округлением. В то же время в печатную форму выводятся верные суммы, с копейками. Проверяли Все функции -> Справочники -> Способы выплаты зарплаты: и на аванс, и на зарплату стоит “Без округления”. Даже расходник при оплате ведомости выписывается на неокругленную сумму. Т.е. это видимо проблема отображения документа Ведомость в кассу. 

Подскажите, если кто знает, можно ли как-то сделать все как было, чтобы отображалось правильно?

Заранее спасибо за ответы!

Здравствуйте.
В документе “Выплата” по кнопке “Еще” -> Изменить форму -> Еще -> Установить стандартные настройки.
Если не поможет, то еще раз:
В документе “Выплата” кнопка “Еще” -> Изменить форму -> выбрать в левой часть элемент “Состав” -> К выплате -> К выплате сумма -> Формат -> Точность “2”

Заполнить, проверить и подать уведомление о сумме налога

г. Челябинск23 298 баллов

Хотя вопрос задан не мной, с утра сегодня как раз “билась” над этой проблемой.
Консультанты из 1С не могли понять в чем дело. Выяснилось, что это вина нового релиза.
И мы исправляли “длиннее”…🤦‍♀️
Спасибо!

Добрый день!

Спасибо большое!!! Все получилось! По второму варианту.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

&НаКлиенте
Процедура ВыполнитьКод(Команда)
 
    /// Как округлить число в 1с 8.3, 8.2
 
    // https://ru.wikipedia.org/wiki/Округление
 
    // до первого знака после запятой
    // случай когда (N + 1) знак < 5
    Сообщить(Окр(321.123, 1)); // 321.1
 
    // до первого знака после запятой
    // случай когда (N + 1) знак >= 5
    Сообщить(Окр(321.163, 1)); // 321.2
 
    // особый случай:
    // если при округлении до N-го знака
    // (N + 1)-й знак равен 5, а все последующие
    // знаки равны нулю, то результат округления
    // будет зависеть от третьего параметра функции Окр
 
    Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как10)); // вернёт 100.3
    Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как20)); // вернёт 100.4
 
    // по умолчанию значение третьего параметра
    // равно РежимОкругления.Окр15как20 (округление в большую сторону)
 
    /// Как получить целую часть числа в 1с 8.3, 8.2
 
    Сообщить(Цел(12.654)); // 12
 
    /// Как возвести число в степень в 1с 8.3, 8.2
 
    Сообщить(Pow(10, 3)); // 10^3 = 1000
 
    /// Как вычислить остаток от деления в 1с 8.3, 8.2
 
    Сообщить(5 % 3); // 2
 
    /// Как извлечь квадратный корень из числа в 1с 8.3, 8.2
 
    Сообщить(Sqrt(25)); // 5
 
    /// Как вычислить максимальное из нескольких значений в 1с 8.3, 8.2
 
    Сообщить(Макс(1, 2, 3)); // 3
    Сообщить(Макс("aaa", "bbb", "ccc")); // ccc
    Сообщить(Макс(ТекущаяДата(), ДобавитьМесяц(ТекущаяДата(), 1)));
    Сообщить(Макс(Истина, Ложь)); // Истина
 
    /// Как вычислить минимальное из нескольких значений в 1с 8.3, 8.2
 
    Сообщить(Мин(1, 2, 3)); // 1
    Сообщить(Мин("aaa", "bbb", "ccc")); // aaa
    Сообщить(Мин(ТекущаяДата(), ДобавитьМесяц(ТекущаяДата(), 1)));
    Сообщить(Мин(Истина, Ложь)); // Ложь
 
    /// Как вычислить выражение из строки в 1с 8.3, 8.2
 
    Сообщить(Вычислить("1+2")); // 3
    Сообщить(Вычислить("ИСТИНА И ЛОЖЬ")); // Нет
    Сообщить(Вычислить("Sin(3.14)")); // ~0
    Сообщить(Вычислить("Pow(Sin(3.14), 2) + Pow(Cos(3.14), 2)")); // ~1
 
    /// Тригонометрия в 1с 8.3, 8.2
 
    // углы выражаются в радианах
 
    Пи = 3.14;
    E = 2.718; // Число Эйлера http://ru.wikipedia.org/wiki/E_(число)
 
    Сообщить(Cos(Пи / 2)); // ~0
    Сообщить(ACos(0)); // ~1,57
 
    Сообщить(Sin(Пи / 2)); // ~1
    Сообщить(ASin(1)); // ~1,57
 
    Сообщить(Sin(Пи / 2) * Sin(Пи / 2) + Cos(Пи / 2) * Cos(Пи / 2)); // ~1
 
    Сообщить(Sin(Пи / 3) / Cos(Пи / 3)); // 1.73
    Сообщить(Tan(Пи / 3)); // 1.73
    Сообщить(Tan(ATan(1.73))); // 1.73
 
    // экспонента - возведение числа эйлера в степень X
    // http://ru.wikipedia.org/wiki/Экспонента
    Сообщить(Pow(E, 2)); // 7,389
    Сообщить(Exp(2)); // 7,389
 
    // натуральный логарифм - степень в которую надо
    // возвести число эйлера e, чтобы получить X
    // http://ru.wikipedia.org/wiki/Натуральный_логарифм
    Сообщить(Log(9)); // 2,197
    Сообщить(Pow(E, 2.197)); // ~9
 
    // десятичный логарифм - степень в которую надо
    // возвести число 10, чтобы получить X
    // http://ru.wikipedia.org/wiki/Десятичный_логарифм
    Сообщить(Log10(1000)); // 3
    Сообщить(Pow(10, 3)); // 1000
 
    /// Как вывести число без пробелов в 1с 8.3, 8.2
 
    Сообщить(Формат(1000000, "ЧГ=0")); // 1000000
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Округляет исходное число до нужной разрядности

Синтаксис

Функция Окр() имеет следующий синтаксис:

Число Окр(Число, [Разрядность], [РежимОкругления])

А также альтернативный англоязычный синтаксис:

number Round(Number, [Precision], [Mode])

Параметры

Описание параметров функции Окр():

Имя параметра* Тип Описание
Число Число Исходное число
Разрядность Число Определяет число знаков дробной части, до которых будет произведено округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов. Параметр обязательный, если указан параметр РежимОкругления

Значение по умолчанию: 0

РежимОкругления Число, РежимОкругления Определяет режим округления. Помимо системного перечисления допускается использование числового параметра. Доступны следующие варианты значений:

Окр15как10 Округлять 0.5 вниз
Окр15как20 Округлять 0.5 вверх
0 Округлять 0.5 вниз
1 Округлять 0.5 вверх

Значение по умолчанию: Окр15как20

*Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Число

Описание

Функция Окр() округляет исходное число до нужной разрядности в соответствии с заданным режимом округления.

Доступность

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

Пример использования

Пример кода с использованием функции Окр():

ИсходноеЧисло = 14.5;
Сообщить(Окр(ИсходноеЧисло, 0, РежимОкругления.Окр15как10));
// 14
Сообщить(Окр(ИсходноеЧисло));
// 15
Сообщить(Окр(ИсходноеЧисло, -1));
// 10

Читайте также:

  1. Функция Цел()

Поделиться страницей в соц.сетях

Добавить комментарий