Имя: Пароль:
1C
1С v8
Даты в запросе
0 sintez1234
 
10.09.14
14:39
Что-то я зачастил на форум, хорошо просто тут :)

Надо либо в запросе, либо в СКД вычислить на сколько дней отличаются 2 даты. Предпочел бы в запросе. Т.е. дано 01.09.2013 и 07.09.2013, надо получить сколько дней между ними разница, т.е. число 6.
Обе даты передают параметрами аля &НачДата и &КонДата

ы... как?

Я пробовал так и сяк:

Так:
ВЫРАЗИТЬ(&НачДата - &СравнениеНачДата КАК Число(15, 0)) КАК КолвоДней

Сяк:
&НачДата - &СравнениеНачДата КАК КолвоДней

Так и сяк говорят мне что надо на мисту идти :)
1 antoneus
 
10.09.14
14:40
РазностьДат
2 sintez1234
 
10.09.14
14:40
(1) большой СПС, пошел пробовать, доложу :)
3 busy1
 
10.09.14
14:40
(1) РазностьДат в запросе работает?
4 Wobland
 
10.09.14
14:41
(3) а есть другие предположения?
5 Ненавижу 1С
 
гуру
10.09.14
14:43
(3) а где, если не в запросе?
6 busy1
 
10.09.14
14:43
Работает, просто уточнил. )))))
7 DrZombi
 
гуру
10.09.14
14:44
РАЗНОСТЬДАТ(ВнутреннийЗапрос.ДатаРаботаНач, ВнутреннийЗапрос.ДатаНачалаРаботы, МИНУТА)
8 kumena
 
10.09.14
14:54
>> а есть другие предположения?

насколько я понимаю есть еще выражения СКД, которые сходны с языком запросов.
9 Fragster
 
гуру
10.09.14
14:56
кстати, разностьДат() для всего, кроме секунды показывает отнюдь не разность ПОЛНЫХ минут, часов, дней, месяцев и т.д.
10 sintez1234
 
10.09.14
15:17
(1) Помогло :) Вопрос снят
11 sintez1234
 
10.09.14
15:18
(7) да. Так и сделал :)
12 sintez1234
 
10.09.14
15:18
(8) да. Я тоже думал может туда. Но можно и в запрос. В запрос как-то понятнее что-ли :) удобнее
13 Wobland
 
10.09.14
15:20
(10) можешь не благодарить
14 Chameleon1980
 
10.09.14
17:01
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос=Новый Запрос;
    ТекстЗапроса="ВЫБРАТЬ
                 |    &ДатаНачала,
                 |    &ДатаКонца,
                 |    РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, ДЕНЬ) КАК Разность";
    Запрос.Текст=ТекстЗапроса;
    Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала);
    Запрос.УстановитьПараметр("ДатаКонца",ДатаКонца);
    Результат=Запрос.Выполнить();
    Выборка=Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить("Дата начала: "+Выборка.ДатаНачала);
        Сообщить("Дата конца: "+Выборка.ДатаКонца);
        Сообщить("Разность: "+Выборка.Разность);
    КонецЦикла;
КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.