|
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
|
где-то я делал ветку, где рассматривали варианты интерфейсного исполнения для быстрого ввода времени
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |