Имя: Пароль:
1C
1С v8
Посчитать разницу между двумя реквизитами с типом Дата время (УправляемыеФормы)
0 asn-sasha
 
24.10.18
10:21
Здравствуйте уважаемые эксперты, прошу вашей помощи!

На форме документа есть следующие реквизиты:
1. НомерЗаказа - строковый тип
2. ЗаказВыдан - булево
3. ВремяСтарт - Дата время
4. ВремяФиниша - Дата время
5. ВремяЗатрачено - Дата время

Создал форму в которой - будет производиться заполнение времени при изменение/заполнение НомерЗаказа (будет заполняться время ВремяСтарт - работает чётко), ВремяФиниша тоже чётко заполняется когда на (булево чекбокс) жмёт ЗаказВыдан.
Но вот почему то немогу понять как посчитать ВремяЗатрачено, это разница между ВремяФиниша и ВремяСтарта.

// Старт
&НаКлиенте
Процедура НомерЗаказаПриИзменении(Элемент)
    Сообщить("Номер заказа заполнен!");
    РасчётСтарта();
КонецПроцедуры
&НаСервере
Процедура РасчётСтарта()
Объект.ВремяСтарта = ТекущаяДата();
КонецПроцедуры

// Финиш
&НаКлиенте
Процедура ЗаказВыданПриИзменении(Элемент)
    РасчётФиниша();
КонецПроцедуры
&НаСервере
Процедура РасчётФиниша()
Объект.ВремяФиниша = ТекущаяДата();
Финиш = Объект.ВремяФиниша; // вот тут обьявил переменную Финиш

//ВЫПОЛНЯЕТСЯ РАСЧЁТ ЗАТРАЧЕНОГО ВРЕМЕНИ ПРИ ЗАПОЛНЕНИЕ ВРЕМЕНИ ФИНИША
//Затрачено
Старт = Объект.ВремяСтарта; // вот тут обьявил переменную Старт
Объект.ВремяЗатрачено = Объект.ВремяФиниша - Объект.ВремяСтарта  ;
Затрачено = Объект.ВремяЗатрачено; // вот тут обьявил переменную Затрачено
Затрачено = Финиш - Старт;  // вот тут ПОЧЕМУ ТО НЕ СЧИТАЕТ И НЕ ЗАПОЛНЯЕТ ВРЕМЯЗАТРАЧЕНО
КонецПроцедуры
1 asn-sasha
 
24.10.18
10:22
не заполняет мой реквизит Затрачено, господи помоги!
2 Cyberhawk
 
24.10.18
10:23
Я тут. Давай в трех словах.
3 asn-sasha
 
24.10.18
10:27
не могу отнять реквизиты Дата время от Дата время что бы получить разницу между ними в минутах и секундах
4 asn-sasha
 
24.10.18
10:28
реквизиты с типо Дата время
5 asn-sasha
 
24.10.18
10:28
Объект.ВремяЗатрачено = Объект.ВремяФиниша - Объект.ВремяСтарта  ;
6 Cool_Profi
 
24.10.18
10:28
Отладчик молчит, как роза в проруби?
7 asn-sasha
 
24.10.18
10:29
Затрачено (реквизит с типо Дата время то есть в минутах и секундах у меня), так же и Финиш и Старт (тоже реквизиты с типом Дата время)
8 asn-sasha
 
24.10.18
10:32
непонятно с отладчиком этот момент - реквизит Затрачено даже не реагирует на то что я ПриИзменение Финиша его должен заполнить, а он не реагирует
9 ZDenis
 
24.10.18
10:34
Разница дат - это количество секунд. А "ВремяЗатрачено" - у тебя какой тип имеет?
10 ZDenis
 
24.10.18
10:37
Аа, в топе написал. Ну так и как он тебе секунды в дату переведет сам?
11 asn-sasha
 
24.10.18
10:40
1. НомерЗаказа - строковый тип
2. ЗаказВыдан - булево
3. ВремяСтарт - Дата время
4. ВремяФиниша - Дата время
5. ВремяЗатрачено - Дата время
12 asn-sasha
 
24.10.18
10:41
они все почти имееют такой тип - Дата, Состав даты - Время
13 asn-sasha
 
24.10.18
10:41
а как надо подскажите прошу вас!
14 azernot
 
24.10.18
10:48
15 ZDenis
 
24.10.18
10:49
(13) Еще раз. Разница дат - это число в секундах. Как можно секунды перевести в дату? Какой результат ты хочешь увидеть?:
1) 1 января 0001 года?
2) 1 день, 2 часа, 20 секунд?
16 lodger
 
24.10.18
10:55
&НаСервере
Процедура РасчётФиниша()
Объект.ВремяФиниша = ТекущаяДата();
Объект.ВремяЗатрачено = Дата(1,1,1)+(Объект.ВремяФиниша - Объект.ВремяСтарта);  
КонецПроцедуры
17 asn-sasha
 
24.10.18
10:56
Вот у меня в итоге так: (это старт)12:22:40 - 12:23:57 (финиш) = 1 минута 17 секунд  (затрачено в минутах и секундах). Так можно сделать ? Разность узнать Дат время?
18 asn-sasha
 
24.10.18
11:00
СПАСИБО! Дай бог тебе здоровья и денег побольше lodger и всем кто помогал!
Объект.ВремяЗатрачено = Дата(1,1,1)+(Объект.ВремяФиниша - Объект.ВремяСтарта);
Подскажите пожалуйста внутри Даты параметры с тремя единицами это что значит? часы минуты секунды?
19 catena
 
24.10.18
11:23
Синтаксис:

Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой