Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Киньте примерчик. (число прочтений - 4065 )
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Киньте примерчик.
15. Августа 2006 :: 01:13
Печать  
Не могу понять как использовать "ТабличноеПоле" и "ПоставщикДанныхODBC" , может кто нить выложит примерчик, хотя бы простенький.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Киньте примерчик.
Ответ #1 - 15. Августа 2006 :: 03:09
Печать  
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Киньте примерчик.
Ответ #2 - 15. Августа 2006 :: 05:56
Печать  
А что значит вот это ? "оТП = СоздатьОбъект("ТСправочник.Форма.ФормаСписка");"
Откуда берется ТСправочник, а если мне нужен Журнал документов, тогда как быть ?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Киньте примерчик.
Ответ #3 - 15. Августа 2006 :: 09:00
Печать  
HeiHeShang писал(а) 15. Августа 2006 :: 05:56:
А что значит вот это ? "оТП = СоздатьОбъект("ТСправочник.Форма.ФормаСписка");"
Откуда берется ТСправочник, а если мне нужен Журнал документов, тогда как быть ?

Ну это просто класс такой....  Там же всё что надо в МДшнике есть...
Если тебе надо журнал - то пишешь запрос к журналу, и всех делов. Табличному полю пофигу, справочник это, журнал, или вообще остатки из регистров. Ему главное запрос составить.
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Киньте примерчик.
Ответ #4 - 15. Августа 2006 :: 09:40
Печать  
Так я не пойму как писать.
     оТП = СоздатьОбъект("ТСправочник.Форма.ФормаСписка");
     оАтрФормы.СоздатьЭлементУправления(оТП);
     
     оТП.Инит(Контекст, "Журнал", ТекстЗапроса(), ТекстЗапросаПлоский());
"оТП" этот объект надо создать в любом случае, в конфиге не вижу что это. А вместо этого можно что нить создать.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Киньте примерчик.
Ответ #5 - 16. Августа 2006 :: 09:41
Печать  
оТП - это объект типа "ТСправочник.Форма.ФормаСписка" (это класс такой).  Класс предназначен для работы со справочником, так что для журнала документов это не пойдёт. Надо делать свой класс, или можно вообще без класса обойтись. В случае без класса объект создаётся примерно так:
Код
Выбрать все
	оФорма = СоздатьОбъект("РасширениеФормы");
	оТП = оФорма.ПолучитьАтрибут("кнТаблица_").СоздатьЭлементУправления("ТабличноеПоле");
	Картинка = СоздатьОбъект("Картинка");
	//Картинка.Загрузить("Дерево");
	Картинка.Загрузить("ДеревоДокументов");
	Картинка.РежимРисования(1);

	//=========== Колонки =========================
	Колонка = оТП.Колонки.Добавить("Картинка");
	Колонка.Ширина = 20;
	Колонка.ИзменениеРазмера = 0;
	Колонка.УстановитьКартинкиСтрок(Картинка, 16);

	Колонка = оТП.Колонки.Добавить("ВидДок");
	Колонка.Заголовок = "Вид";
	Колонка.Данные = "ВидДок";

	Колонка = оТП.Колонки.Добавить("ДатаДок");
	Колонка.ИзменениеРазмера = 0;
	Колонка.ГоризонтальноеВыравнивание = 3;
	Колонка.Заголовок = "Дата";
	Колонка.Данные = "ДатаДок";
	........

	оИсточник = СоздатьОбъект("ODBCDataProvider.MSSQL");
	оИсточник.БазаДанных = СоздатьОбъект("ODBCDatabase");
	оИсточник.УстТекстЗапроса(ТекстЗапроса());

	//======  Поля  =====================================
	оИсточник.Поля.Добавить("Картинка").Автоудаление = 0;
	Поле = оИсточник.Поля.Добавить("ДатаДок");
	Поле.ТипБыстрогоПоиска = 1;
	оИсточник.Поля.Добавить("ВидДок").ТипБыстрогоПоиска = 1;
	оИсточник.Поля.Добавить("IDDocDef").Автоудаление = 0;
	оИсточник.Поля.Добавить("IDDoc").Автоудаление = 0;
	оИсточник.Поля.Добавить("Date_Time_IDDoc").Автоудаление = 0;
	оИсточник.УстИДПоле("Date_Time_IDDoc");
	оИсточник.УстКлючПорядка("Date_Time_IDDoc");

	оТП.ТаймаутОбновления = 3;
	оТП.РежимВыделенияСтроки = 1;
	оТП.ПоставщикДанных = оИсточник;
	оТП.ОбновитьСтроки();
 

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Киньте примерчик.
Ответ #6 - 22. Августа 2006 :: 04:23
Печать  
Сдела, при открытии вылазит такая ошибка "Для типизации поля "Док" ,не найдено типизирующее поле"
ТекстЗапроса="SELECT ' ' as Картинка,Журнал.IDDoc as [Док $Документ],
    |Журнал.IDDocDef as ВидДок,Журнал.Date_Time_IDDoc as Date_Time_IDDoc,Журнал.DATE_TIME_IDDOC as ДатаДок
     |FROM _1SJourn as Журнал
     |";
Вот текст запроса. Подскажите чего не хватает ?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Киньте примерчик.
Ответ #7 - 22. Августа 2006 :: 05:28
Печать  
ТекстЗапроса="SELECT ' ' as Картинка,Журнал.IDDoc as [Док $Документ],
    |Журнал.IDDocDef as Док_вид,Журнал.Date_Time_IDDoc as Date_Time_IDDoc,Журнал.DATE_TIME_IDDOC as ДатаДок
     |FROM _1SJourn as Журнал
     |";

А вообще, в запросах для ТП лучше не использовать типизацию. Лучше вытягивать только текстовые и числовые поля. Быстрее будет.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать