Переключение на Главную Страницу Страницы: [1] 2 3 ... 36 ОтправитьПечать
Очень популярная тема (более 25 ответов) TableDoc (число прочтений - 257354 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
TableDoc
27. Апреля 2007 :: 15:48
Печать  
TableDoc - внешняя компонента для работы с табличным документом (Таблица) системы 1С:Предприятие 7.7

ВК реализует два класса: МенеджерТабличногоДокумента и элемент управления ПолеТабличногоДокумента.

МенеджерТабличногоДокумента - класс для управления некоторыми параметрами состояния любого табличного документа. Работает с объектом типа "Таблица".

ПолеТабличногоДокумента - элемент управления представляющий из себя атрибут формы отображающий представление (View) стандартного 1С-объекта Таблица.
Класс ПолеТабличногоДокумента реализует интерфейс CV7Control, что позволяет осуществлять создание ЭУ посредством ВК 1C++. Например при помощи метода Форма::СоздатьЭлементУправления. См. описание соответствующих методов в документации по 1С++.

ps
Т.е. в части ПолеТабличногоДокумента эта ВК является как бы плагином для 1с++
« Последняя редакция: 09. Февраля 2013 :: 05:42 - trad »  

tabledoc_0_1_1_45.rar ( 181 KB | Загрузки )

1&&2&&3
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #1 - 27. Апреля 2007 :: 15:55
Печать  
"Эй, скрипач, ты горяч.."

- RTTI рулит Класс
- я в восхищении Ужас
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #2 - 27. Апреля 2007 :: 15:57
Печать  
а, ум. опс. хм.
Это, пример можно?
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #3 - 27. Апреля 2007 :: 16:01
Печать  
Код
Выбрать все
Процедура ПриОткрытии()
	_Форма=СоздатьОбъект("Форма");
	_Форма.УстановитьФорму(Форма);
КонецПроцедуры

Процедура ФормаПриСоздании(_Форма)
	тчет);
	гТДОтчет.Таблица.Опции(0,0,2,0);
	гТДОтчет.Таблица.ТолькоПросмотр(1);
КонецПроцедуры 

« Последняя редакция: 04. Мая 2007 :: 14:57 - trad »  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #4 - 27. Апреля 2007 :: 16:04
Печать  
Код
Выбрать все
Перем ТабМенеджер;
Перем ТабМенеджер2;
Перем Таб;
Перем Таб2;

Процедура СделатьЯчейкуВидимой()
	ТабМенеджер.Выделить(Стр,Кол);
	ТабМенеджер.СделатьЯчейкуВидимой(Стр,Кол);
	Таб.Показать();
КонецПроцедуры

Процедура ПрокрутитьВЯчейку()
	ТабМенеджер.Выделить(Стр,Кол);
	ТабМенеджер.ПрокрутитьВЯчейку(Стр,Кол);
	Таб.Показать();
КонецПроцедуры

Процедура Выделить()
	ТабМенеджер.Выделить(Стр,Кол);
	Таб.Показать();
КонецПроцедуры

Процедура ВыделитьЕще(Режим)
	ТабМенеджер.ВыделитьЕще(Стр,Кол);
	Таб.Показать();
КонецПроцедуры

Процедура ПолучитьВыделенные()
	ОчиститьОкноСообщений();
	ТЗ=ТабМенеджер.ПолучитьВыделенные();
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку()=1 Цикл
		Сообщить(""+ТЗ.ТипОбласти+": "+ТЗ.R1+"х"+ТЗ.C1+" - "+ТЗ.R2+"х"+ТЗ.C2);
	КонецЦикла;
	Таб.Показать();
КонецПроцедуры

Процедура КопироватьВыделение()
	ТабМенеджер2.ВыделитьПоТЗ(ТабМенеджер.ПолучитьВыделенные());
	Таб2.Показать();
КонецПроцедуры

Процедура ПриОткрытии()
	глЗагрузитьTableDocDLL();

	Таб=СоздатьОбъект("Таблица");
	Таб.Опции(1,1,,,,"Тест");
	Таб.ТолькоПросмотр(1);
	Таб.Показать();
	ТабМенеджер=СоздатьОбъект("МенеджерТабличногоДокумента");
	ТабМенеджер.УстановитьТаблицу(Таб);

	Таб2=СоздатьОбъект("Таблица");
	Таб2.Опции(1,1,,,,"Тест2");
	Таб2.ТолькоПросмотр(1);
	Таб2.Показать();
	ТабМенеджер2=СоздатьОбъект("МенеджерТабличногоДокумента");
	ТабМенеджер2.УстановитьТаблицу(Таб2);
КонецПроцедуры

Процедура ПриЗакрытии()
	Таб.Показать(,,-1);
	Таб2.Показать(,,-1);
КонецПроцедуры 

« Последняя редакция: 04. Мая 2007 :: 14:58 - trad »  

1&&2&&3
Наверх
 
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Новинка - TableDoc
Ответ #5 - 27. Апреля 2007 :: 16:14
Печать  
Класная вещичка, только почему в курилке Улыбка
  
Наверх
wwwICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #6 - 27. Апреля 2007 :: 16:16
Печать  
noprogrammer писал(а) 27. Апреля 2007 :: 16:14:
Класная вещичка, только почему в курилке Улыбка

краска еще не обсохла )
  
Наверх
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Новинка - TableDoc
Ответ #7 - 27. Апреля 2007 :: 16:23
Печать  
Мини пример Улыбка
  

test_tabl.rar ( 7 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #8 - 27. Апреля 2007 :: 19:56
Печать  
И можно писать свой эксель!

Круто! Спасибо!
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #9 - 27. Апреля 2007 :: 20:01
Печать  
trad

Улыбка

Еще можно было бы события некоторые добавить.
И забыть, наконец, о таблицах в режиме ввода данных как о страшном сне.


P.S.
Больше контролов, хороших и разных!
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #10 - 28. Апреля 2007 :: 04:20
Печать  
kms писал(а) 27. Апреля 2007 :: 20:01:
Еще можно было бы события некоторые добавить.

каких например.
обсуждаемо.
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #11 - 28. Апреля 2007 :: 06:26
Печать  
trad писал(а) 28. Апреля 2007 :: 04:20:
каких например.

Например при начале редактирования ячейки (с возможностью запрета) и при окончании.


В свое время мне хватило врезки в ApplyTyping в подобной же задаче (нужно было обрабатывать ввод в активной ячейке и позиционироваться на следующей).

Еще не помешал бы запрет на удаление и вставку, изменение через буфер обмена и т.п.
В том же CSheetView много событий, которые могут быть интересны - вопрос, кому что нужно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #12 - 29. Апреля 2007 :: 23:39
Печать  
Дим, а метод СоздатьЭлементУправления можно передать именно Форма.ОбъектТаблица?
Произвольную таблицу нельзя?
У меня по крайней мере не получается Печаль
Код
Выбрать все
Табл = СоздатьОбъект("Таблица");
Табл.Открыть(КаталогИБ() + "yo.mxl");
ОбъектТаблица = ОбъектФорма.СоздатьЭлементУправления("ПолеТабличногоДокумента", Табл);  

  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #13 - 30. Апреля 2007 :: 04:43
Печать  
интересно, а как ты представляешь, что в этом случае должно было бы получиться
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #14 - 30. Апреля 2007 :: 04:52
Печать  
Методом СоздатьЭлементУправления создается всего лишь контрол определенного класса ЭУ на определенном атрибуте формы.

Если ты хочешь создать ЭУ класса ПолеТабличногоДокумента и открыть внем файл, то:
Код
Выбрать все
ПолеТД = ОбъектФорма.СоздатьЭлементУправления("ПолеТабличногоДокумента", Форма.АтрибутФормы);
ПолеТД.Таблица.Открыть(КаталогИБ() + "yo.mxl"); 


Если ты хочешь управлять произвольным табличным документом, то:
Код
Выбрать все
Табл = СоздатьОбъект("Таблица");
Табл.Открыть(КаталогИБ() + "yo.mxl");
МенеджерТаблицы = СоздатьОбъект("МенеджерТабличногоДокумента");
МенеджерТаблицы.УстановитьТаблицу(Табл); 

  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 36
ОтправитьПечать