Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как в колонке макета скд вычесть строки . из предыдущей следующую?

Как в колонке макета скд вычесть строки . из предыдущей следующую?
Я
   1cprog77
 
09.02.20 - 20:26
Как в колонке макета скд вычесть строки . из предыдущей следующую?
   Skipper
 
1 - 09.02.20 - 20:28
Вычислить() в ресурсах пишешь
   1cprog77
 
2 - 09.02.20 - 20:30
(1)сейчас проверим
   1cprog77
 
3 - 09.02.20 - 20:33
acht опять маниак вылез
   Skipper
 
4 - 09.02.20 - 20:35
(ВычислитьВыражение("Среднее(Цена)", , , "Предыдущая", "Предыдущая")
   Skipper
 
5 - 09.02.20 - 20:37
(0) http://catalog.mista.ru/public/1101676/ вот тут хорошо описано
   1cprog77
 
6 - 09.02.20 - 20:38
(5) вот оно как
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ДокументРезультат.Вывести(ОбластьШапкаТаблицы);     
    
    ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы");
    //Вывод СТРОК

    ИтогоСуммаПлатежа = 0;
    ИтогоСуммаОплаты = 0;
    ДолгНакопление = 0;
    Для Каждого стр из тзДанные Цикл
        Если стр.ДатаПлатежа > ПараметрыОтчета.ДатаОтчета Тогда
            Продолжить;
        КонецЕсли;     
        ОбластьСтрока.Параметры.Заполнить(стр);    
        ОбластьСтрока.Параметры.ДатаПлатежа = Формат(стр.ДатаПлатежа,"ДЛФ=Д");
        ДолгНакопление = ДолгНакопление - стр.СуммаПлатежа + стр.СуммаОплаты;
        ОбластьСтрока.Параметры.СуммаДолга = ДолгНакопление;
        ДокументРезультат.Вывести(ОбластьСтрока);
        ИтогоСуммаПлатежа = ИтогоСуммаПлатежа + стр.СуммаПлатежа;
        ИтогоСуммаОплаты = ИтогоСуммаОплаты + стр.СуммаОплаты;
    КонецЦикла;    
    
    
    ОбластьИтогТаблицы = Макет.ПолучитьОбласть("ИтогТаблицы");
    ОбластьИтогТаблицы.Параметры.СуммаПлатежа = ИтогоСуммаПлатежа;
    ОбластьИтогТаблицы.Параметры.СуммаОплаты = ИтогоСуммаОплаты;
    ОбластьИтогТаблицы.Параметры.СуммаДолга = ДолгНакопление;
    ДокументРезультат.Вывести(ОбластьИтогТаблицы);
    
    ОстатокСальдо = ИтогоСуммаОплаты-ИтогоСуммаПлатежа;
    ОбластьСальдо = Макет.ПолучитьОбласть("Сальдо");
    Если ОстатокСальдо < 0 Тогда
        ОбластьСальдо = Макет.ПолучитьОбласть("СальдоМинус");
    КонецЕсли;    
    ОбластьСальдо.Параметры.Сальдо = ОстатокСальдо;
    ДокументРезультат.Вывести(ОбластьСальдо);
   Skipper
 
7 - 09.02.20 - 20:45
(6) Что так? Где у тебя тут СКД?
   Skipper
 
8 - 09.02.20 - 20:48
Это какая то невминяемая печатная форма, и СКД тут даже и не пахнет.


Добавь сюда 

ПредыдущееЗначение = 0;
  Для Каждого стр из тзДанные Цикл
        Если стр.ДатаПлатежа > ПараметрыОтчета.ДатаОтчета Тогда
            Продолжить;
        КонецЕсли;     
        

Если ПредыдущееЗначение <> 0 Тогда 
Что то там с переменной............ 
КОнецЕсли;


        ПредыдущееЗначение = стр.Значение;
    

    КонецЦикла;
   Skipper
 
9 - 09.02.20 - 20:49
но если ты спутал СКД и запрос, то бросай, не твое это одинесить
   1cprog77
 
10 - 09.02.20 - 20:52
(9) Процедура ВывестиВОтчетДанные(ПараметрыОтчета, ДокументРезультат, Макет)
    
    тзОС = Новый ТаблицаЗначений;
    тзОС.Колонки.Добавить("ОсновноеСредство");
    тзОС.Колонки.Добавить("Выбыло");
    
    ГрафикДоговораЛизинг = ПолучитьПоследнийГрафикЛизинг(ПараметрыОтчета);
    
    Если ГрафикДоговораЛизинг = Неопределено Тогда
        Возврат;
    КонецЕсли;    
    
    тзДанные = ГрафикДоговораЛизинг.ОсновныеДанные.Выгрузить(,"ДатаПлатежа,СуммаПлатежа");
    тзДанные.Колонки.Добавить("СуммаОплаты", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));
    
    Если тзДанные.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;    
    
    ОСВыборка = ПолучитьОсновныеСредства(ПараметрыОтчета);
    Пока ОСВыборка.Следующий() Цикл
        стрОС = тзОС.Добавить();
        стрОС.ОсновноеСредство = ОСВыборка.ОсновноеСредство;
        стрОС.Выбыло = ОСВыборка.ОСВыбыло;
    КонецЦикла;    
    
    ОплатаПрошлыхПериодов = ПолучитьДанныеОплатаПрошлыхПериодов(ПараметрыОтчета,тзОС);
    
    
    Для каждого текстрока из тзДанные Цикл
        Если ОплатаПрошлыхПериодов <= 0 Тогда
            Прервать;
        КонецЕсли;    
        ТекСумма = Мин(ОплатаПрошлыхПериодов,текстрока.СуммаПлатежа); 
        текстрока.СуммаОплаты = ТекСумма;
        ОплатаПрошлыхПериодов = ОплатаПрошлыхПериодов - ТекСумма;
    КонецЦикла;    
    ОплатыВыборка = ПолучитьВсеОплаты(ПараметрыОтчета,тзОС);
    Пока ОплатыВыборка.Следующий() Цикл
        стрОплата = тзДанные.Добавить();
        стрОплата.ДатаПлатежа = ОплатыВыборка.Дата;
        стрОплата.СуммаОплаты = ОплатыВыборка.Сумма;
    КонецЦикла;
    
    ОплатыВозвраты = ПолучитьВсеВозвраты(ПараметрыОтчета, тзОС);
    Пока ОплатыВозвраты.Следующий() Цикл
        стрВозвраты = тзДанные.Добавить();
        стрВозвраты.ДатаПлатежа = ОплатыВозвраты.Дата;
        стрВозвраты.СуммаОплаты = -ОплатыВозвраты.Сумма;
    КонецЦикла;
    
    тзДанные.Свернуть("ДатаПлатежа","СуммаПлатежа,СуммаОплаты");
    тзДанные.Сортировать("ДатаПлатежа");
                   
    //Вывод ШАПКИ

    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ДокументРезультат.Вывести(ОбластьШапкаТаблицы);     
    
    ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы");
    //Вывод СТРОК

    ИтогоСуммаПлатежа = 0;
    ИтогоСуммаОплаты = 0;
    ДолгНакопление = 0;
    Для Каждого стр из тзДанные Цикл
        Если стр.ДатаПлатежа > ПараметрыОтчета.ДатаОтчета Тогда
            Продолжить;
        КонецЕсли;     
        ОбластьСтрока.Параметры.Заполнить(стр);    
        ОбластьСтрока.Параметры.ДатаПлатежа = Формат(стр.ДатаПлатежа,"ДЛФ=Д");
        ДолгНакопление = ДолгНакопление - стр.СуммаПлатежа + стр.СуммаОплаты;
        ОбластьСтрока.Параметры.СуммаДолга = ДолгНакопление;
        ДокументРезультат.Вывести(ОбластьСтрока);
        ИтогоСуммаПлатежа = ИтогоСуммаПлатежа + стр.СуммаПлатежа;
        ИтогоСуммаОплаты = ИтогоСуммаОплаты + стр.СуммаОплаты;
    КонецЦикла;    
    
    
    ОбластьИтогТаблицы = Макет.ПолучитьОбласть("ИтогТаблицы");
    ОбластьИтогТаблицы.Параметры.СуммаПлатежа = ИтогоСуммаПлатежа;
    ОбластьИтогТаблицы.Параметры.СуммаОплаты = ИтогоСуммаОплаты;
    ОбластьИтогТаблицы.Параметры.СуммаДолга = ДолгНакопление;
    ДокументРезультат.Вывести(ОбластьИтогТаблицы);
    
    ОстатокСальдо = ИтогоСуммаОплаты-ИтогоСуммаПлатежа;
    ОбластьСальдо = Макет.ПолучитьОбласть("Сальдо");
    Если ОстатокСальдо < 0 Тогда
        ОбластьСальдо = Макет.ПолучитьОбласть("СальдоМинус");
    КонецЕсли;    
    ОбластьСальдо.Параметры.Сальдо = ОстатокСальдо;
    ДокументРезультат.Вывести(ОбластьСальдо);
        
КонецПроцедуры
   1cprog77
 
11 - 09.02.20 - 20:53
acht брызь отсюда
   1cprog77
 
12 - 09.02.20 - 20:57
(9) а добавь сюда .что добавить ?
   1cprog77
 
13 - 09.02.20 - 21:07
(9) ничего я не спутал

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.