Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не понятное с РАЗНОСТЬДАТ()          
kosalex Подменю пользователя
сообщение 02.09.15, 10:52
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Доброго времени суток! есть запрос который высчитывает разность даст между датами:
ВЫБРАТЬ
    ПростойВагонаСрезПоследних.НомерВагона,
    ПростойВагонаСрезПоследних.ПрибытияВагона,
    ПростойВагонаСрезПоследних.ВозвратПВст
ПОМЕСТИТЬ ВТ_РСПростой
ИЗ
    РегистрСведений.ПростойВагона.СрезПоследних(&Период, ) КАК ПростойВагонаСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_РСПростой.НомерВагона,
    ВТ_РСПростой.ПрибытияВагона,
    ВТ_РСПростой.ВозвратПВстКраматорск КАК СдачаНаСтКраматорск,
    ВЫБОР
        КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                И ВТ_РСПростой.ВозвратПВстКраматорск <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, ВТ_РСПростой.ВозвратПВст, ЧАС)
        ИНАЧЕ ВЫБОР
                КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                        И ВТ_РСПростой.ВозвратПВст= ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, &Период, ЧАС)
                ИНАЧЕ 0
            КОНЕЦ
    КОНЕЦ КАК ВсегоЧасовПростоя,
    ВЫБОР
        КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, ВТ_РСПростой.ВозвратПВст, СЕКУНДА)
        ИНАЧЕ ВЫБОР
                КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                        И ВТ_РСПростой.ВозвратПВст = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, &Период, СЕКУНДА)
                ИНАЧЕ 0
            КОНЕЦ
    КОНЕЦ КАК ВсегоСекундПростоя,
    "" КАК ВремяПростоя
ИЗ
    ВТ_РСПростой КАК ВТ_РСПростой


Вот что получаю в отчете:




В разных моментах по разному округляет, то в большую то в меньшую сторону. Как вообще работает эта РАЗНОСТЬДАТ()?

kosalex Подменю пользователя
сообщение 02.09.15, 12:33
Сообщение #2

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Вот функция которая разбивает секунды на время
Функция ПолучитьВремя(Секунды)  Экспорт;
    Часов=Цел(Секунды/3600);
    СекОстМин= Секунды%3600;    
    Минут=Цел(СекОстМин/60);
    Сек=СекОстМин%60;
    
    Попытка
        Если Число(Часов)<10 Тогда
            Часов="0"+СокрЛП(Часов);
        Иначе
            Часов=СокрЛП(Часов);
        КонецЕсли;
        
        Если Число(Минут)<10 Тогда
            Минут="0"+СокрЛП(Минут);    
        Иначе
            Минут=СокрЛП(Минут);
        КонецЕсли;
        
        Если Число(Сек)<10 Тогда
            Сек="0"+СокрЛП(Сек);    
        Иначе
            Сек=СокрЛП(Сек);
        КонецЕсли;
        
        Время = Часов + ":" + Минут + ":" + Сек;
        Возврат  Время;
    Исключение
     Сообщить(ИнформацияОбОшибке().Описание,СтатусСообщения.Важное);
    Возврат Неопределено;    
    КонецПопытки;
КонецФункции

TipsyKID Подменю пользователя
сообщение 02.09.15, 12:44
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

[необходимо зарегистрироваться для просмотра ссылки]
Цитата
Третий параметр содержит единицу измерения, в которой необходимо получить результат функции. В качестве третьего параметра можно использовать следующие значения: Секунда, Минута, Час, День, Месяц, Квартал, Год. При расчете результата функция игнорирует единицы измерения, которые меньше, чем указанная в данном параметре единица.

Например, если в качестве третьего параметра указать Час, то при расчете результата будут игнорироваться минуты и секунды, присутствующие в первых двух параметрах. Если же в третьем параметре указать Месяц, то игнорироваться будут дни, часы, минуты и секунды.


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: kosalex,

kosalex Подменю пользователя
сообщение 02.09.15, 12:49
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(TipsyKID @ 02.09.15, 13:44) *
[необходимо зарегистрироваться для просмотра ссылки]



Посмотрите пожалуйста на скрин, на строку где часов 70, а рядом в колонке 69:30:00, по идеи(выше сказанной) должно быть 69 или как?

По ссылке не переходит!

Petre Подменю пользователя
сообщение 02.09.15, 12:52
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Цитата(kosalex @ 02.09.15, 13:49) *
Посмотрите пожалуйста на скрин, на строку где часов 70, а рядом в колонке 69:30:00, по идеи(выше сказанной) должно быть 69 или как?

13 часов 27 числа минус 15 часов 24 числа = 70 часов разницы.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: kosalex,

kosalex Подменю пользователя
сообщение 02.09.15, 13:04
Сообщение #6

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Petre @ 02.09.15, 13:52) *
13 часов 27 числа минус 15 часов 24 числа = 70 часов разницы.

Первая колонка с датой и временем это ПРИБЫТИЕ, а вторая это ОТПРАВКА, нужно от времени ОТПРАКА отнять время ПРИБЫТИЯ, получить часы простоя.

Часы считаю РАЗНОСТЬДАТ(ПРИБЫТИЕ,ОТПРАВКА,ЧАС)
Рядом с колонкой часов расположена колонка которая высчитывается вот так РАЗНОСТЬДАТ(ПРИБЫТИЕ,ОТПРАВКА,СЕКУНДА), а потом эти секунды передаются в функцию которая написана выше.

Цитата(Petre @ 02.09.15, 13:52) *
13 часов 27 числа минус 15 часов 24 числа = 70 часов разницы.


вроде понял) получается часы с 24 по 27 число = 72, и 15часов - 13 часов = 2 часа, 72-2 = 70 часов.


А функция считает не только часы, она берет все )

TipsyKID Подменю пользователя
сообщение 02.09.15, 13:44
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

Цитата
Посмотрите пожалуйста на скрин, на строку где часов 70, а рядом в колонке 69:30:00, по идеи(выше сказанной) должно быть 69 или как?


Господин не совсем понимает, что значит "будут игнорироваться минуты и секунды" или он не знает как отнимать числа ?

Сообщение отредактировал TipsyKID - 02.09.15, 13:51


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

kosalex Подменю пользователя
сообщение 02.09.15, 13:46
Сообщение #8

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(TipsyKID @ 02.09.15, 14:44) *
Господин не совсем понимает, что значит "будут игнорироваться минуты и секунды" или он не знает как отнимать числа ?


пост выше говорит об этом?

andr_andrey Подменю пользователя
сообщение 03.09.15, 8:13
Сообщение #9

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(kosalex @ 02.09.15, 13:49) *
Посмотрите пожалуйста на скрин, на строку где часов 70, а рядом в колонке 69:30:00, по идеи(выше сказанной) должно быть 69 или как?

По ссылке не переходит!

[необходимо зарегистрироваться для просмотра ссылки]


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 0:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!