"Здравствуйте, Юрий. Обновился до релиза 250.
Но старая проблема при работе со скидками осталась:"
вот столько измений (в том числе и для Вас) в новом релизе...но , ни одного комментария или спасибо!
но как приятно на выходных получить "
Но старая проблема осталась"
Это не проблема MAGAZKA , это по новому закону ФЗ-54 онлайн кассы
теперь в них предается СУММА,СКИДКА и КОЛИЧЕСТВО (а цену касса считает сама)
Огромное количество касс (
вы свою не указали)
Большое количество прошивок касс (
вы свою не указали)
Много различных драйверов (
вы свой не указали)
Много различных обработок подключения ККТ (
вы свою не указали)
Вам нужно и округление (без копеек) и корректное отображение в чеке (ОФД)
Ваш пример :
18*15 = 270 скидка 33,33 = 180,009
но в ККТ передается
сумма 180
количество 18
скидка 33,33 %
при вычислении цена будет 10,0005 (но у кассы два знака после запятой) *18 и ей "не хватает" ,009 руб
В типовых конфигурация 1С - идет рекомендация
если сумму вычисления дробных значений со скидками нельзя привести "к нормальному виду"
Для Каждого Позиция Из ОписаниеЧека Цикл
ЗначениеСкидки = Позиция.Количество * Позиция.Цена * Позиция.Скидка * 0.01;
СуммаСоСкидкой1С = Окр(Позиция.Количество * Позиция.Цена - ЗначениеСкидки, 2);
СуммаСоСкидкойФР = Окр(Позиция.Количество * Позиция.Цена - Окр(ЗначениеСкидки, 2), 2);
Если СуммаСоСкидкой1С = СуммаСоСкидкойФР Тогда
Результат = Обработка.ПечататьСтроку(Объект,
Позиция.Наименование,
Позиция.Количество,
Позиция.Цена,
Позиция.Скидка,
Позиция.НомерСекции,
Позиция.СтавкаНДС);
Иначе
Результат = Обработка.ПечататьСтроку(Объект,
Позиция.Наименование,
//то печатаем не 18*15 -33,33 , а количество 1 и общую сумма товара т.е. 1 *180 = 180
1,
СуммаСоСкидкой1С,
0,
Позиция.НомерСекции,
Позиция.СтавкаНДС);
КонецЕсли;
Если ЗначениеЗаполнено(Результат) Тогда
Прервать;
КонецЕсли;
КонецЦикла;