Найти в Дзене

Как в 1с рассчитать 1 процент свыше 300 тысяч

В 1С существует несколько способов рассчитать 1% с суммы, превышающей 300 000, в зависимости от того, где вам нужно это сделать: в запросе, в коде, в формуле отчета или в другом месте. Рассмотрим основные варианты: 1. Расчет в запросе (Query): Этот способ подходит, если вам нужно получить результат расчета в запросе для дальнейшей обработки или вывода в отчете. ВЫБРАТЬ
СУММА(ЕСТЬNULL(ВЫБОР
КОГДА [ВашаТаблица].[Сумма] > 300000
ТОГДА ([ВашаТаблица].[Сумма] - 300000) * 0.01
ИНАЧЕ 0
КОНЕЦ, 0)) КАК ПроцентСвыше300Тысяч
ИЗ
[ВашаТаблица] Пример использования в коде 1С: Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ЕСТЬNULL(ВЫБОР
| КОГДА МояТаблица.Сумма > &Порог
| ТОГДА (МояТаблица.Сумма - &Порог) * 0.01
| ИНАЧЕ 0
| КОНЕЦ, 0)) КАК ПроцентСвыше300Тысяч
|ИЗ
| МояТаблица КАК МояТаблица";
Запрос.УстановитьПараметр("Порог", 300000);
Результат = Запрос.Выполнить();

В 1С существует несколько способов рассчитать 1% с суммы, превышающей 300 000, в зависимости от того, где вам нужно это сделать: в запросе, в коде, в формуле отчета или в другом месте. Рассмотрим основные варианты:

1. Расчет в запросе (Query):

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

ВЫБРАТЬ
СУММА(ЕСТЬNULL(ВЫБОР
КОГДА [ВашаТаблица].[Сумма] > 300000
ТОГДА ([ВашаТаблица].[Сумма] - 300000) * 0.01
ИНАЧЕ 0
КОНЕЦ, 0)) КАК ПроцентСвыше300Тысяч
ИЗ
[ВашаТаблица]

  • [ВашаТаблица]: Замените на имя таблицы, содержащей поле с суммой.
  • [Сумма]: Замените на имя поля, содержащего сумму.
  • ЕСТЬNULL(..., 0): Предотвращает ошибки, если таблица пуста или нет записей, удовлетворяющих условию.
  • ВЫБОР ... КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ: Условный оператор. Если сумма больше 300 000, то вычисляется 1% от превышения, иначе возвращается 0.
  • СУММА(...): Суммирует результаты вычислений для всех записей в таблице.

Пример использования в коде 1С:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ЕСТЬNULL(ВЫБОР
| КОГДА МояТаблица.Сумма > &Порог
| ТОГДА (МояТаблица.Сумма - &Порог) * 0.01
| ИНАЧЕ 0
| КОНЕЦ, 0)) КАК ПроцентСвыше300Тысяч
|ИЗ
| МояТаблица КАК МояТаблица";

Запрос.УстановитьПараметр("Порог", 300000);

Результат = Запрос.Выполнить();

Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Процент = Выборка.ПроцентСвыше300Тысяч;
Сообщить("Процент свыше 300 тысяч: " + Процент);
КонецЕсли;
КонецЕсли;

2. Расчет в коде 1С (Code):

Этот способ подходит, если вам нужно выполнить расчет в процедуре или функции 1С.

Функция РассчитатьПроцентСвыше300Тысяч(Сумма) Экспорт

Порог = 300000;
Если Сумма > Порог Тогда
Процент = (Сумма - Порог) * 0.01;
Иначе
Процент = 0;
КонецЕсли;

Возврат Процент;

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

  • Функция РассчитатьПроцентСвыше300Тысяч(Сумма) Экспорт: Определяет функцию, которая принимает сумму в качестве параметра и возвращает процент свыше 300 тысяч. Ключевое слово Экспорт делает функцию доступной для вызова из других модулей.
  • Порог = 300000;: Задает пороговое значение (300 000).
  • Если Сумма > Порог Тогда … Иначе … КонецЕсли;: Условная конструкция. Если переданная сумма больше порогового значения, то вычисляется 1% от разницы между суммой и порогом. Если сумма меньше или равна пороговому значению, то возвращается 0.
  • Процент = (Сумма - Порог) * 0.01;: Вычисление 1% от суммы, превышающей пороговое значение.
  • Возврат Процент;: Функция возвращает вычисленный процент.

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

Сумма = 500000;
Процент = РассчитатьПроцентСвыше300Тысяч(Сумма);
Сообщить("Процент свыше 300 тысяч: " + Процент); // Выведет: Процент свыше 300 тысяч: 2000

3. Расчет в формуле отчета (Report Formula):

Этот способ подходит, если вам нужно отобразить результат расчета в отчете, построенном на системе компоновки данных (СКД).

  • В запросе набора данных получите поле с суммой (например, “Сумма”).
  • На закладке “Вычисляемые поля” добавьте новое вычисляемое поле (например, “ПроцентСвыше300Тысяч”).
  • В поле “Выражение” укажите формулу:

ВЫБОР
КОГДА &Сумма > 300000
ТОГДА (&Сумма - 300000) * 0.01
ИНАЧЕ 0
КОНЕЦ

  • Укажите тип значения поля “Число” и формат.
  • В макете отчета добавьте вычисляемое поле “ПроцентСвыше300Тысяч” в нужную область.

4. Использование выражения в условном оформлении отчета (Conditional Appearance):

  • Этот способ не вычисляет значение как таковое, а позволяет применить визуальное оформление к тем строкам, где выполняется условие. Например, можно выделить строки, где сумма превышает 300 000 и, соответственно, должен быть начислен процент. В этом случае процент начисляется в другом месте, а условное оформление просто показывает, к чему он должен быть применен.

Какой способ выбрать:

  • Запрос: Если вам нужно получить результат расчета для дальнейшей обработки в другом запросе или для группировки данных.
  • Код: Если вам нужно выполнить расчет в процедуре или функции, например, при обработке документа или выполнении какой-то операции.
  • Формула отчета: Если вам нужно отобразить результат расчета в отчете, построенном на системе компоновки данных.

Важно:

  • Замените 300000 на нужное вам пороговое значение.
  • Убедитесь, что тип данных поля “Сумма” – числовой.
  • Учитывайте особенности вашей конфигурации 1С и используйте подходящие элементы и синтаксис.

Выберите способ, который лучше всего соответствует вашей задаче и уровню ваших знаний.