Имя: Пароль:
1C
1С v8
ERP 2.5: Сумма товарных позиций больше суммы оплат
0 DosBot
 
13.12.21
12:39
Платформа 8.3.20.1613
ERP 2.5.7.226

Способ воспроизведения
1. Делаем акт выполненных работ:
- услуга №1 - 5 руб.
- услуга №2 - 5 руб.
2. Делаем Приходный кассовый ордер (дата больше чем по акту, например на 1 день) - 15 руб.

В итоге на экране предпросмотра видим

----------------------------------

Услуга № 1
                 1.000 х 5.00=5.00
БЕЗ НДС                          
ПЛАТЕЖ                            
ОПЛАТА КРЕДИТА                    

ЕД.ИЗМЕРЕНИЯ:Платеж              

Услуга № 2
                 1.000 х 5.00=5.00
БЕЗ НДС                          
ПЛАТЕЖ                            
ОПЛАТА КРЕДИТА                    

ЕД.ИЗМЕРЕНИЯ:Платеж              

Оплата от: ИП Иванов Иван Иванович
               1.000 х 15.00=15.00
БЕЗ НДС                          
ПЛАТЕЖ                            
АВАНС                            

ЕД.ИЗМЕРЕНИЯ:Платеж              

----------------------------------
ИТОГ                        =25.00
----------------------------------
ОПЛАТА
НАЛИЧНЫМИ                  =15.00
СНО:              УСН доход-расход
СУММА БЕЗ НДС              =25.00
КАССИР: Cashman            

В части формирования чеков никаких доработок не делалось.

Могу пофантазировать: есть подозрение, что строка 3 (сама оплата) должна как бы уменьшаться на сумму того, что она оплачивает - поглядел как там это всё разносится - лезть совершенно не хочется. Кто сталкивался и как решали? Какая логика вообще должна быть в этой ситуации?
1 Ненавижу 1С
 
гуру
13.12.21
12:42
В окне предпросмотра как суммы распределены на кредит и предоплату?
2 DosBot
 
13.12.21
12:54
(1) вот буквально как я написал в (0). Больше никакой инфы в предпросмотре нет.

Мне не понятна общая логика: как должна выглядеть строка 3 (сама оплата)? Она должна быть 5 или 15 руб.?
3 Доминошник
 
13.12.21
13:06
(0) А какой способ расчета выбран? "Авто", или что-то (что?) другое?
4 DosBot
 
13.12.21
13:16
(3) Авто
5 Ненавижу 1С
 
гуру
13.12.21
13:22
(2) слева окошки с суммами
6 DosBot
 
14.12.21
16:07
(5) нету там такого
7 DosBot
 
14.12.21
16:12
в общем, сделал я временное расширение на скорую руку. А то чеков накопилось уже за 2 месяца...

&После("ПривестиДанныеКТребуемомуФорматуПозицийЧекаПоДокументамОплатыАванс")
Процедура упрПривестиДанныеКТребуемомуФорматуПозицийЧекаПоДокументамОплатыАванс(Знач ПараметрыФискальногоЧека, ПозицииЧека, СуммыАвансовПоСтавкамНДС)
    
    Оплаты = Новый Массив;  
    Получатели = Новый Массив;
    
    ВсегоШагов = ПозицииЧека.Количество()-1;
    Для ТекШаг = 0 По ВсегоШагов Цикл
    
        ТекПозиция = ПозицииЧека[ТекШаг];
        
        Если ТекПозиция.ПризнакПредметаРасчета <> Перечисления.ПризнакиПредметаРасчета.ПлатежВыплата Тогда
            Продолжить;
        КонецЕсли;  
        
        Если ТекПозиция.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.ОплатаКредита Тогда
            Получатели.Добавить(ТекПозиция);    
        ИначеЕсли  ТекПозиция.ПризнакСпособаРасчета = Перечисления.ПризнакиСпособаРасчета.Аванс Тогда    
            Оплаты.Добавить(ТекПозиция);    
        КонецЕсли;
        
    КонецЦикла;
  
    Если Оплаты.Количество() = 0 или Получатели.Количество() = 0 Тогда
        Возврат;    
    КонецЕсли;

    Для каждого ТекПолучатель Из Получатели Цикл
        
        НетОплат = Истина;
        Для каждого ТекОплата Из Оплаты Цикл
            
            Если ТекОплата.Сумма = 0 Тогда
                Продолжить;                    
            КонецЕсли;
            
            НетОплат = Ложь;
            Сумма = Мин(ТекПолучатель.Сумма, ТекОплата.Сумма);
            ТекОплата.Сумма = ТекОплата.Сумма - Сумма;
            ТекОплата.Цена  = ТекОплата.Сумма / ТекОплата.Количество;
            ТекОплата.ЦенаСоСкидками  = ТекОплата.Сумма / ТекОплата.Количество;
            
            Если ТекОплата.СуммаНДС <> Неопределено и ТекПолучатель.СуммаНДС <> Неопределено Тогда
                СуммаНДС = Мин(ТекПолучатель.СуммаНДС, ТекОплата.СуммаНДС);
                ТекОплата.СуммаНДС = ТекОплата.СуммаНДС - СуммаНДС;
            КонецЕсли;
            
        КонецЦикла;
        
        Если НетОплат Тогда
            Прервать;
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры