MobileSMARTS Получение даты+времени документа

Потребовалось получение из системы MobileSmarts даты и времени окончания документа. Но вот не задача, в 1с 77 при обращении к методу компоненты

public System.DateTime FinishedDate [ДатаЗавершения] {get;}

возвращается тип «Дата», а время обрезается.

Пришлось из XML тянуть нужные данные. Обрати внимание, тут есть замена символа, иначе может быть ошибка (у меня это как раз и было)

//-->> Получение Даты+времени создания, изменения, завершения
Функция фПолучитьДатуИВремяСоздания(ДокументТСД)
	лРез="";
	Попытка
		xml_текст = Коннектор.ToXml(ДокументТСД);		
		xml_текст = СтрЗаменить(xml_текст,"",""); // иначе будет ошибка при загрузке из строки ниже
		
		xml = СоздатьОбъект("AddIn.XMLParser");
		xmlДокумент= xml.СоздатьДокумент();
		xmlДокумент.ЗагрузитьИзСтроки(xml_текст);
		
		лЗначение = xmlДокумент.ВыбратьУзел("Document");
		лДата = лЗначение.ПолучитьАтрибут("createDate");
		лДата = Лев(лДата,19);
		лДата = СтрЗаменить(лДата,"T"," ");
		лДата = СтрЗаменить(лДата,":","-");
		лРез=лДата;
	Исключение
	КонецПопытки;
	
	Возврат лРез;
КонецФункции

Функция фПолучитьДатуИВремяИзменения(ДокументТСД)
	лРез="";
	Попытка
		xml_текст = Коннектор.ToXml(ДокументТСД);
		xml_текст = СтрЗаменить(xml_текст,"",""); // иначе будет ошибка при загрузке из строки ниже
		
		xml = СоздатьОбъект("AddIn.XMLParser");
		xmlДокумент= xml.СоздатьДокумент();
		xmlДокумент.ЗагрузитьИзСтроки(xml_текст);
		лЗначение = xmlДокумент.ВыбратьУзел("Document");
		лДата = лЗначение.ПолучитьАтрибут("lastChangeDate");
		лДата = Лев(лДата,19);
		лДата = СтрЗаменить(лДата,"T"," ");
		лДата = СтрЗаменить(лДата,":","-");
		лРез=лДата;
	Исключение
	КонецПопытки;
	
	Возврат лРез;
КонецФункции

Функция фПолучитьДатуИВремяЗавершения(ДокументТСД)
	лРез="";
	Попытка
		xml_текст = Коннектор.ToXml(ДокументТСД);
		xml_текст = СтрЗаменить(xml_текст,"",""); // иначе будет ошибка при загрузке из строки ниже
		
		xml = СоздатьОбъект("AddIn.XMLParser");
		xmlДокумент= xml.СоздатьДокумент();
		xmlДокумент.ЗагрузитьИзСтроки(xml_текст);
		лЗначение = xmlДокумент.ВыбратьУзел("Document/States/DocumentState");
		лДата = лЗначение.ПолучитьАтрибут("finishedDate");
		лДата = Лев(лДата,19);
		лДата = СтрЗаменить(лДата,"T"," ");
		лДата = СтрЗаменить(лДата,":","-");
		лРез=лДата;
	Исключение
	КонецПопытки;
	
	Возврат лРез;
КонецФункции
//<<--

Запись на github https://github.com/LLIKIPER/it-toolbox/blob/main/1c/7.7/MobileSmarts/Get%20DateTime%20Created%20modified%20Finished.md

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *