gifts2017

ВвестиВремя

Опубликовал Максим Епанчинцев (McSeem) в раздел Программирование - Практика программирования

Форма ввода строки времени в формате "ЧЧ:ММ:СС" с вызовом, аналогичным стандартным функциям ввода данных.

Крошечная, но полезная в некоторых случаях мини-прилада для ввода времени. Внешне напоминает стандартные окна ввода числа, строки, даты. Есть кнопки быстрого изменения часа/минуты/секунды и подстановки текущего времени. Встроена проверка на корректность данных.

Тем, кому приходится иметь дело с хранением времени и лень писать свою функцию ввода значений (хотя она пишется 5 минут) - возьмите этот вариант на заметку. Пользователям нравится, проверено.

Формат: ВвестиВремя(Значение,Подсказка);. Изменяет значение в случае нажатия OK, возвращает 1 или 0 в зависимости от того, какая кнопка была нажата.

Содержимое архива InputTime77.zip:

ВвестиВремяПроверка.ert - демонстрация работы обработки ВвестиВремя. Функцию из ее модуля можно вставить в глобальный модуль своей конфигурации и пользоваться на здоровье.

ВвестиВремя.ert - сама обработка, поместить в ExtForms

Содержимое архива InputTime81.zip:

ВводВремени81.epf - аналогичная разработка для 1С:Предприятие 8.1 от Oleg'а (добавлено с разрешения автора).

Скачать файлы

Наименование Файл Версия Размер
- 197
.1238651208 17,59Kb
25.09.09
197
.1238651208 17,59Kb Бесплатно
- 130
.1238728135 39,34Kb
25.09.09
130
.1238728135 39,34Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Александр Рытов (Арчибальд) 02.04.09 10:14
2. Максим Епанчинцев (McSeem) 02.04.09 12:09
Забыл сделать проверку правильности передаваемого времени. :) Можно заменить в процедуре ПриОткрытии() последнюю строчку на ВводВремя = ПроверкаВремени(ВводВремя);
3. Александр Рытов (Арчибальд) 02.04.09 15:12
И переход от часов к минутам и далее по точке на доп. клавиатуре. Хотя, где нужна скорость, можно и к нолику операторов приучить.
Кстати, а где ввод секунд может потребоваться? Разве что при установке времени документа...
4. Сhe Burashka (CheBurator) 03.04.09 03:00
5. Олег Пономаренко (O-Planet) 03.04.09 04:00
Эх нах! У мну для 8 такое есть. Выложить что ль. Только не в разработки, стыдно )) Или это комплексы?
6. Максим Епанчинцев (McSeem) 03.04.09 04:49
Добавил скриншот.

В принципе, секунды действительно практически никогда не нужны, в обработке они имеются согласно принципу "чтобы было". Как реализовать стандартными средствами переход курсора по нажатию точки - не имею представления, разве что сделать тип поля числовым с двумя цифрами после запятой, где целая часть будет соответствовать часам, а дробная минутам. Но это уже будет выглядеть несколько необычно и не так наглядно, имхо.
7. Олег Пономаренко (O-Planet) 03.04.09 06:59
Выслал автору такое же для 8.1. Если не побрезгует - буду рад, что выложит.
8. Максим Епанчинцев (McSeem) 03.04.09 07:13
Выложил вариант от O-Planet и обновил свой (исправил небольшой момент, о котором писал во втором комментарии).
9. Александр Рытов (Арчибальд) 03.04.09 07:35
(8)>аналогичная разработка для 1С:Предприятие 8.1 от Oleg'а (добавлено с разрешения автора).
Ссылка почему-то ведет в мой профиль. Но это не я.
(6)Я так и делал. Поле ввода в обработке поле числовое, а там уж преобразование, фильтрация значений типа 76 час 98 мин и т.д
10. Максим Епанчинцев (McSeem) 03.04.09 08:01
>Ссылка почему-то ведет в мой профиль. Но это не я.

А у меня - почему-то в мой. Хотя в ссылке явно указан ID Олега. Странно...
11. Алексей Константинов (alexk-is) 04.04.09 02:48
(10) Надо писать так http://www.infostart.ru/profile/180/
...в конце слеш добавь... :)
12. Сергей Лосников (Lars Ulrich) 09.04.09 08:32
полезная штучка, спасибо
13. Виталий (1100) 12.04.09 22:21
принято на вооружение,спасибо
14. Дмитрий Харченко (M-joy85) 14.04.09 14:08
15. Виктор (BaShaKo) 22.04.09 19:02
Интересно, полезно, но есть вопросы (пробовал версию для 7.7):
Зачем такая экзотика как пересчет НЕКОРРЕКТНОГО времени ЧЧ:ММ:СС, например, 25:65:65, в "корректное" 01:06:05. В данном случае, т.е. просто при желании ввести время, это приведет, может быть, к незамеченной ошибке. (А если она критична?) Может, в данном случае, "ругаться" или молча возвращать пустое время 00:00:00.
16. Максим Епанчинцев (McSeem) 27.04.09 09:40
BaShaKo: поскольку вариантов обработки такого события может быть несколько (ты сам парочку назвал, а можно еще добавить округление до ближайшей цифры, или сделать кнопку подтверждения недоступной, или еще что-нибудь выдумать), то я сделал просто наиболее привлекательный для меня лично вариант. :)
17. Сергей Старых (tormozit) 16.12.11 09:10
Еще пользователям нравится наличие кнопок "Конец дня" и "Начало дня" рядом со временем.
18. Евгений Кредько (kredko) 16.12.11 09:19
Я тут подумал, что можно и так сделать (смотри скрин). Каждая стрелка вверху прибавляет по единичке к данному параметру, а каждая стрелка внизу - отнимает по единичке. Вроде так было бы лучше. Пристрою такую штуку в документ.
Прикрепленные файлы:
19. Евгений Кредько (kredko) 16.12.11 09:44
Еще пользователям нравится наличие кнопок "Конец дня" и "Начало дня" рядом со временем.

можно сделать и так. Так же можно добавить кнопку "Текущая дата".
В табличной части данные варианты не очень удобны. Поэтому можно сделать так - смотри Скрин2. Кнопка регулирования добавляет/отнимает к/от дате, например, 1 (одну) минуту. Количество минут зависит от прописанных параметров в коде. Можно прибавлять любое количество.
Прикрепленные файлы:
20. Антон Дилёв (Antoska) 23.12.13 16:00
В обработке-примере (ВвестиВремяПроверка.ert) изменил кое-что:
РасположениеФайла(ИмяКаталога,ИмяФайла);
ОткрытьФормуМодально("Обработка",СЗПар,ИмяКаталога+?(Прав(ИмяКаталога,1)="\","","\")+"ВвестиВремя.ert");
вместо:
ОткрытьФормуМодально("Обработка",СЗПар,КаталогИБ()+"ExtForms\ВвестиВремя.ert");

Так проще использовать пример. Не нужно кидать ВвестиВремя.ert в ExtForms каталога базы.
Спасибо за формочку. Очень экономит время:)
P.S. Знаю что жуткий некропостинг, но все же решил поделиться мыслями:)

испр: конечно же в начало модуля, либо функции ВвестиВремя() нужно добавить инициализацию переменных:
Перем ИмяФайла, ИмяКаталога;