|
Как подсчитать в отчете сумму времени? | ☑ | ||
---|---|---|---|---|
0
Nores
09.08.12
✎
07:24
|
Привет всем сонва)Есть задача по который я перерыл весь интернет и подобные темы здесь на форуме но конечного результата нигде не увидел
Есть время работы Транспортного средства например на контрагента СГК оно отработало за день 2:30 и 1:30..Как в отчете(через запрос) подсчитать сумму и вывести в том же формате, должно получиться 4:00? |
|||
1
shuhard
09.08.12
✎
07:25
|
(0)[ я перерыл весь интернет и подобные темы здесь на форуме но конечного результата нигде не увидел ]
брехня |
|||
2
Wobland
09.08.12
✎
07:25
|
даты не складываются. сколько будет 5е марта плюс 2е апреля?
|
|||
3
Wobland
09.08.12
✎
07:26
|
(0) ну и скажи, какой тип у твоего времени?
|
|||
4
SeraFim
09.08.12
✎
07:27
|
И снова я подемпинугую... Продам СП!!! Дешево!!!
Кури разность РазностьДат в секундах (ну или в другой единице измерения, достаточной для твоей точности). Секунды суммируй, переводи куда надо... |
|||
5
Wobland
09.08.12
✎
07:28
|
(4) покупаю! если там есть статья про СуммуДат
|
|||
6
Nores
09.08.12
✎
07:31
|
Тип Дата конечно же
|
|||
7
Живой Ископаемый
09.08.12
✎
07:32
|
86 год.
|
|||
8
Nores
09.08.12
✎
07:33
|
РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Минута) на подое этого все отдельно я получаю, проблема только получить результат формата ЧЧ:мм
|
|||
9
Wobland
09.08.12
✎
07:34
|
(6) тогда извлекать минуты, суммировать, извлекать часы, умножать на 60, суммировать, делить на 60, получать остаток от деления и отдавать это всё в ДатуВремя
|
|||
10
Nores
09.08.12
✎
07:35
|
Я так и сделал, напиши как отдать это все в ДатуВремя?
|
|||
11
Wobland
09.08.12
✎
07:35
|
(8) в (0) сказано по-другому. не можешь готовые секунды в часы и минуты перевести?
|
|||
12
Живой Ископаемый
09.08.12
✎
07:36
|
2(10) известно как, вызвав функцию для вычисляемого поля в СКД.
|
|||
13
Wobland
09.08.12
✎
07:36
|
(10) ДатаВремя(1, 1, 1, Часы, Минуты, 0)
|
|||
14
Nores
09.08.12
✎
07:39
|
Щас ребята попробую
|
|||
15
SeraFim
09.08.12
✎
07:39
|
ДобавитьКДате(ДатаВремя(1,1,1,0,0,0), Минута, ОбщееКоличествоМинут) и переводить ничего не надо...
|
|||
16
Wobland
09.08.12
✎
07:40
|
(15) плин, забыл об этом ;)
|
|||
17
Nores
09.08.12
✎
08:14
|
И куда это добавить ДобавитьКДате(ДатаВремя(1,1,1,0,0,0), Минута, ОбщееКоличествоМинут) как только я получил сумма(Минуты)
|
|||
18
Wobland
09.08.12
✎
08:23
|
(17) какие ваши мысли?
|
|||
19
Nores
09.08.12
✎
09:31
|
Честно не предстваляю не гуру 1С и сталкиваюсь с таким впервые(((
|
|||
20
Nores
09.08.12
✎
09:31
|
Жду вашей поддержки и помощи в этом
|
|||
21
Wobland
09.08.12
✎
09:34
|
(20) выбрать ДобавитьКДате(ДатаВремя(1,1,1,0,0,0), Минута, КакТыТамПосчиталОбщееКоличество) КАК ВотОно
|
|||
22
Лефмихалыч
09.08.12
✎
09:35
|
(0) переведи в секунды от какой-нибудь примечательной даты, например ДатаВремя(1,1,1), потом складывай
|
|||
23
Nores
09.08.12
✎
11:36
|
ок спасибо щас попробую
|
|||
24
Nores
09.08.12
✎
11:43
|
Не смотрите так то получилось, но как Итоги СУММА(КОЛИЧЕСТВОЧАСОВ) представить как дату?, по строчно выдал мне все по дате с временем а итоги нет
|
|||
25
Nores
09.08.12
✎
11:44
|
Вернулся все к томуже((
|
|||
26
Wobland
09.08.12
✎
11:45
|
(24) потому что ты пытаешься суммировать несуммируемое. итоги по дате как-то ..кхм.. нетрадиционно выглядят в запросе. да поправят меня более бородатые. выясняй секунды и с ними оперируй.
|
|||
27
Nores
09.08.12
✎
11:48
|
Так я ребя та хотел у вас узнать можно ли так сделать или нет, я знаю что итоги по времени не суммируются((, но все равно спасибо всем
|
|||
28
Nores
09.08.12
✎
11:48
|
Думал вдруг есть какие методы, позволяющие это сделать)
|
|||
29
IronDemon
09.08.12
✎
11:48
|
(24) ДобавитьКДате(ДатаВремя(1, 1, 1), "Час", Сумма(КОЛИЧЕСТВОЧАСОВ))
|
|||
30
IronDemon
09.08.12
✎
11:49
|
В чем "КОЛИЧЕСТВОЧАСОВ"?
|
|||
31
Nores
09.08.12
✎
11:58
|
Щас запрос скину нагляднее будет
ПостроительОтчетаЛистУчета.Текст = "ВЫБРАТЬ | уатЛистУчетаРабота.Ссылка КАК Документ, | уатЛистУчетаРабота.Ссылка.ДокументОснование КАК ДокументОснование, | уатЛистУчетаРабота.Контрагент КАК Контрагент, | уатЛистУчетаРабота.КоличествоЧасов как КоличествоЧасов, ///подсчет времени час-целое, минута дробное...т.е. 8,5 это 8 часов и 30 минут | (ВЫРАЗИТЬ(РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час) как Число(15,0))*60 + ( РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Минута)-(РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час)*60)))/60 Как Итог, (уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час) как Число(15,0))*60 + ( РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Минута)-(РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час)*60)))/60)) КАК СУММАЧАС, | уатПервоначальныеСведенияТС.ГаражныйНомер КАК Гаражный |ИЗ | Документ.уатЛистУчета.Работа КАК уатЛистУчетаРабота | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО (уатПервоначальныеСведенияТС.ОсновноеСредство = уатЛистУчетаРабота.Ссылка.ТранспортноеСредство) |ГДЕ | (НЕ уатЛистУчетаРабота.Контрагент.Наименование ЕСТЬ NULL ) | И уатЛистУчетаРабота.Ссылка.ДокументОснование.ДатаВыезда МЕЖДУ &НачДатаВыезда И &КонДатаВыезда | И уатЛистУчетаРабота.Ссылка.ДокументОснование.Организация = &Организация |СГРУППИРОВАТЬ ПО | уатПервоначальныеСведенияТС.ГаражныйНомер, | уатЛистУчетаРабота.КоличествоЧасов, | уатЛистУчетаРабота.Ссылка, | уатЛистУчетаРабота.Контрагент, | уатЛистУчетаРабота.Наименование, | уатЛистУчетаРабота.НачДата, | уатЛистУчетаРабота.КонДата, | уатЛистУчетаРабота.Ссылка.ДокументОснование |ИТОГИ |Сумма(Итог) |ПО | ОБЩИЕ, | Контрагент, | ДокументОснование, | Наименование, | Гаражный, | Документ"; |
|||
32
Nores
09.08.12
✎
11:59
|
ссори там ошибка выше!!
"ВЫБРАТЬ | уатЛистУчетаРабота.Ссылка КАК Документ, | уатЛистУчетаРабота.Ссылка.ДокументОснование КАК ДокументОснование, | уатЛистУчетаРабота.Контрагент КАК Контрагент, | уатЛистУчетаРабота.КоличествоЧасов как КоличествоЧасов, ///подсчет времени час-целое, минута дробное...т.е. 8,5 это 8 часов и 30 минут | (ВЫРАЗИТЬ(РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час) как Число(15,0))*60 + ( РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Минута)-(РазностьДат(уатЛистУчетаРабота.НачДата,уатЛистУчетаРабота.КонДата,Час)*60)))/60 Как Итог, | уатПервоначальныеСведенияТС.ГаражныйНомер КАК Гаражный |ИЗ | Документ.уатЛистУчета.Работа КАК уатЛистУчетаРабота | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО (уатПервоначальныеСведенияТС.ОсновноеСредство = уатЛистУчетаРабота.Ссылка.ТранспортноеСредство) |ГДЕ | (НЕ уатЛистУчетаРабота.Контрагент.Наименование ЕСТЬ NULL ) | И уатЛистУчетаРабота.Ссылка.ДокументОснование.ДатаВыезда МЕЖДУ &НачДатаВыезда И &КонДатаВыезда | И уатЛистУчетаРабота.Ссылка.ДокументОснование.Организация = &Организация |СГРУППИРОВАТЬ ПО | уатПервоначальныеСведенияТС.ГаражныйНомер, | уатЛистУчетаРабота.КоличествоЧасов, | уатЛистУчетаРабота.Ссылка, | уатЛистУчетаРабота.Контрагент, | уатЛистУчетаРабота.Наименование, | уатЛистУчетаРабота.НачДата, | уатЛистУчетаРабота.КонДата, | уатЛистУчетаРабота.Ссылка.ДокументОснование |ИТОГИ |Сумма(Итог) |ПО | ОБЩИЕ, | Контрагент, | ДокументОснование, | Наименование, | Гаражный, | Документ"; |
|||
33
Rovan
гуру
09.08.12
✎
12:08
|
(32) итак ? итог правильно считает в кол-во часах ?
|
|||
34
Nores
09.08.12
✎
12:28
|
Я там сверху написал как считает, все правильно
|
|||
35
ptiz
09.08.12
✎
12:37
|
В запросе, имхо, никак, только обрабатывать результат при выводе.
А в СКД можно сделать ресурс (секунды -> в формат ЧЧ:ММ) Строка(ВЫБОР КОГДА ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") * 3600 <= СУММА(ОтработаноСекундВсего) ТОГДА ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") - 1 КОНЕЦ) + ":" + Формат(ВЫБОР КОГДА ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") * 3600 <= СУММА(ОтработаноСекундВсего) ТОГДА ВЫРАЗИТЬ((СУММА(ОтработаноСекундВсего) - ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") * 3600) / 60, "Число(10,0)") ИНАЧЕ ВЫРАЗИТЬ((СУММА(ОтработаноСекундВсего) - (ВЫРАЗИТЬ(СУММА(ОтработаноСекундВсего)/3600, "Число(10,0)") - 1) * 3600) / 60, "Число(10,0)") КОНЕЦ, "ЧЦ=2; ЧДЦ=0; ЧН=00; ЧВН=") |
|||
36
ptiz
09.08.12
✎
12:38
|
Хотя можно и в запросе, но через одно место:
кучу ВЫБОР КОГДА и склеиванием строки вручную |
|||
37
Nores
09.08.12
✎
13:00
|
ммм спасибо
|
|||
38
Nores
09.08.12
✎
13:16
|
Ptiz а куда вставить ?(((
|
|||
39
ptiz
09.08.12
✎
13:19
|
(38) Что вставить? Ресурс в СКД?
Ессно туда, где все ресурсы. |
|||
40
Nores
09.08.12
✎
14:02
|
Нет сам когд же в выбрать заносится этот?тот что ты написал?
|
|||
41
Wobland
09.08.12
✎
14:07
|
(40) в ресурсы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |