Имя: Пароль:
1C
1C 7.7
v7: Есть ли в 7.7 реквизит для выбора времени?
0 iJuni
 
02.02.18
11:08
Есть ли какой способ для выбора времени в формате

24:59

?

На форму кинул реквизит диалога Дата и нужен такой же для выбора времени.
1 Волшебник
 
модератор
02.02.18
11:10
Переходи на 8, там это реализовано
2 iJuni
 
02.02.18
11:11
(1) не, спасибо.
3 MWWRuza
 
гуру
02.02.18
11:20
Через текстовое поле с шаблоном.
Только что оно Вам даст? Хранить тоже придется как строку...
4 iJuni
 
02.02.18
11:21
(3) дате пример шаблона пожалуйста.
5 MWWRuza
 
гуру
02.02.18
11:41
Там не шаблон, это называется маска: https://www.vdgb.ru/kompaniya/tehpodderzhka-1s/faq/pole-vvoda-maska/
Делайте - "99:99:99", будут вводиться только цифры, про две с  разделителем ":", а дальше пишите функцию, что-бы лишнего не могли ввести, например число минут больше 60... Как-то так, через Ж, но в 7.7 нет штатной функции для ввода времени.
6 Смотрящий
 
02.02.18
12:01
Числом хранить
7 vova1122
 
02.02.18
13:02
(0) С Получением почты уже разобрались?
да а время может хранится только в строковом виде .(Даже штатная функция ТекущееВремя() возвращает время в строковом виде.
Кстати что дальше собираетесь делать с этим временем?
8 iJuni
 
02.02.18
13:53
(7) с почтой так и не разобрались.

Пишу модуль всплывающих напоминаний.
Напоминания хранятся в справочнике.напоминания.

есть реквизиты дата, время.

с определенным интервалом делается "ПрямойЗапрос" на Дату и время и показывает сообщение.

Хочется чтобы пользователь мог нормально выбрать это время.
пока пришел к такому:
Задали время - отработа процедура КорректировкаВремени()

как-то так.
9 big
 
02.02.18
14:06
(7) Хранить лучше в числе, чтобы потом проще сравнивать было, да и в запросах удобнее.

Лучше будет хранить число Дата+время
10 iJuni
 
02.02.18
14:07
с хранением я все уже решил, а вот с выбором 8(
11 Kigo_Kigo
 
02.02.18
14:31
12 Kigo_Kigo
 
02.02.18
14:32
ПроверитьВводВремени() расписывать?
13 MetaDon
 
02.02.18
14:56
(8) сделай спр.Напоминания текстовый код дата+время- 10 символов;) а уж по коду отбор запросом
14 uno-group
 
02.02.18
15:24
Кидаешь текстовое поле включаешь для него обработку выбора значения. Перехватываешь начало редактирования открываешь свою форму с 2-3 полями. часы выбираешь через список значения. митуты можно списко мможно кнопками листать вверх низ +1+10
и -1-10 соответственно.
15 uno-group
 
02.02.18
15:27
опять же если с точностью до миниты не нужны в напоминалках обычно достоточно до 5 минут, то можно в список закинуть 0,5,10,15,20,25,30,35,40,45,50,55,
16 iJuni
 
02.02.18
15:55
(15) а вот это уже интереснее!
Чем проще тем лучше.
17 iJuni
 
02.02.18
15:57
(12) Да, покажи как расписал ПроверитьВводВремени().
Спасибо.
18 vova1122
 
02.02.18
16:15
(17) по приведенному примеру проверять ввод времени не нужно. Ты вводишь в список только нужные значения, а пользователь выбирает уже из этого списка. Неверного значения вообще небудет.
19 vova1122
 
02.02.18
16:17
(17) если собрался писать, через "маску" как предлагали выше то проверяешь отдельно часы на <24 и отдельно минуты на <60
20 vova1122
 
02.02.18
16:21
Упс. ответ (18) я написал предполагая что использовал вариант из (15)
21 Kigo_Kigo
 
03.02.18
11:36
(17)
Процедура ПроверитьВводВремени()
    
    Часы = Число(Сред(Время,1,2));
    Минуты = Число(Сред(Время,4,2));
    Секунды = Число(Сред(Время,7,2));
    Если Часы > 24 Тогда
        Сообщить("Не верно введены часы");
        Время = "";
    КонецЕсли;
    Если Минуты > 60 Тогда
        Сообщить("Не верно введены минуты");
        Время = "";
    КонецЕсли;
    Если Секунды > 60 Тогда
        Сообщить("Не верно введены секунды");
        Время = "";
    КонецЕсли;

КонецПроцедуры
22 MWWRuza
 
гуру
03.02.18
16:28
(21)Или лучше, запоминать что было, и при ошибке просто возвращать старое значение обратно, будет ощущение, что ввод ограничен нужным диапазоном в самом поле, хотя на самом деле будет процедура отрабатывать.
Код писать лень, сами напишите, главное - идея:)))
23 NorthWind
 
03.02.18
18:32
(0) нет. В восьмерке тип даты хранит только дату, а время, если оно надо каждый хранит и рассчитывает сам как ему заблагорассудится. То же касается ввода - каждый лепит свой велосипед. Относительно полноценная работа с датой есть только начиная с восьмерки. "Относительно" - потому что мельче секунды интервалы не котирует.
24 NorthWind
 
03.02.18
18:32
* в начале читать "в семерке"
25 MWWRuza
 
гуру
03.02.18
20:09
(22)Ну, под рюмочку коньячка, за окончание ремонта на кухне, и лень прошла, и время появилось :)))
Вот:

Перем СтарЧасы,СтарМинутыы,СтарСекунды;

Процедура ПроверитьВводВремени()
    Ошибка = 0;
    Часы = Сред(Время,1,2);
    Минуты = Сред(Время,4,2);
    Секунды = Сред(Время,7,2);
    Если Число(Часы) > 24 Тогда
        Время = СтарЧасы + ":" + СтарМинутыы + ":" + СтарСекунды;
        Ошибка = 1;
    КонецЕсли;
    Если Число(Минуты) > 60 Тогда
        Время = СтарЧасы + ":" + СтарМинутыы + ":" + СтарСекунды;
        Ошибка = 1;
    КонецЕсли;
    Если Число(Секунды) > 60 Тогда
        Время = СтарЧасы + ":" + СтарМинутыы + ":" + СтарСекунды;
        Ошибка = 1;
    КонецЕсли;
    Если Ошибка = 0 Тогда
        СтарЧасы = Сред(Время,1,2);
        СтарМинутыы = Сред(Время,4,2);
        СтарСекунды = Сред(Время,7,2);        
    КонецЕсли;    
КонецПроцедуры
26 MWWRuza
 
гуру
03.02.18
20:30
Да, это... Если Вы время где-то храните, то надо переменные, описанные в начале модуля, заполнять при открытии формы, и изменять при любом другом изменении значения времени, кроме описанного в этой процедуре интерактивного(если такое будет).
27 iJuni
 
04.02.18
16:29
(26) так и есть.
В запросе время сравниваю переведя в секунды часы и минуты.
28 iJuni
 
04.02.18
16:29
секунды я не использую
29 Злопчинский
 
06.02.18
01:21
где-то я делал ветку, где рассматривали варианты интерфейсного исполнения для быстрого ввода времени
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс