8.х Формат времени

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

  1. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Имеется количество секунд, допустим 125, а как их отразит в формате 00:02:05 ?
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Код:
    Формат(НачалоДня(ТекущаяДата())+125, "ДЛФ=T")
    
  3. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Идею понял - спасибо!
  4. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104

    Всем привет. Пришлось поднять старую тему...Объясните пожалуйста как все таки отобразить секунды в виде нормального времени?
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Получить текущую дату с временем 00: 00: 00; добавить к ней интересующее количество секунд; с помощью функции Формат вывести только время из получившейся после сложения даты.
    Капитан Очевидность.
  6. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Очевидно для вас. Я не знаю. Поэтому и прошу помощи. Можете какой нибудь пример...?! Буду очень признателен...
  7. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Так какой пример-то еще?
    Код:
    Формат(НачалоДня(ТекущаяДата())+125, "ДЛФ=T")
    
    ТекущаяДата() - функция возвращает текущую дату, тип ДатаВремя: 21.02.2011 01: 30: 05;
    НачалоДня(ТекущаяДата()) - будет та же дата, но с обнуленным временем: 21.02.2011 00: 00: 00;
    НачалоДня(ТекущаяДата())+125 - добавляем интересующее нас количество секунд: 21.02.2011 00: 02: 05
    Формат(НачалоДня(ТекущаяДата())+125, "ДЛФ=T") - форматируем наше значение так, чтобы выводилось только время: 00: 02: 05
  8. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Получилось сделать так. В табличной части документа. ОТ времени ухода нужно отнять время прихода. И отобразить это в колонке РасчетВремени.
    Код:
    Процедура КоманднаяПанель1РасчетВремени(Кнопка)
    Для Каждого ТекСтрока Из ТабличнаяЧастьТест Цикл
    Расчет = ТекСтрока.ВремяУхода - ТекСтрока.ВремяПриходу;
    ТекСтрока.РасчетВремени = ВремяЧисло();
    КонецЦикла;
    
    КонецПроцедуры
    
    Функция ВремяЧисло() Экспорт
    Для Каждого ТекСтрока Из ТабличнаяЧастьТест Цикл
    Расчет = ТекСтрока.ВремяУхода - ТекСтрока.ВремяПриходу;
    ТекСтрока.РасчетВремени = Расчет;
    КонецЦикла;
    
    ВозврВремя = Формат(НачалоДня(ТекущаяДата())+ТекСтрока.РасчетВремени, "ДЛФ=T");
    Возврат ВозврВремя;
    КонецФункции
    
  9. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Можно использовать следующее:
    Код:
    ПроцедурыОбменаДаннымиКлиент.ПолучитьПоРазностиВремениПредставлениеДляПользователя(требуемое количество секунд);
    
    
    я это использую к примеру для отображения времени работы внешней обработки:
    Код:
    НачалоРаботы = ТекущаяДата();
    
    .....  // текст обработки
    
    РазницаВремени = ТекущаяДата() - НачалоРаботы;
    Сообщить("Время работы " + ПроцедурыОбменаДаннымиКлиент.ПолучитьПоРазностиВремениПредставлениеДляПользователя(РазницаВремени), СтатусСообщения.Информация);
    
    
  10. smitov
    Offline

    smitov

    Регистрация:
    26 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    А как в новом документе поставить фиксированное время. Например мне нужно чтобы время в некоторых накладных всегда было 18:00
  11. Diego
    Offline

    Diego Любитель 1С Команда форума

    Регистрация:
    3 апр 2009
    Сообщения:
    966
    Симпатии:
    2
    Баллы:
    29
    Лучше код конфигурации для этого не править.
    Я пользуюсь обработкой типа этой: http://infostart.ru/public/21846/
    или этой: http://infostart.ru/public/22145/

    Удобно сразу за большой период выставить например все поступления товаров и отчеты производства в начало дня, а все реализации товаров в конец.
  12. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Ну, или если совсем сильно хочется "по конфигурировать", то можно реализовать это через подписку на события... чтоб с обновлениями меньше париться ...

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