8.х Округление времени/ кратность

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем XXL, 25 сен 2014.

  1. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Добрый день.
    Мне нужно получать время, кратное 15ти минутам (если можно так выразиться). Т.е. текущее время 10:15:16 - надо его "округлить" до 10:30:00, текущее время 10:13:56 - надо 10:15:00 - как-то так... Можно что-то придумать?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Можно. Написать свою функцию.
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Как варинат Переводим 15 мин в секунды = 900 секунда
    Дата-(НачалоДня(Дата)+Час(Дата)*60*60)- это мы получим количество минут в секундах
    Допустим 1000 это 23 минуты или где так
    так вот Дальше бы я Вам редложил
    Окр(1000/900) =количество 15минуток
    И тогда Ваше время -(НачалоДня(Дата)+Час(Дата)*60*60+количество 15минуток*900)

    Но у вас округление идет всегда как то в большую сторону т.е насколько я понял 10:00:01 это уже должно быть 10:15:00

    Тогда уже 1000/900 тут выделяете целую часть и если есть остаток то к ней прибавляете 1 и получаете количество 15 минуток
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Сделать регистр сведений, в который напихать нужные соответствия времени в пределах суток. Соответствие делать для каждой минуты.
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Посмешили от души....
    Вы не забываете что как только объект добавили то еще и роли ему нужно проставить. Если тупо роли пользователь дать права на чтение, то меняете типовую роль и при обновлении сравнивать и посмнить что меняли ....
    Наверняка же чел уже завел какой нить общий модуль для всех своих дописок и там все дописывает.
  6. TriviumFan
    Offline

    TriviumFan Опытный в 1С Заблокирован

    Регистрация:
    19 мар 2013
    Сообщения:
    92
    Симпатии:
    15
    Баллы:
    29
    Код:
    ТекущихМинут = Минута(ТекущаяДата());
    ОкругленныеМинуты = Окр(ТекущихМинут/15)*15;
    НовоеВремя = НачалоДня(ТекущаяДата()) + Час(ТекущаяДата())*3600 + ОкругленныеМинуты * 60;
    Сообщить(НовоеВремя);
    
    XXL нравится это.
  7. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Спасибо, но сложновато и запутанно.

    Да, так получается, спасибо. Только мне нужно всегда в большую сторону округлять, поэтому так
    Код:
    (Цел(Минута(ТекущаяДата())/15) + 1)*15 
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    НУ я то же самое написал только в секундах все считается и + описание алгоритма.
    Можете сравнить.
  9. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Не спорю, но я запуталась:oops:

Поделиться этой страницей