|   |   | 
| 
 | УПП. Скидки и сумма на основании заказа | ☑ | ||
|---|---|---|---|---|
| 0
    
        MAPATNK2 naïve 11.11.20✎ 16:00 | 
        Всем доброго дня. Есть заказ в котором нельзя редактировать цены. Корректирую сумму, получаю ручную скидку, далее Делаю Реализацию на основании заказа покупателя. И вот счастье, совсем другая сумма. Я понимаю, это все из за округлений, но это ж бред. Все менеджеры теперь должны постоянно перепроверять совпадают ли суммы реализации с заказом.
 Есть ли какой метод решения. Хотел залезть, убрать пересчет сумм, вместо него вставить сумму из заказа, но запутался, так наворочено все. ППц просто. | |||
| 1
    
        MAPATNK2 naïve 12.11.20✎ 10:31 | 
        UP     | |||
| 2
    
        MAPATNK2 naïve 12.11.20✎ 10:33 | 
        Убрал пересчет сумм, поставил заполнение на основании заказа. Вот только проблема появилась. Если делать заказ с 2 одинаковыми позициями и, например, разными ценами или размещением, то в сумму реализации попадет сумма не 1 позиции, а двух. Видимо идет свертка тупо по номенклатур с суммой цен. ППц.     | |||
| 3
    
        MAPATNK2 naïve 12.11.20✎ 10:35 | 
        Как я понял, если хочешь, чтобы все было красиво, нужно стандартный запрос переделывать. Не силен я в запросах конечно, беда. 
 Может какие то стандартные решения есть, методы? Механизм типовой, значит проблема с ручными скидками и пересчетом сумм есть у всех. Кто как решал? | |||
| 4
    
        Черников 12.11.20✎ 14:29 | 
        Лучше не трогай!   Кто только не пытался это переделать, но сделать лучше не удалось! По мне так, проблема с округлениями не разрешима.     | |||
| 5
    
        MAPATNK2 naïve 12.11.20✎ 14:39 | 
        (4) XD. Да, вот сижу и думаю о том же.     | |||
| 6
    
        Михаил Козлов 13.11.20✎ 10:10 | 
        В КА 2.4 коллега пилил.     | |||
| 7
    
        MAPATNK2 naïve 14.11.20✎ 22:31 | 
        (6) и как?     | |||
| 8
    
        Михаил Козлов 14.11.20✎ 22:42 | 
        Завтра спрошу.     | |||
| 9
    
        MAPATNK2 naïve 14.11.20✎ 22:48 | 
        (8) спасибо     | |||
| 10
    
        Михаил Козлов 15.11.20✎ 12:30 | 
        Вот нашел в расширении, вызывается в событии формы ПередЗаписьюПосле.
 Процедура НайтиИИсправитьРасхожденияСумм() КэшированныеЗначения =неопределено; Запрос =Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | ЗаказКлиентаТовары.Номенклатура КАК Номенклатура, | ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС, | ЗаказКлиентаТовары.Количество КАК Количество |ПОМЕСТИТЬ ЗК |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары |ГДЕ | ЗаказКлиентаТовары.Ссылка = &Заказ | И ЗаказКлиентаТовары.Отменено = ЛОЖЬ | И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Отгрузить) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РН.Номенклатура КАК Номенклатура, | РН.СуммаСНДС КАК СуммаСНДС, | РН.Количество КАК Количество |ПОМЕСТИТЬ РН |ИЗ | &РН КАК РН |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗК.Номенклатура КАК Номенклатура, | ЗК.Количество КАК КоличествоЗаказа, | ЗК.СуммаСНДС КАК СуммаЗаказа, | ЕСТЬNULL(РН.Количество, 0) КАК КоличествоРеализации, | ЕСТЬNULL(РН.СуммаСНДС, 0) КАК СуммаРеализации, | ЕСТЬNULL(РН.СуммаСНДС, 0) -ЗК.СуммаСНДС КАК Разница |ИЗ | ЗК КАК ЗК | ЛЕВОЕ СОЕДИНЕНИЕ РН КАК РН | ПО ЗК.Номенклатура = РН.Номенклатура И ЗК.Количество = РН.Количество"; Запрос.УстановитьПараметр("Заказ", Объект.ЗаказКлиента); Запрос.УстановитьПараметр("РН", Объект.Товары.Выгрузить()); ТЗ =Запрос.Выполнить().Выгрузить(); Для каждого стр из ТЗ Цикл Если стр.Разница<>0 Тогда СП =Новый Структура; СП.Вставить("Номенклатура", стр.Номенклатура); СП.Вставить("Количество", стр.КоличествоЗаказа); мс =Объект.Товары.НайтиСтроки(СП); Для каждого эл из мс Цикл эл.СуммаРучнойСкидки = эл.СуммаРучнойСкидки+стр.Разница; СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьПроцентРучнойСкидки"); СтруктураДействий.Вставить("ПересчитатьСумму"); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать, ПересчитыватьСуммуРучнойСкидки", Ложь, Ложь)); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Ложь)); СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов"); СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты()); СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару", Объект.РеализацияПоЗаказам, Объект.ТребуетсяЗалогЗаТару)); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(эл, СтруктураДействий, КэшированныеЗначения); ПродажиКлиентСервер.РассчитатьИтоговыеПоказателиРеализации(ЭтаФорма); КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры Не знаю, подойдет ли. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |