Имя: Пароль:
1C
1С v8
Вычисление Всего в док. реализация товаров
0 amadeus2010
 
21.08.14
15:08
Добрый день, не подскажите как можно получить итоговую сумму за вычетом скидки в документе реализация товаров. Конфигурация УТ 10.3
////////////////////////////////////////////////////////////////////
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // SIP-DIMA
    
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда
          СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма*0.03;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда
         СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.02;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда
             СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.01;
        КонецЕсли;
        
        ДанныеСтроки.Скидка= СтрокаТабличнойЧасти.Скидка;


    Если мКолонкиТовары.Всего.Видимость Тогда
        ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(ОбщегоНазначения.ФорматСумм(ДанныеСтроки.Сумма
                                            + ?(СуммаВключаетНДС, 0, ДанныеСтроки.СуммаНДС)-ДанныеСтроки.Скидка));
    КонецЕсли;

    РаботаСДиалогами.ПоказатьКоэффициентМест(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.ЕдиницаИзмеренияМест);
    РаботаСДиалогами.ПоказатьКодАртикул(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура);
    РаботаСДиалогами.ПоказатьСуммуБезСкидок(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Цена, ДанныеСтроки.Количество);

    Если ЗначениеЗаполнено(ДанныеСтроки.СерияНоменклатуры) Тогда
        Если мКолонкиТовары.НомерГТД.Видимость Тогда
            ОформлениеСтроки.Ячейки.НомерГТД.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.НомерГТД);
        КонецЕсли;
        Если мКолонкиТовары.СтранаПроисхождения.Видимость Тогда
            ОформлениеСтроки.Ячейки.СтранаПроисхождения.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.СтранаПроисхождения);
        КонецЕсли;
    КонецЕсли;
    
    //РасчетСкидки();

КонецПроцедуры // ТоварыПриВыводеСтроки()
//////////////////////////////////////////////////////////////////
в ТЧ производится расчет колонки Всего исходя из скидки, а в подвале Всего остается старая сумма.
1 Apokalipsec
 
21.08.14
15:10
Процедура ОбновлениеОтображения()
//тут расчитываешь  всего
2 amadeus2010
 
21.08.14
15:44
(1) выдает ошибку что СтрокаТЧ.Скидка не является значением объектного типа
3 amadeus2010
 
21.08.14
17:17
в этой процедуре я пытаюсь в Формат Сумм добавить вычисление Скидки, при этом в ТЧ поле всего вычисляется правильно а в подвале Всего остается по Сумме
//////////////////////////////////////////////////////////
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // SIP-DIMA
    
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда
          СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма*0.03;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда
         СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.02;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда
             СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.01;
        КонецЕсли;
        
        ДанныеСтроки.Скидка= СтрокаТабличнойЧасти.Скидка;


    Если мКолонкиТовары.Всего.Видимость Тогда
        ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(ОбщегоНазначения.ФорматСумм(ДанныеСтроки.Сумма - ДанныеСтроки.Скидка + ?(СуммаВключаетНДС, 0, ДанныеСтроки.СуммаНДС)))
    КонецЕсли;

    РаботаСДиалогами.ПоказатьКоэффициентМест(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.ЕдиницаИзмеренияМест);
    РаботаСДиалогами.ПоказатьКодАртикул(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура);
    РаботаСДиалогами.ПоказатьСуммуБезСкидок(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Цена, ДанныеСтроки.Количество);

    Если ЗначениеЗаполнено(ДанныеСтроки.СерияНоменклатуры) Тогда
        Если мКолонкиТовары.НомерГТД.Видимость Тогда
            ОформлениеСтроки.Ячейки.НомерГТД.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.НомерГТД);
        КонецЕсли;
        Если мКолонкиТовары.СтранаПроисхождения.Видимость Тогда
            ОформлениеСтроки.Ячейки.СтранаПроисхождения.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.СтранаПроисхождения);
        КонецЕсли;
    КонецЕсли;
    
    //РасчетСкидки();

КонецПроцедуры // ТоварыПриВыводеСтроки()
/////////////////////////////////////////////////////////
может что делаю не так подскажите если кто знает
4 amadeus2010
 
21.08.14
17:51
есть кто
5 amadeus2010
 
21.08.14
18:15
народ?
6 Enders
 
21.08.14
18:46
(3) А где ты меняешь подвал? что-то не наблюдаю.
7 Enders
 
21.08.14
18:48
В конце добавь что-то типо
ТвойПодвал=ТвояТЧ.Итог("Всего");
8 amadeus2010
 
22.08.14
09:40
(7) добавил такой код СуммаДокумента =Товары.Итог("Всего");
вышла ошибка
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента(2687)}: Ошибка при вызове метода контекста (Итог)
        СуммаДокумента = Товары.Итог("Всего");
по причине:
Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции)
9 Галахад
 
гуру
22.08.14
10:03
Если НДС в сумме

СуммаДокумента = Товары.Итог("Сумма");

Если НДС сверху

СуммаДокумента = Товары.Итог("Сумма") + Товары.Итог("СуммаНДС");
10 Enders
 
22.08.14
10:11
(9) Скидку забыл вычесть)

СуммаДокумента = Товары.Итог("Сумма")-Товары.Итог("Скидка") + ?(СуммаВключаетНДС, 0, Товары.Итог("СуммаНДС"));
11 amadeus2010
 
22.08.14
10:31
хочу уточнить может я не туда добавил код
////////////////////////////////////////////////////////////
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // SIP-DIMA
    
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
    Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда
          СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма*0.03;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда
         СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.02;
         ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда
             СтрокаТабличнойЧасти.Скидка = СтрокаТабличнойЧасти.Сумма* 0.01;
        КонецЕсли;
        
        ДанныеСтроки.Скидка= СтрокаТабличнойЧасти.Скидка;
    


    Если мКолонкиТовары.Всего.Видимость Тогда
        ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(ОбщегоНазначения.ФорматСумм(ДанныеСтроки.Сумма - ДанныеСтроки.Скидка + ?(СуммаВключаетНДС, 0, ДанныеСтроки.СуммаНДС)))
    КонецЕсли;
    
    СуммаДокумента = Товары.Итог("Сумма")-Товары.Итог("Скидка") + ?(СуммаВключаетНДС, 0, Товары.Итог("СуммаНДС"));
      
    РаботаСДиалогами.ПоказатьКоэффициентМест(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.ЕдиницаИзмеренияМест);
    РаботаСДиалогами.ПоказатьКодАртикул(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Номенклатура);
    РаботаСДиалогами.ПоказатьСуммуБезСкидок(мКолонкиТовары, ОформлениеСтроки.Ячейки, ДанныеСтроки.Цена, ДанныеСтроки.Количество);

    Если ЗначениеЗаполнено(ДанныеСтроки.СерияНоменклатуры) Тогда
        Если мКолонкиТовары.НомерГТД.Видимость Тогда
            ОформлениеСтроки.Ячейки.НомерГТД.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.НомерГТД);
        КонецЕсли;
        Если мКолонкиТовары.СтранаПроисхождения.Видимость Тогда
            ОформлениеСтроки.Ячейки.СтранаПроисхождения.УстановитьТекст(ДанныеСтроки.СерияНоменклатуры.СтранаПроисхождения);
        КонецЕсли;
    КонецЕсли;
    
    
КонецПроцедуры // ТоварыПриВыводеСтроки()
/////////////////////////////////////////////////////////

но в подвале документа Всего не высчитывается с учетом скидки
12 salvator
 
22.08.14
10:37
А где ты в подвал пишешь?
13 amadeus2010
 
22.08.14
10:49
пардон не туда пишу код, надо в процедуру ОбновитьПодвал()
ЭлементыФормы.ВсегоНДС.Значение = ОбщегоНазначения.ФорматСумм(Товары.Итог("СуммаНДС")+Услуги.Итог("СуммаНДС"));
    ЭлементыФормы.Всего.Значение = Товары.Итог("Сумма")-Товары.Итог("Скидка") + ?(СуммаВключаетНДС, 0, Товары.Итог("СуммаНДС"));
14 amadeus2010
 
22.08.14
10:50
теперь все получилось, спасибо
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой