Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 07:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Интервал времени  (Прочитано 2203 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Как в форме 1с 7.7 оформить интервал времени?
Я нашёл, что время хранится в типе "Строка", в формате 99:99, но такой вариант не годится, т.к. позволяет записывать любые числовые значения (и 56ч:87мин, и 28ч:79мин).


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: Интервал времени
« Ответ #1: 10 Дек 2014, 17:44 »
Как в форме 1с 7.7 оформить интервал времени?

время в клюшках не хранится

(и 56ч:87мин, и 28ч:79мин)

проверки просто добавлять, чтобы в вводимое поле не смогли ввести 60 минут и более, 24 часа и более

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Re: Интервал времени
« Ответ #2: 11 Дек 2014, 10:46 »
Как правильно задать переменные и установить проверку максимального значения? 
В процедуре
Процедура УстановитьВремя(ч,м)
ч=Число(2);
м=Число(2);
ч.максЗнач=24;
м.максЗнач=60;
КонецПроцедуры;
Ругается, что переменные "ч" и "м" не определены, можно вводить любое число.
Добавлено: 11 Дек 2014, 10:46

Не хочется для диапазона времени создавать кучу полей, где одно будет "Час", другое "Минуты" и потом дублировать их.
Добавлено: 11 Дек 2014, 10:59

Нашёл ещё способ ВвестиПериод:
Процедура ВвестиПериод(ч,м)
ч=Число(2);
м=Число(2);
КонецПроцедуры;
Но он тоже пока не работает как надо - ругается, что неопределены переменные.

Последний раз редактировалось: keramik; 11 Дек 2014, 10:59. Причина: Объединение сообщений

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: Интервал времени
« Ответ #3: 11 Дек 2014, 11:30 »
Если честно я вообще не понимаю что вы делаете в этих двух процедурах,
и неудивительно что платформа ругается)

Ну например здесь:

ч=Число(2);

что вы делаете? Число 2 преобразуете в число 2? Зачем?


Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Re: Интервал времени
« Ответ #4: 11 Дек 2014, 11:43 »
Я хочу сдлать так, чтобы юзер мог ввести временной интервал в формате ЧЧ:ММ - ЧЧ:ММ, но не знаю, как прописать ограничение, чтобы максимум можно было ввести 23:59 - 23-59.
Ч=Число() - это я пытался определить переменную, но не правильно.

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: Интервал времени
« Ответ #5: 11 Дек 2014, 12:37 »
На форме поместите поле для ввода времени, в маске этого реквизита (поля) указываете 99:99,
в формуле этого поля прописываете процедуру проверки.

Процедура проверки приблизительно так должна выглядеть:

// параметр Время - сюда передаете ваше значение из поля, где вы вводите время
Функция глПриВыбореВремени(Время) 
  Перем Час, Минута;

  Если СокрЛП(Время) = ":" Тогда
    //реквизит не заполнен, проверка не требуется
    Возврат 1;
  КонецЕсли;

  Час = Число(Лев(Время, 2));
  Минута = Число(Прав(Время, 2));
  Если (Час > 23) или (Минута > 59) или (Найти(Время, " ") > 0) Тогда
    Предупреждение("Неправильно введено время!",5);
    Время = "";
    Возврат 0;
  КонецЕсли;
  Возврат 1;
КонецФункции

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Re: Интервал времени
« Ответ #6: 11 Дек 2014, 12:56 »
Спасибо за помощь.
Единственное, что закоментил часть строки
...или(Найти(Время, " ") > 0)...
иначе всё время выкидывало сообщение, что время неправильно введено. А в остальном всё отлично.
Спасибо большое.


 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 389
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal