Имя: Пароль:
1C
1С v8
Время в часах перевести в число
,
0 STAYEKR
 
18.10.12
13:20
Всем доброго здоровья! Возник такой вопрос: в запросе имеем поле Период вида "10.11.2012 09:11:12". Хочется выразить время в часах как Число, чтобы потом взаимодействовать с ним. Совсем закружился, помогите, пожалуйста. Буду очень благодарен!
1 PR
 
18.10.12
13:21
Время - "00010101"
2 skunk
 
18.10.12
13:21
ты хоть на пальцах покажи, что ты имеешь ввиду
3 zak555
 
18.10.12
13:21
взаимодействуй не как с часом, а как с секундами
4 PR
 
18.10.12
13:22
Соответственно в запросе РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1), Период, СЕКУНДА).
5 STAYEKR
 
18.10.12
13:27
нужно "выдернуть" из даты именно часы. Чтобы из "10.11.2012 09:11:12" получить просто 9. Как это возможно сделать?
6 НЕА123
 
18.10.12
13:27
(4)
чуется мне без НАЧАЛОПЕРИОДА не обойтись. или не?
7 Shurjk
 
18.10.12
13:28
(5) ЧАС есть такая функция в запросе.
8 zak555
 
18.10.12
13:29
(5) раздели на 8400
9 PR
 
18.10.12
13:29
(5) Пля, какие-то массовые кражи СП.
ЧАС(Период)
10 zak555
 
18.10.12
13:29
*иоли подставь ЧАС в (4)
11 STAYEKR
 
18.10.12
13:30
(9) Спасибо, вопрос решен!
12 Shurjk
 
18.10.12
13:30
(10) Результат будет очень разным.
13 Sammo
 
18.10.12
13:31
(4) Насколько я помню, использование такой конструкции приводило к переполнению
14 PR
 
18.10.12
13:32
(13) Уверен?
15 zak555
 
18.10.12
13:33
(12) ?
16 Shurjk
 
18.10.12
13:34
(15) В перовм случае выдаст количество часов которое прошло от первой даты до второй, а во втором вернет число часа в дате.
17 Sammo
 
18.10.12
13:34
(14) Зуб не дам. Выпадала у меня скулевская ошибка в похожей ситуации. Именно в похожей - сейчас посмотрел 4 ее не вызывает, но число неработоспосбно (в консоли запросов)
18 Shurjk
 
18.10.12
13:35
(13) а чем там ему переполняться?
19 Sammo
 
18.10.12
13:35
(18) Сколько секунд между 10.11.2012 09:11:12 и Дата(1,1,1) ?
20 PR
 
18.10.12
13:38
(17) Все работоспособно
21 НЕА123
 
18.10.12
13:38
менее
8400*31*12*2012
22 vmv
 
18.10.12
13:45
тырено из типовых

//
// Функция позволяет выбрать время из выпадающего списка
//Параметры:
//Форма - форма-владелец списка,
//ПолеВводаФормы - элемент-владелец списка,
//ТекущееЗначение - значение, на которое будет спозиционирован выпадающий список,
//Интервал - интервал, с которым необходимо заполнить список, по умолчанию час
//
// Add_ComM_ТИСКлиент.ВыбратьВремя(ЭтаФорма, Элемент, РфВремя, 3600)
//
Функция ВыбратьВремя(Форма, ПолеВводаФормы, Знач ТекущаяДата, Знач ТекущееВремя, Интервал = 3600) Экспорт

   НачалоРабочегоДня      = '00010101000000';
   ОкончаниеРабочегоДня   = '00010101235959';

   СписокВремен = Новый СписокЗначений;
   НачалоРабочегоДня = НачалоЧаса(НачалоДня(ТекущееВремя) +
       Час(НачалоРабочегоДня) * 3600 +
       Минута(НачалоРабочегоДня)*60);
   ОкончаниеРабочегоДня = КонецЧаса(НачалоДня(ТекущееВремя) +
       Час(ОкончаниеРабочегоДня) * 3600 +
       Минута(ОкончаниеРабочегоДня)*60);

   ВремяСписка = НачалоРабочегоДня;
   Пока НачалоЧаса(ВремяСписка) <= НачалоЧаса(ОкончаниеРабочегоДня) Цикл
       
       Если НЕ ЗначениеЗаполнено(ВремяСписка) Тогда
           ПредставлениеВремени = "00:00";
       Иначе
           ПредставлениеВремени = Формат(ВремяСписка,"ДФ=ЧЧ:мм");
       КонецЕсли;
       
       ПредставлениеВремени = ПредставлениеВремени + " / " + Формат(ТекущаяДата,"ДФ=дд.ММ");
       СписокВремен.Добавить(ВремяСписка, ПредставлениеВремени);
       
       ВремяСписка = ВремяСписка + Интервал;
       
   КонецЦикла;

   НачальноеЗначение = СписокВремен.НайтиПоЗначению(ТекущееВремя);
   Если НачальноеЗначение = Неопределено Тогда
       ВыбранноеВремя = Форма.ВыбратьИзСписка(СписокВремен, ПолеВводаФормы);
   Иначе
       ВыбранноеВремя = Форма.ВыбратьИзСписка(СписокВремен, ПолеВводаФормы, НачальноеЗначение);
   КонецЕсли;

   Если ВыбранноеВремя = Неопределено Тогда
       Возврат Неопределено;
   КонецЕсли;
     Если ВыбранноеВремя.Значение = ТекущееВремя Тогда
       Возврат Неопределено;
   КонецЕсли;
   
   Возврат ВыбранноеВремя.Значение;

КонецФункции
23 PR
 
18.10.12
13:48
(22) LOL
24 Sammo
 
18.10.12
13:51
(20) Поищу на досуге - было в прошлом году.
25 Shurjk
 
18.10.12
13:52
(19) Не так уж и много, думаю памяти сервера хватит.
Закон Брукера: Даже маленькая практика стоит большой теории.