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

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


Добавь сюда

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

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


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

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