Версия для печати темы (https://pro1c.org.ua/index.php?s=f282e14bb428e2ac576bb5eaf53e713d&showtopic=67370)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ работа с временем

Автор: 4andriy 31.10.23, 13:10

1с 7.7 Предприятие.
Мне нужно определить время между операциями.

время1=ТекущееВремя();
Собщить(время1);
...
время2=ТекущееВремя();
Собщить(время2);
...
время3=время2-время1;
Собщить(время3);


ошибка:
Операция вычитания не определена для строковых величин

Автор: mut 31.10.23, 15:12

4andriy @ Сегодня, 14:10 * ,
Метод ТекущееВремя может возвращать числовые значения часов, минут, секунд. Прочитайте и дальше вычисляйте что нужно)

ТекущееВремя(<Час>,<Мин>,<Сек>);

// например
ТекущийЧас = 0; ТекущиеМинуты = 0;
ТекущееВремя(ТекущийЧас,ТекущиеМинуты);  

Если ТекущийЧас > 18 Тогда  
    Сообщить(ТекущееВремя()+" Конец рабочего дня");
    ЗавершитьРаботуСистемы(0);
КонецЕсли;




Автор: volodya1122 02.11.23, 9:08

Цитата(4andriy @ 31.10.23, 13:10) *
1с 7.7 Предприятие.
Мне нужно определить время между операциями.


Для таких целей есть недокументируемая функция которая возвращает число милисекунд от начала включения компютера

        а1=_GetPerformanceCounter();
    //........................................
        а2=_GetPerformanceCounter();
    а=а2-а1;
    ПрошлоСекунд=а/1000;

Автор: Sharzem 02.11.23, 12:36

4andriy @ 31.10.23, 14:10 * ,

Функция ПолучитьВремяВсекундах() 
    Ч=0; М=0; С=0;
    ТекущееВремя(Ч,М,С);
    лпВремя = Ч*3600+М*60+С;
    Возврат лпВремя;
КонецФункции//ПолучитьВремяВсекундах()
//=================================================================
Процедура Сформировать()
    лпВремяСтарт = ПолучитьВремяВсекундах();
    Предупреждение("Перевіряємо затрачену кількість часу",3);
    лпВремяФиниш = ПолучитьВремяВсекундах();
    
    лпРазницаВремени = лпВремяФиниш-лпВремяСтарт;
    
    лпПрошлоЧасов = Цел(лпРазницаВремени/3600);
    лпПрошлоМинут = Цел((лпРазницаВремени-лпПрошлоЧасов*3600)/60);
    лпПрошлоСек = лпРазницаВремени - лпПрошлоЧасов*3600 - лпПрошлоМинут*60;
    
    Сообщить("Затрачено "+лпПрошлоЧасов+" годин "+лпПрошлоМинут+" хвилин "+лпПрошлоСек+" секунд");
КонецПроцедуры

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua