Имя: Пароль:
1C
 
на форме поле ввода тип - дата, состав - дата и время
0 колодина
 
14.09.06
08:56
каким образом обеспечить выбор не только даты, но и времени. спасибо.
1 avmlvm
 
14.09.06
08:58
(0) а для выбора времени ты чЁ хочешь? Интерактивное изображение будильника? :-)
2 колодина
 
14.09.06
08:58
(1) да хоть что-нибудь... мне кажется - в типовой где-то видела что-то похожее...
3 avmlvm
 
14.09.06
09:02
(2) Ну не знаю... Не встречал.. хотя безусловно можно поизвращаться и что-либо "подцепить", но какой смысл???
4 колодина
 
14.09.06
09:04
смысл? большой... мне надо, чтобы пльзователь время назначал... если пальуом тыкать в клавиши - ошибется...
5 avmlvm
 
14.09.06
09:14
(4) (задумчиво) а чем тыканье пальцем более "ошибочно", чем тыканье мышкой?

ЗЫ.. ты можешь проверять время на 00:00:00 и если это так, требовать явного ввода правильного времени :-)
6 колодина
 
14.09.06
09:15
(5) попробуй время ввести рядом с датой - это трудно... проще - выбрать.
7 НочнойСнайпер
 
14.09.06
09:16
(6) сделать два поля - дата и время
8 колодина
 
14.09.06
09:17
(7) первое, что приходит в голову...
9 ZolotarevAA
 
14.09.06
09:19
(6) Регулярно ввожу в консоли 23 59 59 - нафтыкался уже...
10 НочнойСнайпер
 
14.09.06
09:20
(8)при изменении даты или времени
ЭтотОбъект["НужнаяДата"]=ЭлементыФормы["НужнаяДата"+"_Дата"].Значение+(ЭлементыФормы["НужнаяДата"+"_Время"].Значение-'00010101');
11 колодина
 
14.09.06
09:21
(10) и чего?
12 Neco
 
14.09.06
09:21
Можно конечно к полю ввода привенить список с выбором времени
13 Asmody
 
14.09.06
09:23
(0) а ты как хочешь - чтобы после календаря что-нибудь выскакивало?
\
14 колодина
 
14.09.06
09:24
(13) угу....
15 колодина
 
14.09.06
09:35
такое у меня ощущение, что видела где-то... может, во сне?
16 ZolotarevAA
 
14.09.06
09:38
(15) В 7.7 "Изменить время документа..."?
17 Asmody
 
14.09.06
09:41
(13) вот такой код:


Перем мЭтоВыбор;

Процедура СписокВремен(Список, Шаг=1800) // по умолчанию шаг=30 мин
   Список.Очистить();
   нДата=НачалоДня(ПолеВвода1);
   Пока нДата<=КонецДня(ПолеВвода1) Цикл
       Список.Добавить(нДата);
       нДата=нДата+Шаг;
   КонецЦикла;
КонецПроцедуры

Процедура ПолеВвода1НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   СписокВремен(Элемент.СписокВыбора);
КонецПроцедуры

Процедура ПолеВвода1НачалоВыбора(Элемент, СтандартнаяОбработка)
   мЭтоВыбор=Истина;        
КонецПроцедуры

Процедура ПолеВвода1ПриИзменении(Элемент)
   Если мЭтоВыбор Тогда
       мЭтоВыбор=Ложь;
       //выбрать дату из списка
       Список=Новый СписокЗначений;
       СписокВремен(Список);
       ВыбЗнач=ВыбратьИзСписка(Список);
       Если ВыбЗнач<>Неопределено Тогда
           ПолеВвода1=ВыбЗнач.Значение;
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры

мЭтоВыбор=Ложь;


у ПоляВвода установлены флаги "Кнопка выбора" и "Кнопка списка выбора"
18 колодина
 
14.09.06
09:42
(16) может быть.... хочу в 8-ке...
(17) спасибо за код. встроенной возможности у платформы точно нету?
19 ares
 
14.09.06
09:53
Для смеху представлю код, написанные для подсчета оставшегося времени + часы
, форму догоните сами, там три поля (Текущее время, Контрольное время, оставшееся время до контрольного)

Процедура ВремяЭл() Экспорт
   ЭлементыФормы.ПолеВвода1.Значение = Формат(ТекущаяДата(), "ДЛФ=В");
КонецПроцедуры

Процедура ВремяЭл2() Экспорт
   ОбСекунды=ЭлементыФормы.ПолеВвода2.Значение-ТекущаяДата();
   Часы=Строка(Цел(ОбСекунды/3600));
   Минуты=Строка(Цел((ОбСекунды-(Часы*3600))/60));
   Секунды=Строка(ОбСекунды-(Часы*3600)-(Минуты*60));
   Если СтрДлина(Часы)=1 Тогда
       Часы="0"+Часы;
   КонецЕсли;    
   Если СтрДлина(Минуты)=1 Тогда
       Минуты="0"+Минуты;
   КонецЕсли;    
   Если СтрДлина(Секунды)=1 Тогда
       Секунды="0"+Секунды;
   КонецЕсли;    
   ЭлементыФормы.ПолеВвода3.Значение=(Часы+":"+Минуты+":"+Секунды);
КонецПроцедуры

Процедура ПриОткрытии()
   ПодключитьОбработчикОжидания("ВремяЭл",1);Дня(ТекущаяДата())+60*60*18; //Не работает, незнаю почему?
   ЭлементыФормы.ПолеВвода2.Значение=ТекущаяДата();
   ПодключитьОбработчикОжидания("ВремяЭл2",1);
КонецПроцедуры
20 колодина
 
14.09.06
09:55
мне непонятно, почему отображение сделали в виде дата+время, а выбор - нет...
21 ZolotarevAA
 
14.09.06
09:59
(20) Мне непонятно, почему это напрягает.
22 ares
 
14.09.06
09:59
(19)+ насчет строчки

ПодключитьОбработчикОжидания("ВремяЭл",1);Дня(ТекущаяДата())+60*60*18; //Не работает, незнаю почему?

Я уже не помню, там помоему автоматом не проставлялось какоето время, я ее не открывал уже месяц или больше, ну как обычно, после того как ниписал она сталу не нужна мне, там в поле контрольное время (ПолеВвода2) нужно вручную вводить время , например 18:00:00 ну типо сколько времяни осталось до конца рабочего времни. В (ПолеВвода1) там текущее время, в ПолеВвода3 считаеться оставшееся

P/S/ Может быть можно улучшить код или написать заново более конкретный, но мне не охото, я так для поддержания темы написал ))
23 ares
 
14.09.06
10:00
(22) + хотел будильник написать сюда еще, но как уже писал, охладел к этой обработке
24 колодина
 
14.09.06
10:01
(21) напрягает конечно... вводить время...
25 ares
 
14.09.06
10:03
(24) это да, когда время всегда одинаково, а когда нет ?
26 колодина
 
14.09.06
10:04
(25) в том-то и дело.... но выпающий список - тоже не слишком красиво... вот такую же табличку, как для выбора даты - это здорово...
27 Asmody
 
14.09.06
10:06
(26) и что будет в этой табличке?
28 ares
 
14.09.06
10:07
Ну и какая у тебя таблица будет,на сколько квадрадиков поделиться , на 60*60*24 это при учете если мне нужно узнать сколько времени осталось до (Например 17:34:05)
29 ares
 
14.09.06
10:09
(28)+ 86400, ну если секунды опустить то 1440, это заместо обычных (30-40) в дате
30 колодина
 
14.09.06
10:11
(27) время суток с заданной точностью....
31 ares
 
14.09.06
10:14
(30) Дерзайте мисс, или миссис ? ))
32 Asmody
 
14.09.06
10:15
(30) допустим, нужна точность в 5 минут. тогда это будет табличка 24х12... мдя...
33 ZolotarevAA
 
14.09.06
10:15
(30) Ну так сделай эту табличку... хотя и некрасиво.
34 колодина
 
14.09.06
10:16
(32) такая точность для целей управления вряд ли нужна... а вот точность до получаса - важна... как сделано в календаре пользователя, но там - большая табличка
35 ares
 
14.09.06
10:17
(30)а не проще позиционировать на Поле Контрольного времени  курсор,при открытии, типо запустил и с клавы ввел 18, а нули она сама проставил, ну если нужно минуты, чем открывать форму там кликать на время суток потом на выбор еще чего то
36 Asmody
 
14.09.06
10:18
(34) как еще один _некрасивый_ вариант могу предложить бегунок...
37 колодина
 
14.09.06
10:19
конечно лучше всего - циферблат...
38 Asmody
 
14.09.06
10:30
(37) вот тут: http://www.akzhan.midi.ru/iarchitect/mshame.htm где-то в серединке про циферблат написано...
39 колодина
 
14.09.06
10:33
(38) какая ссылочка хорошая... спасибо.
40 Asmody
 
14.09.06
10:39
(39) ага, старенькая только...
41 колодина
 
14.09.06
10:40
да, с 2000 года много воды утекло... и не только воды...
42 PaulBC
 
14.09.06
10:47
может из ActiveX что подойдет?
43 колодина
 
14.09.06
10:48
(42) это мысль....
44 колодина
 
14.09.06
13:27
бегунок в принципе неплохо... а вот как бы нанести на него разметку, а?
45 колодина
 
14.09.06
13:36
поднимаю .... я имею в виду как-то на бегунок нанести разметку - часы, минуты...
46 Neco
 
14.09.06
13:47
(45) Вот посмотри обработка-пример:
http://proba1c.narod.ru/downloads/Calendar.epf
47 колодина
 
14.09.06
13:58
(46) большое спасибо тебе, дорогой....
48 колодина
 
14.09.06
14:01
ах, как красиво сделана обработка.... посмотрите, граждане...
49 fishca
 
14.09.06
14:04
Уродство полное, если честно, абсолютно не понравилось :(((((((((((
50 колодина
 
14.09.06
14:05
(49) сделай лучше - с удовольствем посмотрю...
51 fishca
 
14.09.06
14:14
(50) тебе надоть ты и делай, но я бы сделал для времени отдельные поля для часов минут, по крайней мере выглядело бы эстетичней. Хотя на вкус и цвет товарищей нет :))
52 колодина
 
14.09.06
14:16
(51) критиковать всегда легче... чем делать...
53 ares
 
14.09.06
14:18
(51)А мне кажеться реальная замена списка отдельными полями, только изначально еще проще все было ))
54 колодина
 
14.09.06
14:19
т.е. считаете, что проще сделать поле - дата, поле - часы и поле - минуты? нет, граждане...
55 ares
 
14.09.06
14:23
(54)Я тольео не понимаю чем изначально тебе мое поле не понравилось, ну вводишь ручками время и не паришся, или вы уже отдельную тему взяли про то как лучше время указывать?
56 колодина
 
14.09.06
14:32
(55) пользователю, тем более руководителю проще выбирать, а не вводить...
57 ares
 
14.09.06
14:33
(55)+У меня возникло ощущение, что госпожа Колодина меня почему то игнорирует
58 колодина
 
14.09.06
14:34
(57) не игнорирую нисколько.... каждому благодарна за совет и помощь...
59 ares
 
14.09.06
14:35
(57) Беру свои слова обратно,
(56) Это не всем и не всегда, насколько я знаю руководители особо с 1С не работают, работают рядовые бухгалтера, ну главный бухгалтер так что на высокое начальство ориентироваться на мой взгляд лишнее
60 колодина
 
14.09.06
14:36
(59) я делаю бизнес-процесс... он к бухгалтерии мало отношения имеет... планировать задания будет руководитель. хочу максимально облегчить использование.
61 ares
 
14.09.06
14:38
(60) ну тады ладно, тогда действительно должно быть приятно глазу , особенно глазу начальника ))
62 колодина
 
14.09.06
14:39
вот как бы на бегунке нанести разметку.... черт, куда не ткнешься - ничего нельзя...
63 ares
 
14.09.06
14:41
А в бегунке вместе с цифрами забей "---" вот тебе и разметка. НАдеюсь то что я представил когда прочитал "Бегунок" отражает действительный смысл ))
64 DrWatson
 
14.09.06
14:41
Никак. Надписи поверх нанести
65 колодина
 
14.09.06
14:44
бегунок - это полоса регулирования... есть такой элемент управления...
никак там ничего не нанесешь...
(64) а как это - поверх?
66 DrWatson
 
14.09.06
14:47
(65) Поставить элемент формы - надпись. Если порядковый номер больше, то они будут поверх, если меньше, то бегунок их перекроет. 3-ий вариант: надписи пониже. 4-ый: прозрачный фон бегунка.
67 Simod
 
14.09.06
14:48
колодина, у тебя сертификат есть?
68 колодина
 
14.09.06
14:48
(66) прозрачный фон - это интересно... а потом подбирать чтобы совпадало... какое занятие, увлекательное...
69 колодина
 
14.09.06
14:49
(67) есть , а что?
70 колодина
 
14.09.06
14:49
+(69) хочешь сказать, что мои вопросы - простые такие? все знают кроме меня?
71 Бриарей
 
14.09.06
14:50
(65) Думаю, начальство скорее оценит, когда некий IA будет сам подставлять нужное время. А вовсе не визульные бантики.
72 Бриарей
 
14.09.06
14:51
+(71) В смысле AI. Ну вы поняли ;-)
73 RomaH
 
naïve
14.09.06
14:51
а типовая УТ чем не подходит?
случайно наткнулся:
// Процедура инициирует диалог выбора времени.
//
// Параметры
//  Форма - Форма, в которой производится выбор
//  ДатаВремен - дата для выбора времени
//  ТекЭлемент - элемент формы
//  ПолныйГод - булево, показывать год 4-мя цифрами или 2-мя
//
// Возвращаемое значение:
//  НЕТ
//
Процедура ВыбратьВремяДня(Форма, ДатаВремен, ТекЭлемент, Пользователь, ПоГрафику = Истина, ПолныйГод = Истина) Экспорт

   ДлинаЧаса = 3600;
   
   Если ПоГрафику Тогда
       СтруктураРабочегоВремени = ОпределитьНачалоИОкончениеРабочегоДняПользователя();
       
       НачалоРабочегоДняКонстанта    = СтруктураРабочегоВремени.ДатаНачала;
       ОкончаниеРабочегоДняКонстанта = СтруктураРабочегоВремени.ДатаОкончания;
   Иначе
       НачалоРабочегоДняКонстанта      = '00010101000000';
       ОкончаниеРабочегоДняКонстанта   = '00010101235959';
   КонецЕсли;
       
   СписокВремен = Новый СписокЗначений;
   НачалоРабочегоДня = НачалоЧаса(НачалоДня(ДатаВремен) + Час(НачалоРабочегоДняКонстанта) * ДлинаЧаса + Минута(НачалоРабочегоДняКонстанта)*60);
   ОкончаниеРабочегоДня = КонецЧаса(НачалоДня(ДатаВремен) + Час(ОкончаниеРабочегоДняКонстанта) * ДлинаЧаса + Минута(ОкончаниеРабочегоДняКонстанта)*60) - ДлинаЧаса;

   а = 0;
   ВремяСписка = НачалоРабочегоДня;
   Пока НачалоЧаса(ВремяСписка) <= НачалоЧаса(ОкончаниеРабочегоДня) Цикл
       ВремяСписка = НачалоРабочегоДня + а * ДлинаЧаса / 2; // по полчаса
       СписокВремен.Добавить(ВремяСписка, Формат(ВремяСписка,"ДФ='дд.ММ.гг" + ?(ПолныйГод,"гг","") + " ЧЧ:мм'"));
       а = а + 1;
   КонецЦикла;

   НачальноеЗначение = СписокВремен.НайтиПоЗначению(ДатаВремен);
   Если НачальноеЗначение = Неопределено Тогда
       ВыбранноеВремя = Форма.ВыбратьИзСписка(СписокВремен, ТекЭлемент);
   Иначе
       ВыбранноеВремя = Форма.ВыбратьИзСписка(СписокВремен, ТекЭлемент, НачальноеЗначение);
   КонецЕсли;

   Если ВыбранноеВремя <> Неопределено Тогда
       ДатаВремен = ВыбранноеВремя.Значение;
   КонецЕсли;
   
КонецПроцедуры // ВыбратьВремя()
74 колодина
 
14.09.06
14:53
никто не знает нужное время.... его знает только клиент
75 RomaH
 
naïve
14.09.06
14:53
прикольно, эта процедура ниоткуда не вызывается :(
так что проверить негде
76 fishca
 
14.09.06
14:57
Помещаем поле календаря, а рядом внизу, вверху(добавить свое) друг рядом с другом поля для выбора часов и минут у этих полей стрелки регулирования и все дела. Руководитель будет доволен, т.к. это будет стандартный выбор как винде. В делфи тоже нету такого элемента управления :) . Можно сделать текстовое поле со стрелками регулирования, а при выделении нужной части времени(часы, минуты) изменять ее при нажатии на стрелки :) будет ваще как в винде.
77 Бриарей
 
14.09.06
14:59
(74) Зато (71) гораздо более полезное приложение сил ;-)
78 колодина
 
14.09.06
15:02
(77) так неоткуда взять это самое время... его клиент по телефону скажет...
79 Бриарей
 
14.09.06
15:06
(78) Я не думаю, что ваши клиенты абсолютно непредсказуемые люди ;-)
80 колодина
 
15.09.06
06:10
(79) предсказаниями заниматься? можно наверное... отдельный блок создавать придется... и алгоритм предсказаний разрабатывать...
81 Бриарей
 
15.09.06
09:07
(80) Ну, дык (71) ;-)
82 колодина
 
15.09.06
09:13
(81) рыбонька, так ОТКУДА узнать нужное время? вот вам позвонил клиент и сказал - хочу встретиться в 14-30 завтра... откуда это можно узнать - что именно он скажет?
83 Бриарей
 
15.09.06
09:21
(82) Это зависит от силы желания узнать.
84 колодина
 
15.09.06
09:22
(83) когда он сказал - тогда и узнали... пока не сказал - невозможно это узнать. разве я не права?
85 Бриарей
 
15.09.06
09:23
+(83) Хоть экстрасенса наймите ;-)
86 колодина
 
15.09.06
09:25
(85) О........ вопросов больше не имею....
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс