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

09.07.14

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

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

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

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


Решение:

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

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

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

 

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

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

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


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

См. также

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

В этой статье расскажу, как можно добавлять свои отборы в типовую обработку формирования заказов по потребностям с минимальными доработками.

27.02.2025    446    PROSTO-1C    0    

4

Механизмы типовых конфигураций HighLoad оптимизация Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Пример популярной пользовательской настройки плана счетов. К чему это может привести, почему «всё тормозит» и как это поправить.

18.02.2025    2910    pbelousov    10    

6

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

Расчет себестоимости в типовых конфигурациях 1С – для многих «черный ящик», работающий по жестко зашитым в него алгоритмам. Реализация этого «черного ящика» может меняться в зависимости от конкретной конфигурации – УПП, БП 3.0, ERP. Но принцип работы везде одинаковый. Расскажем о том, как устроен расчет себестоимости, как его дорабатывать, и какие методы могут быть эффективны и без доработок.

27.12.2024    12632    Begemoth80    32    

87

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

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    2754    PROSTO-1C    0    

22

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

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    2885    Vidz    0    

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

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