Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Класс "ДатаВремяДокумента", на форме а-ля 1С.8Х (число прочтений - 3718 )
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Класс "ДатаВремяДокумента", на форме а-ля 1С.8Х
05. Марта 2008 :: 12:06
Печать  
Масенький класс "ДатаВремяДокумента" позволяет иммитировать поле даты документов а-ля 1С 8.Х, т.е. в поле кроме даты присутствует и время документа, доступное для редактирования.
Построен на Microsoft Windows Common Controls-2 6.0 (SP4), файл эктивэкс C:\WINDOWS\system32\MSCOMCT2.OCX. Откуда он у меня взялся и откуда берется вообще - не скажу, не знаю, винду не переустанавливал уже года три, напихано всякого навалом. Может с XP SP2, может с офисом 2003, может с девелоперским скулем или с каким фреймворком. Не знаю...

Поле даты и времени документа вполне редактируемо, однако проблема установки времени документа согласно введенным данным в это поле не решена  ввиду известного ограничения платформы 1С77 и, возможно, кривых ручек. Если корректно решаема вообще... В общем, здесь наверное требуется Ваша помощь, совет, комментарий, ссылочка, пинок или вообще обвинение в плагиате... Улыбка

Определение класса:
Код
Выбрать все
класс Общие.Форма.ДатаВремяДокумента = Общие.Форма.ДатаВремяДокумента.ert
{
	Void Create(ContForm, String ProgID);
	Void SetUp(ContForm);
	Void Change(ContForm);
}; 


ЗЫЗЫ: Пример использования (имя реквизита контейнера эктивэкса -  "ДатаВремяДокумента") :
Код
Выбрать все
Перем ДатаВремя;
//-------
Процедура ПослеСозданияФормы()
	ДатаВремя=СоздатьОбъект("Общие.Форма.ДатаВремяДокумента");
	ДатаВремя.Create(Контекст,"ДатаВремяДокумента");
	Если Выбран()=1 Тогда
		ДатаВремя.SetUp(Контекст);
	КонецЕсли;
КонецПроцедуры
//------
Процедура ДатаВремяДокумента_Change()
	ДатаВремя.Change(Контекст);
КонецПроцедуры 



Скриншот во вложении

ЗЫЗЫЗЫ разработчикам: 1С++ почему-то ругается на неудачное создание объекта АктивИкс в случае, если применяется его англоязычное наименование "ActiveX", как описано в документации. Т.е. при попытке СоздатьОбъект("ActiveX") вылетает ошибка...
  

DOV1.JPG ( 19 KB | Загрузки )
DOV1.JPG
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Класс "ДатаВремяДокумента", на форме а-ля 1С.8
Ответ #1 - 05. Марта 2008 :: 12:07
Печать  
Еще скриншот
  

DOV2.JPG ( 30 KB | Загрузки )
DOV2.JPG
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Класс "ДатаВремяДокумента", на форме а-ля 1С.8
Ответ #2 - 05. Марта 2008 :: 12:08
Печать  
Сам класс
  

ClassDocDateTime.rar ( 6 KB | Загрузки )
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ДатаВремяДокумента", на форме а-ля 1С.8
Ответ #3 - 06. Марта 2008 :: 19:20
Печать  
О_о выдумщик...
  
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ДатаВремяДокумента", на форме а-ля 1С.8
Ответ #4 - 25. Декабря 2009 :: 15:05
Печать  
Kapet писал(а) 05. Марта 2008 :: 12:08:
Сам класс

Спасибо огромное! Как-раз понадобилась эта фича ..... помню что где-то видел .... и еле нашел Улыбка
Переделал много чего в самом классе, упростил создание объекта и замену стандартной ДатыДок, сделал обработку формулы атрибута ДатаДок и т.д. ...
Хотел еще спросить - можно как-то отловить событие типа "потеря фокуса" А то событие "Change" взывается и по делу и без дела..... покрутил месяц вперед-назад - оно уже сработало. Хотя дату я не выбрал, так просто полистал
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ДатаВремяДокумента", на форме а-ля 1С.8
Ответ #5 - 26. Декабря 2009 :: 06:21
Печать  
avgreen писал(а) 25. Декабря 2009 :: 15:05:
Переделал много чего в самом классе, упростил создание объекта и замену стандартной ДатыДок, сделал обработку формулы атрибута ДатаДок и т.д. ...

Выкладывай, нужная вещь.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать