УТ 11.1 Простые примеры: Округлять автоматическую скидку до целого рубля по итогу

09.07.14

Разработка - Механизмы типовых конфигураций

Или сдача без копеек

Пролог (в блоге)

Простая задачка: после применения скидки, например, по карте лояльности, округлить итоговую сумму по документу до целого рубля в пользу клиента, что бы сдача была без копеек.


Решение:

После расчёта скидки, отыскать строку с наибольшей суммой и подправить её на число копеек в итого.

Для этого в модуле формы документа Реализация товаров и услуг, находим процедуру РассчитатьСкидкиНаценкиНаСервере и вставляем кусок кода после расчёта скидок, но перед обновлением итоговых сумм, например, перед строкой

Объект.СкидкиРассчитаны = Истина;

 

Текст, на рисунке он не помещается, можно скопировать отсюда:

текИтог = Объект.Товары.Итог("СуммаСНДС");
Простить = текИтог % 1;
Если Простить > 0 Тогда
	текСумма = 0;
	максСтрока = -1;
	Для Каждого Элемента из Объект.Товары Цикл
		Если Элемента.СуммаСНДС > текСумма Тогда
			текСумма = Элемента.СуммаСНДС;
			максСтрока = Элемента.НомерСтроки - 1;
		КонецЕсли;
	КонецЦикла;
	Если максСтрока  -1 Тогда
		Объект.Товары[максСтрока].СуммаСНДС = Объект.Товары[максСтрока].СуммаСНДС - Простить;
		Объект.Товары[максСтрока].СуммаАвтоматическойСкидки = 
			Объект.Товары[максСтрока].СуммаАвтоматическойСкидки + Простить;
		Объект.Товары[максСтрока].ПроцентАвтоматическойСкидки = 
			Окр(Объект.Товары[максСтрока].СуммаАвтоматическойСкидки / 
			(Объект.Товары[максСтрока].Количество * Объект.Товары[максСтрока].Цена) * 100, 2);
		СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Объект);
		ТекПроцентНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(Объект.Товары[максСтрока].СтавкаНДС);
		Объект.Товары[максСтрока].СуммаНДС = ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(Объект.Товары[максСтрока].Сумма, 
			ТекПроцентНДС, СтруктураПересчетаСуммы.ЦенаВключаетНДС);
		Объект.Товары[максСтрока].Сумма = Объект.Товары[максСтрока].СуммаСНДС - 
			?(СтруктураПересчетаСуммы.ЦенаВключаетНДС, 0, Объект.Товары[максСтрока].СуммаНДС);
	КонецЕсли;                                                                             
КонецЕсли;

Теперь при записи или по команде пользователя «Рассчитать скидки» будет выполняться корректировка копеек.


Вступайте в нашу телеграмм-группу Инфостарт

скидка округление без копеек

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С 8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данное расширение — это механизм, сделанный при помощи двух модулей из БСП (3.1.11.415), который позволяет динамически добавлять команды (кнопки и не только при желании) на формы управляемого приложения без изменения конфигурации. На примере данного механизма удобно рассмотреть некоторые возможности для расширения функционала объектов, которые подключены к механизму библиотеки стандартных подсистем.

1 стартмани

20.03.2026    1269    InFlach    0    

6

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    2828    AlexeyPROSTO_1C    4    

20

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

03.03.2026    1448    YA_1100893639    1    

7

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    8036    user1988284    0    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AndrewUtkaev 120 16.07.14 13:00 Сейчас в теме
Почему бы не пользоваться стандартным функционалом?
2. Yury1001 1477 16.07.14 13:58 Сейчас в теме
3. cjeymik 29 17.07.14 09:15 Сейчас в теме
Делаем скидку с типом "Округление суммы документа" в большую сторону, добавляем ее в группу совместного применения (сложение) с нашей автоматической скидкой, всё...
4. Yury1001 1477 18.07.14 15:55 Сейчас в теме
(3) cjeymik, (1) AndrewUtkaev, не получается - нужно округлять в сторону клиента!?
Прикрепленные файлы:
5. Serdgio 194 17.02.15 14:13 Сейчас в теме
Только вот это условие странное: Если максСтрока -1 Тогда
Может, здесь на неравенство проверять нужно?
6. badrvic 19 25.03.15 12:32 Сейчас в теме
Попробовал скидку с типом "Округление суммы документа"
Удивительные вообще детали работы с этими скидками. есть скидки 2, 7,13%.
2% и 13% округляются и сумма документа в результате ровная
7% не округляются никак, копейки также висят. (сама по себе скидка действует)

Плюс еще не работает округление суммы документа, когда используются ручные скидки.сумма в результате получается с копейками.
Для отправки сообщения требуется регистрация/авторизация