Имя: Пароль:
1C
1С v8
Как получить разницу между концом первой и началом последней ?
0 Босечка
 
29.01.14
13:57
В документе в табличной части есть ДатаНачала и ДатаКонца. Необходимо вычислить разницу в датах между концом первой строки и началом второй, концом второй и началом третьей и т.д.
Документы я загнала в таблицу значений.    
    
    тз = Новый ТаблицаЗначений;
    тз = Запрос.Выполнить().Выгрузить();
    тз.ВыбратьСтроку();
Для Каждого ТекущаяСтрока Из ТЗ Цикл
        ТехЗадание=ТекущаяСтрока.Документ;
Для Каждого ТекущаяСтрока1 Из ТекущаяСтрока.Работы Цикл
....................................
Конеццикла;

Конеццикла;
1 Любопытная
 
29.01.14
14:01
Ходить по строкам с использованием индекса строки
2 Рэйв
 
29.01.14
14:02
Сч=-1;
Для Каждого Стр  Из ТекущаяСтрока.Работы Цикл
   Сч=Сч+1;
   Если Стр>=0 Тогда
      Разница=""(Стр.ДатаНач-ТекущаяСтрока.Работы[Сч-1].ДатаКон)/86400 +" дней"
      Сообщить("Разница"+Разница)
   КонецЕсли;

Конеццикла;л
3 Enders
 
29.01.14
14:02
Ну и, где вопрос?
В конце второго цикла запоминаете предыдущее значение строки(или конца периода) и сравниваете с текущим.
Ну и и к (1)+
4 AlexTim03
 
29.01.14
14:02
А можно запросом, соединениние по номеру строки:
леваячасть.номерстроки +1 = праваячасть.номерстроки
5 Рэйв
 
29.01.14
14:02
Разница=""+...
6 Ненавижу 1С
 
гуру
29.01.14
14:02
это надо было еще в запросе сделать
7 Босечка
 
29.01.14
14:09
(6) Понятно, а как?
8 Тьма
 
29.01.14
14:21
9 Босечка
 
29.01.14
15:37
(2) На СТр>=0 ругается, что Операции сравнения допустимы только для значений совпадающих примитивных типов(Булево, Число, строка, дата)
10 catena
 
29.01.14
15:58
(9)Копипастим и не пытаемся понять? Опечатлся человек, должно быть Сч>0
2 + 2 = 3.9999999999999999999999999999999...