Имя: Пароль:
1C
 
Дата
, ,
0 Никкккк
 
31.08.18
14:49
Приветствую!Есть поле, где я ввожу число,например, 150. В другом поле нужно получить время в формате "2 часа 30 минут". Подкиньте идеи,как можно реализовать это
1 PR
 
31.08.18
14:50
Да
2 Buster007
 
31.08.18
14:51
дели на 60
3 sitex
 
naïve
31.08.18
14:56
Господи это жесть!
4 Волшебник
 
31.08.18
14:57
Если поле1 = 150 Тогда
   поле2 = "2 часа 30 минут"
КонецЕсли;
5 Лефмихалыч
 
31.08.18
14:58
аа... мы продаем или покупаем?
6 dmt
 
31.08.18
14:59
управляемые формы или обычные?
7 Wirtuozzz_Х
 
31.08.18
15:23
(0) В ПКО надо не забыть указать Объект.ОбменДанными = Ложь;
8 fgaabbb
 
31.08.18
15:56
(7) нет, Значение = "2 часа 30 минут";
9 Ненавижу 1С
 
гуру
31.08.18
16:15
Минуты = Значение%60;
Часы = (Значение-Минуты)/60;
10 Волшебник
 
31.08.18
16:18
(9) Теперь осталось просклонять "часы" и "минуты"
11 Малыш Джон
 
31.08.18
16:21
?(Часы = 1,"час", ?(Часы > 1 И Часы < 5, "часа", часов"));
12 Волшебник
 
31.08.18
16:24
(11) 21?
13 Михаил Козлов
 
31.08.18
16:25
(12) Применять (11) к младшему разряду.
14 Timon1405
 
31.08.18
16:25
(13) 11?
15 Малыш Джон
 
31.08.18
16:42
(12)
?(Часы = 1,Формат(Часы, "ЧГ=0")+" час", ?(Часы > 1 И Часы < 5, Формат(Часы, "ЧГ=0")+" часа", "много часов"));
16 gret
 
31.08.18
16:44
Примерно так вышло...

Процедура РасчетВремениНажатие(Элемент)
    
    Минуты = ЭлементыФормы.ПолеВводаМинут.Значение; //например, вводим значение в поле ввода на форме
    Часы = Цел(Минуты / 60);
    Минуты = Минуты - Часы * 60;
    Сообщить (Строка(Часы) + ПолучитьЧасыСтрокой(Часы) + Строка(Минуты) + ПолучитьМинутыСтрокой(Минуты));
    
КонецПроцедуры

Функция ПолучитьЧасыСтрокой (Часы)
    
    Если (Часы % 10 = 0) ИЛИ (Часы % 10 = 5) ИЛИ (Часы % 10 = 6) ИЛИ (Часы % 10 = 7) ИЛИ (Часы % 10 = 8) ИЛИ (Часы % 10 = 9) ИЛИ
        (Часы = 11) ИЛИ (Часы = 11) ИЛИ (Часы = 13) ИЛИ (Часы = 14) Тогда
        ЧасыСтрокой = " часов ";
    ИначеЕсли Часы % 10 = 1 Тогда
        ЧасыСтрокой = " час ";
    Иначе
        ЧасыСтрокой = " часа ";
    КонецЕсли;
    Возврат ЧасыСтрокой;
    
КонецФункции

Функция ПолучитьМинутыСтрокой (Минуты)
    
    Если (Минуты % 10 = 0) ИЛИ (Минуты % 10 = 5) ИЛИ (Минуты % 10 = 6) ИЛИ (Минуты % 10 = 7) ИЛИ (Минуты % 10 = 8) ИЛИ (Минуты % 10 = 9) ИЛИ
        (Минуты = 11) ИЛИ (Минуты = 11) ИЛИ (Минуты = 13) ИЛИ (Минуты = 14) Тогда
        МинутыСтрокой = " минут ";
    ИначеЕсли Минуты % 10 = 1 Тогда
        МинутыСтрокой = " минута ";
    Иначе
        МинутыСтрокой = " минуты ";
    КонецЕсли;
    Возврат МинутыСтрокой;
    
КонецФункции
17 Asmody
 
31.08.18
16:51
ВК надо делать
18 Lexey_
 
31.08.18
16:53
а как же СтрокаСЧислом?


Строка = СтрокаСЧислом(";остался %1 день;;осталось %1 дня;осталось %1 дней;осталось %1 дня",
    ДнейДоНовогоГода,
    ВидЧисловогоЗначения.Количественное,
    "L=ru");
Строка = "До Нового Года " + Строка;
19 dmt
 
31.08.18
16:58
(16) наверняка надо запросом, ща афтор придет
20 azernot
 
31.08.18
17:22
Когда-то давно писал так:

Функция ВремяПрописью(КоличествоМинут)
    Часов = Цел(КоличествоМинут/60);
    Минут = КоличествоМинут - Часов * 60;
    
    ЧасыПрописью = СтрЗаменить(ЧислоПрописью(Часов, "Л = ru_RU", "час, часа, часов, м,,,,,0"), ЧислоПрописью(Часов, "Л = ru_RU", ",,,м,,,,,0"), "");
    МинутыПрописью = СтрЗаменить(ЧислоПрописью(Минут, "Л = ru_RU", "минута, минуты, минут, ж,,,,,0"), ЧислоПрописью(Минут, "Л = ru_RU", ",,,ж,,,,,0"), "");
    
    Возврат Формат(Часов, "ЧЦ=2; ЧН=0; ЧГ=")+" "+ЧасыПрописью+" "+Формат(Минут, "ЧЦ=2; ЧН=0; ЧГ=")+" "+МинутыПрописью;
    
КонецФункции
21 hhhh
 
31.08.18
18:35
(15) ?(Целое(Часы / 10) % 10 = 1, "часов", ?(Часы % 10 = 1, "час", ?(Часы % 10 > 1 И Часы % 10 < 5, "часа", часов")));
22 Germes
 
31.08.18
19:08
Сидел наверное чел на собеседовании, вы за него тест выполнили. А если его примут на работу - справится ли он со всеми задачами, не подведет ли работодателя?
23 Волшебник
 
31.08.18
19:20
(22) нам пофиг
24 dmt
 
31.08.18
19:37
(22) мы даем ему путевку в жизнь и шанс стать профессионалом!
25 dmt
 
31.08.18
19:39
ВЫБРАТЬ
    выбор когда &Число = 0 тогда 0 иначе ВЫРАЗИТЬ(&Число / 60 - 0.5 КАК ЧИСЛО(15, 0)) конец КАК Часы,
    выбор когда &Число = 0 тогда 0 иначе &Число - (ВЫРАЗИТЬ(&Число / 60 - 0.5 КАК ЧИСЛО(15, 0))) * 60 конец КАК Минуты
поместить ВТ
;

Выбрать Т.Часы,
    "час" + выбор когда (Т.Часы - ВЫРАЗИТЬ(Т.Часы / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 между 5 И 10) ИЛИ (Т.Часы - ВЫРАЗИТЬ(Т.Часы / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 = 0) ИЛИ (ВЫРАЗИТЬ(Т.Часы - 0.5 КАК ЧИСЛО(15, 0)) между 11 И 14) тогда "ов"
        когда Т.Часы - ВЫРАЗИТЬ(Т.Часы / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 = 1 тогда ""
        иначе "а"
        конец КАК ЧасыСтрока,
    Т.Минуты,
    "минут" + выбор когда (Т.Минуты - ВЫРАЗИТЬ(Т.Минуты / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 между 5 И 10) ИЛИ (Т.Минуты - ВЫРАЗИТЬ(Т.Минуты / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 = 0) ИЛИ (ВЫРАЗИТЬ(Т.Минуты - 0.5 КАК ЧИСЛО(15, 0)) между 11 И 14)  тогда ""
        когда Т.Минуты - ВЫРАЗИТЬ(Т.Минуты / 10 - 0.5 КАК ЧИСЛО(15, 0))*10 = 1 тогда "а"
        иначе "ы"
        конец КАК МинутыСтрока
из ВТ КАК Т

----------------------
Часы    ЧасыСтрока    Минуты    МинутыСтрока
2    часа    30    минут
----------------------
26 Fram
 
31.08.18
20:41
(25) не поленился же
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.