Имя: Пароль:
1C
1С v8
Подсчёт количества дней
,
0 VSpicy
 
naïve
25.03.22
10:09
Всем доброго дня!
Маленькая задачка:
Есть таблица с полями (справочник): Автомобиль, ДатаЭксплуатации.
В запросе сделал параметры: ДатаНачала, ДатаОкончания (между ДатаЭксплуатации).
Вопрос: Как в запросе посчитать количество дней в эксплуатации?

Заранее благодарен!!!
1 Игиптянин
 
25.03.22
10:23
РазностьДат(дата1,дата2)
2 Kigo_Kigo
 
25.03.22
10:27
(1) Вопрос, что вернет РазностьДат, если Дата1=Дата2? ))))
3 Вафель
 
25.03.22
10:28
(2) 0 конечно же
4 Игиптянин
 
25.03.22
10:28
(2) Не помню, должно ноль вернуть.
5 VSpicy
 
naïve
25.03.22
10:39
Что-то не получается так...
Примеры:
1. Автомобиль, ДатаЭксплуатации = 01.01.2022
Задаем параметры: с 01.03.2022 по 25.03.2022
Результат должен быть = 25 дней!

2. Автомобиль, ДатаЭксплуатации = 01.01.2022
Задаем параметры: с 01.01.2022 по 10.02.2022
Результат должен быть = 41 день! (1)
6 Игиптянин
 
25.03.22
10:51
(5) а у тебя сколько?!
7 Игиптянин
 
25.03.22
10:52
+(6) Открой для себя НачалоПериода, КонецПериода, Секунда, +,-, /, *
8 acht
 
25.03.22
10:56
(5) А с 01.03.2022 по 01.03.2022 сколько должно быть? И почему?
9 VSpicy
 
naïve
25.03.22
11:02
(8) 1 день, т.к. задан период в 1 день)
10 VSpicy
 
naïve
25.03.22
11:07
РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ДЕНЬ) КАК ДниВЭксплуатации
Ерунда получается)
11 VSpicy
 
naïve
25.03.22
11:10
(7) Можно пример запроса, где будет считать как исходя из моих примеров (5)
Спасибо!
12 hhhh
 
25.03.22
11:11
(10) ну так

РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ДЕНЬ) + 1 КАК ДниВЭксплуатации
13 НЕА123
 
25.03.22
11:13
(10)
наоборот параметры дат
14 VSpicy
 
naïve
25.03.22
11:26
(13) будет минус количество дней)
15 Игиптянин
 
25.03.22
11:30
(14) РазностьДат(НачалоПериода(ДатаНачала),КонецПериода(ДатаНачала),"Секунда") / 24 * 3600 Потом окр(Выражение,"тут как тебе надо")
зы
ну и тупой же кодер нынче пошел.
16 Игиптянин
 
25.03.22
11:31
РазностьДат(НачалоПериода(ДатаНачала),КонецПериода(ДатаНачала),"Секунда") / (24 * 3600) а то и тут налажает
17 Вафель
 
25.03.22
11:32
(16) может проще 1 добавить?
18 Игиптянин
 
25.03.22
11:32
(17) может он потом в часах захочет.
19 hhhh
 
25.03.22
11:35
(18) "Секунда" это если в полях СКД. А если в запросе, то Секунда без кавычек.
20 VSpicy
 
naïve
25.03.22
11:41
(15) Спасибо! Да, затупил слегка)
21 lEvGl
 
гуру
25.03.22
11:57
как бэ методику расчета должен задавать постановщик задачи, а чисто технические инструменты - РазностьДат, Начало Конец Периода, секунда час день и остальное
по методике (из общих соображений) - начало/конец брать не всегда корректно, т к конец может быть указан в будущем, логически будет ерунда, поэтому брать надо текущую дату
22 butterbean
 
25.03.22
12:04
(0) я может быть неправильно задачу понял, но можно ведь сделать ГДЕ ДатаЭкспулаутации МЕЖДУ ДатаН и ДатаК и потом поле с СУММА(1) КАК Дни и сделать СГРУППИРОВАТЬ ПО Автомобиль
в регистре ведь на один день одна запись
23 lEvGl
 
гуру
25.03.22
12:09
типа такого

выбор когда &Текущая < &Конец Тогда
разностьдат(&Начало, &Текущая, ВЧемНадо)
Иначе
разностьдат(&Начало, &Конец, ВЧемНадо)
конец

но это догадки, о том что нужно
24 lEvGl
 
гуру
25.03.22
12:12
(22) у него в регистре 4 записи в день и дни по календарю ацтеков
25 hhhh
 
25.03.22
13:10
что-то ничего не понимаю. Откуда это видно, что в регистре 4 записи?
26 butterbean
 
25.03.22
14:01
(24) если так, то можно не СУММА() , а КОЛИЧЕСТВО РАЗЛИЧНЫЕ по ДатаЭксплуатации сделать. Если там со временем дата, то можно добавить НАЧАЛОПЕРИОДА(ДатаЭксплуатации ,ДЕНЬ)
27 rudnitskij
 
25.03.22
15:42
(10) С этим надо в майскрософт писать - что SQL неправильно считает разность дат. Ее в запросе ведь не 1С считает
28 VSpicy
 
naïve
27.03.22
22:41
(22) Задача такая:
Есть ДатаЭксплуатации автомобиля, нужно узнать количество дней в экплуатации исходя из заданных параметров: ДатаЭксплуатации Между &ДатаН и &ДатаК
Пример:
1. ДатаЭксплуатации = 01.01.2022, Параметры: ДатаН = 01.03.2022, ДатаК = 10.03.2022 Результат должен быть = 10
2. ДатаЭксплуатации = 05.03.2022, Параметры: ДатаН = 01.03.2022, ДатаК = 10.03.2022 Результат должен быть = 5
3. ДатаЭксплуатации = 17.03.2022, Параметры: ДатаН = 01.03.2022, ДатаК = 10.03.2022 Результат должен быть = 0

Решить нужно на СКД (т.ч. сделать параметр &ТекДата скорее всего не получится).
29 Йохохо
 
27.03.22
22:54
выбрать автомобиль, сумма(1) из спр где спр.датаэксплуатации между &датаначала и &датаокончания сгруппировать по полечудес
30 Йохохо
 
27.03.22
22:56
(28) эвона. ну студент не должен спать перед экзаменом
31 hhhh
 
27.03.22
23:18
(28) ДатаЭксплуатации = 05.03.2022  должно получиться не 5, а 6 дней.

&ТекДата в СКД получается легко. В справке посмотрите, там есть функция ТекущаяДата()
32 VSpicy
 
naïve
27.03.22
23:25
(31) Да, точно, именно 6.
33 VSpicy
 
naïve
28.03.22
08:37
(29) А можно чуть подробнее...Сумма(1) как сделать?
Заранее спасибо!
34 unbred
 
28.03.22
08:53
(0) наркоманская задача.
какой смысл узнавать количество дней в эксплуатации на определённый срез?
35 VSpicy
 
naïve
28.03.22
08:58
(34) Есть некоторые товарищи, которым это интересно)
36 lEvGl
 
гуру
28.03.22
10:59
вот это да!