Класс ДатаВремяПостроен на Microsoft Windows Common Controls-2 6.0 (SP4), файл эктивэкс C:\WINDOWS\system32\MSCOMCT2.OCX
Идея взята с
http://www.1cpp.ru/forum/YaBB.pl?num=1204718805,
автор - Kapet, за что ему огромное спасибо!!!
Подключается добавлением в defcls.prm следующих строк ....
//#if ! _class_ДатаВремя
class ДатаВремя = ДатаВремя.ert : АктивИкс
{
//#define _class_ДатаВремя
Число Инициализация(Знач ГлобальныйКонтекст КонтФормы, Знач Строка ИмяАтрибута = "", Знач Строка ИмяЗаменяемогоАтрибута = "");
};
//#endif
Реализована недостающая в 1Сv7.7 возможность работы с типом данных "ДатаВремя" как визуально (на форме) так и в Запросах. В форме может заменять собой стандартные реквизиты типа 'Дата'. Например для замены ДатаДок в любом документе нужно добавить следующее
Перем ДатаВремя;
Процедура ПослеОткрытия()
ДатаВремя = СоздатьОбъект("ДатаВремя");
ДатаВремя.Инициализация(Контекст);
КонецПроцедуры
И ВСЕ!!!! Единственное НО! У уже записанных докуемнтов время изменить нельзя! (может быть позже как-то доделаю .... извращенным способом
) Для работы в отчетах нужно чуть больше телодвижений. К примеру у вас есть реквизиты ВыбНачДата и ВыбКонДата
Перем ВыбНачПериода, ВыбКонПериода;
Процедура ПослеОткрытия()
ВыбНачПериода = СоздатьОбъект("ДатаВремя");
ВыбНачПериода.Инициализация(Контекст, "ЭУВыбНачПериода", "ВыбНачДата");
ВыбКонПериода = СоздатьОбъект("ДатаВремя");
ВыбКонПериода.Инициализация(Контекст, "ЭУВыбКонПериода", "ВыбКонДата");
ВыбКонПериода.Время = "23:59:59";
КонецПроцедуры
// Далее в самой процедуре запроса....
ВыбНачПоз = ВыбНачПериода.Позиция; ВыбКонПоз = ВыбКонПериода.Позиция;
ТекстЗапроса="
|Период с ВыбНачПоз по ВыбКонПоз;
Т.е. нужно указать какой реквизит и на какой реквизит меняем. В документе это все делается по умолчанию.
Теперь можно работать с типом данных ДатаВремя почти что без проблем (если не считать изменение времени записанного документа)
Если нужен еще какой функционал, к примеру сложение, вычитание, сравнение и т.п. - говорите, доделаю .....