Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) форматирование отображения данных в ТП (число прочтений - 5604 )
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
форматирование отображения данных в ТП
02. Июня 2008 :: 06:37
Печать  
хотелось бы отформатировать отображение данных в колонках ТП. например, чтобы числа выводились с разделителем на триады. или формат вывода дат...

и еще 1 вопрос Улыбка где то в недрах форума видел упоминание о возможности инициализации значений полей ТП после получения данных от сервера. теперь не могу найти. или показалось?
т.е. типо получаешь ссылку на документ с сервака и уже в клиенте заполняешь колонки Дата, Автор...
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #1 - 02. Июня 2008 :: 07:30
Печать  
spenov писал(а) 02. Июня 2008 :: 06:37:
хотелось бы отформатировать отображение данных в колонках ТП. например, чтобы числа выводились с разделителем на триады. или формат вывода дат...

и еще 1 вопрос Улыбка где то в недрах форума видел упоминание о возможности инициализации значений полей ТП после получения данных от сервера. теперь не могу найти. или показалось?
т.е. типо получаешь ссылку на документ с сервака и уже в клиенте заполняешь колонки Дата, Автор...

Используя "ПриВыводеСтроки" рисуй все, что захочешь
  
Наверх
ICQ  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: форматирование отображения данных в ТП
Ответ #2 - 02. Июня 2008 :: 08:13
Печать  
спасибо, разобрался.

столкнулся с неожиданной проблемой. не пойму как отобразить время документа.
скл запросом получаю дату+время документа. и никак не осилю как вывести на экран. отображает только дату.
способ   
и.Получить("ДатаВремя"))+" "+ДанныеСтроки.Получить("Документ").ПолучитьВремя());

мне кажется не очень красивым Печаль
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #3 - 02. Июня 2008 :: 08:35
Печать  
Текст запроса в студию
  
Наверх
ICQ  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: форматирование отображения данных в ТП
Ответ #4 - 02. Июня 2008 :: 08:37
Печать  
с запросом все нормально. в QA отображает как надо. но если интересно, то вот:
     ТекстЗапроса="
     |SELECT
     |  журн.iddoc as [Документ $Документ], журн.idDocDef as [Документ_вид], журн.date_time_iddoc as [Позиция],
     |  dbo.get_doc_time(журн.date_time_iddoc) as [ДатаВремя],
     |  журн.$ОбщийРеквизит.Автор as [Автор $Справочник.Пользователи]
     |FROM
     |  _1SJOURN as журн
     |";

CREATE function get_doc_time(@date_time_iddoc varchar(50))
returns datetime
as begin
   declare @i int, @tval int, @v varchar(9), @h int
   set @v=substring(@date_time_iddoc,9,9)
   set @tval = 0
   set @i = 0
   while @i < len(@v) + 1 begin
     set @i = @i + 1
     set @tval = @tval + (CharIndex(SubString(@v, @i, 1), '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')   - 1)*Power(36,(len(@v) - @i))
   end
   return(dateadd(ss,@tval/10000,convert(datetime,left(@date_time_iddoc,8),112)))
end







  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #5 - 02. Июня 2008 :: 08:43
Печать  
Код
Выбрать все
     ТекстЗапроса="
     |SELECT
     |  журн.iddoc as [Документ $Документ], журн.idDocDef as [Документ_вид], журн.date_time_iddoc as [Позиция],
     |  CONVERT(char(20),dbo.get_doc_time(журн.date_time_iddoc),120 )as [ДатаВремя],
     |  журн.$ОбщийРеквизит.Автор as [Автор $Справочник.Пользователи]
     |FROM
     |  _1SJOURN as журн
     |";

 



Вот так попробуй
  
Наверх
ICQ  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: форматирование отображения данных в ТП
Ответ #6 - 02. Июня 2008 :: 08:54
Печать  
так показывает. я пробовал использовать 112, не работало. дальше эксперементировать не стал Улыбка

тем не менее, вопрос интересный. неужели в 1С нет способа показать дату+время?!
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #7 - 02. Июня 2008 :: 09:01
Печать  
spenov писал(а) 02. Июня 2008 :: 08:54:
так показывает. я пробовал использовать 112, не работало. дальше эксперементировать не стал Улыбка

тем не менее, вопрос интересный. неужели в 1С нет способа показать дату+время?!


Нет внутренних форматов у 1с для хранения Дата+время, есть просто дата или строка
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #8 - 02. Июня 2008 :: 09:02
Печать  
spenov писал(а) 02. Июня 2008 :: 08:54:
так показывает. я пробовал использовать 112, не работало. дальше эксперементировать не стал Улыбка



Естественно не работало 112 -  yymmdd  тут нету времени
  
Наверх
ICQ  
IP записан
 
spenov
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 119
Зарегистрирован: 18. Января 2008
Re: форматирование отображения данных в ТП
Ответ #9 - 02. Июня 2008 :: 09:06
Печать  
аааа, лоханулсо Печаль
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: форматирование отображения данных в ТП
Ответ #10 - 18. Октября 2008 :: 15:22
Печать  
В принципе, не проблема распарсить время и на клиенте.
Что-то типа _StrToId(substring(date_time_iddoc, 9, 6)) с последующим делением.
Вот, думаю: может, стоить завести типизацию "$Время" (или "$Время36") для этого (для преобразования в строку вида "12:17:23")?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #11 - 18. Октября 2008 :: 20:37
Печать  
аа! стоит. реально стоит. потому как не только для даты\времени документа это надо. как вспомню, сколько намучался с парсингом даты-времени в разных полях в оповещалках и письмах... ууу... хочу одним полем Подмигивание
  
Наверх
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #12 - 19. Октября 2008 :: 04:12
Печать  
kms писал(а) 18. Октября 2008 :: 15:22:
В принципе, не проблема распарсить время и на клиенте.
Что-то типа _StrToId(substring(date_time_iddoc, 9, 6)) с последующим делением.
Вот, думаю: может, стоить завести типизацию "$Время" (или "$Время36") для этого (для преобразования в строку вида "12:17:23")?

типизация $время пригодилась бы
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #13 - 19. Октября 2008 :: 10:42
Печать  
defcls.prm
Код
Выбрать все
class Время=Время.ert {} 


Время.ert
Код
Выбрать все
Перем ВремяДок;

//*******************************************
Процедура _SQLCreate(ДатаВремяИдДок) Экспорт
	Время   = _StrToId(Сред(ДатаВремяИдДок, 9, 6)) / 10000;
	Секунды = Время % 60;
	Время   = Цел(Время / 60);
	Минуты  = Время % 60;
	Часы    = Цел(Время / 60);

	ВремяДок = Формат(Часы, "Ч(0)2") + ":" + Формат(Минуты, "Ч(0)2") + ":" + Формат(Секунды, "Ч(0)2");
КонецПроцедуры

//*******************************************
Функция _GetCode()
	Возврат ВремяДок;
КонецФункции 


SQL
Код
Выбрать все
SELECT Журнал.DATE_TIME_IDDOC [Время $Класс.Время]
... 


С пивом потянет?  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: форматирование отображения данных в ТП
Ответ #14 - 19. Октября 2008 :: 14:10
Печать  
berezdetsky писал(а) 19. Октября 2008 :: 10:42:
defcls.prm
Код
Выбрать все
class Время=Время.ert {} 


Время.ert
Код
Выбрать все
Перем ВремяДок;

//*******************************************
Процедура _SQLCreate(ДатаВремяИдДок) Экспорт
	Время   = _StrToId(Сред(ДатаВремяИдДок, 9, 6)) / 10000;
	Секунды = Время % 60;
	Время   = Цел(Время / 60);
	Минуты  = Время % 60;
	Часы    = Цел(Время / 60);

	ВремяДок = Формат(Часы, "Ч(0)2") + ":" + Формат(Минуты, "Ч(0)2") + ":" + Формат(Секунды, "Ч(0)2");
КонецПроцедуры

//*******************************************
Функция _GetCode()
	Возврат ВремяДок;
КонецФункции 


SQL
Код
Выбрать все
SELECT Журнал.DATE_TIME_IDDOC [Время $Класс.Время]
... 


С пивом потянет?  Улыбка


Подазреваю со скоростью выполнения и расходом памяти будет не очень, но для небольших выборок конечно потянет
И сравнивать со строкой придется так: Строка(оВремя) = "12:10:45"
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать