Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как узнать количество колонок в табличной части документа? (число прочтений - 13689 )
vlasssov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Как узнать количество колонок в табличной части документа?
01. Декабря 2011 :: 10:41
Печать  
Как обратиться к конкретной колонке функция есть, а как можно подсчитать количество колонок?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Как узнать количество колонок в табличной части документа?
Ответ #1 - 01. Декабря 2011 :: 10:51
Печать  
тебе для каких целей?
можно выгрузить в обычную таблицу, можно через метеданные
  
Наверх
wwwICQ  
IP записан
 
vlasssov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #2 - 01. Декабря 2011 :: 11:31
Печать  
Anatol писал(а) 01. Декабря 2011 :: 10:51:
тебе для каких целей?
можно выгрузить в обычную таблицу, можно через метеданные

Решил я тут функцию написать, которая формирует план раскраски. Табличных частей много, чтобы унифицировать, хочу сделать в глобальном модуле функцию, назначающую цвет. Цвет хранить в таблице значений

Строка форматирования имеет вид

Код
Выбрать все
"()()()()()()(BRUSH[255])(BRUSH[NONE])(BRUSH[NONE])" 


Соответственно табличной части назначаем таблицу значений

Код
Выбрать все
Функция Форм_МассивЦвет()

	Н_Колонок = 7;

	МассивЦвет = СоздатьОбъект("ТаблицаЗначений");
	МассивЦвет.ВставитьКолонку("Цвет");

	Для к=1 По Н_Колонок Цикл
	    МассивЦвет.НоваяСтрока();
		МассивЦвет.Цвет = "()";
		МассивЦвет.Позиция = к;
	КонецЦикла;

КонецФункции 



А потом формируем строку по этим колонкам

Код
Выбрать все
Функция Форм_СтрокаФормат()
	перем ЦветУ
	Для к=1 По МассивЦвет.КоличествоСтрок() Цикл
		МассивЦвет.ПолучитьСтрокуПоНомеру(1);
		ЦветУ = ЦветУ+"(BRUSH[" +МассивЦвет.Цвет+ "])" ;
	КонецЦикла;

	Возврат ЦветУ;
КонецФункции

Функция Форм_ЗадатьЦветКолонка(Номер,Цвет)

		МассивЦвет.ПолучитьСтрокуПоНомеру(Номер);
		МассивЦвет.Цвет = 2345;
		Возврат Форм_СтрокаФормат();

КонецФункции 



  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как узнать количество колонок в табличной части документа?
Ответ #3 - 02. Декабря 2011 :: 04:55
Печать  
vlasssov писал(а) 01. Декабря 2011 :: 10:41:
Как обратиться к конкретной колонке функция есть, а как можно подсчитать количество колонок?

В ФормЕкс есть вроде такой метод
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vlasssov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #4 - 02. Декабря 2011 :: 11:19
Печать  
artbear писал(а) 02. Декабря 2011 :: 04:55:
vlasssov писал(а) 01. Декабря 2011 :: 10:41:
Как обратиться к конкретной колонке функция есть, а как можно подсчитать количество колонок?

В ФормЕкс есть вроде такой метод

В помощи дан пример

Цитата:
Процедура Выполнить()
       РФорма = СоздатьОбъект("РасширениеФормы");
       РФорма.ПоложениеКолонкиТаблицы("Табл",3,2);
       РФорма.ПоложениеКолонкиТаблицы("Табл",4,1);
       Табл.НоваяКолонка();
       Табл.УдалитьКолонку(Табл.КоличествоКолонок());
КонецПроцедуры




А про табличную часть документа ничего не сказано. При расширенную форму вот что есть
Цитата:
Синтаксис: РаскрашиватьТаблицу(Имя)

Параметры:

Имя - тип: Строка. Идентификатор таблицы на форме. Для многострочной части формы необходимо использовать идентификатор - "МногострочнаяЧасть".
Описание: Разрешает раскраску указанной таблицы при включенной частичной раскраске. Метод работает только после физического открытия окна формы.

Пример:

ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.РаскрашиватьТаблицу("Табл");
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Как узнать количество колонок в табличной части документа?
Ответ #5 - 02. Декабря 2011 :: 11:52
Печать  
vlasssov писал(а) 02. Декабря 2011 :: 11:19:
А про табличную часть документа ничего не сказано. При расширенную форму вот что есть
Цитата:
Синтаксис: РаскрашиватьТаблицу(Имя)

Параметры:

Имя - тип: Строка. Идентификатор таблицы на форме. Для многострочной части формы необходимо использовать идентификатор - "МногострочнаяЧасть".
Описание: Разрешает раскраску указанной таблицы при включенной частичной раскраске. Метод работает только после физического открытия окна формы.

Пример:

ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.РаскрашиватьТаблицу("Табл");

  
Наверх
wwwICQ  
IP записан
 
vlasssov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #6 - 02. Декабря 2011 :: 12:22
Печать  
Anatol писал(а) 02. Декабря 2011 :: 11:52:
vlasssov писал(а) 02. Декабря 2011 :: 11:19:
А про табличную часть документа ничего не сказано. При расширенную форму вот что есть
Цитата:
Синтаксис: РаскрашиватьТаблицу(Имя)

Параметры:

Имя - тип: Строка. Идентификатор таблицы на форме. Для многострочной части формы необходимо использовать идентификатор - "МногострочнаяЧасть".
Описание: Разрешает раскраску указанной таблицы при включенной частичной раскраске. Метод работает только после физического открытия окна формы.

Пример:

ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.РаскрашиватьТаблицу("Табл");



Ну и как на нее ссылку получить, чтобы переменной присвоить?
  
Наверх
 
IP записан
 
vlasssov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #7 - 06. Декабря 2011 :: 06:00
Печать  
Сообщить(МногострочнаяЧасть<<?>>.КоличествоКолонок());
{Документ.Опер_ОтчетСуточныйГСМ.Форма.Модуль(9)}: Переменная не определена (МногострочнаяЧасть)
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Как узнать количество колонок в табличной части документа?
Ответ #8 - 06. Декабря 2011 :: 06:42
Печать  
Код
Выбрать все
Сообщить(Метаданные.Документ(Вид()).РеквизитТабличнойЧасти()); 

  
Наверх
wwwICQ  
IP записан
 
pari
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 08. Мая 2008
Re: Как узнать количество колонок в табличной части документа?
Ответ #9 - 06. Декабря 2011 :: 13:15
Печать  
vlasssov писал(а) 01. Декабря 2011 :: 10:41:
Как обратиться к конкретной колонке функция есть, а как можно подсчитать количество колонок?

Так вроде работает (первое сообщение, критикуйте):
Код
Выбрать все
Процедура ПослеОткрытия()
	  ФормаРасш = СоздатьОбъект("РасширениеФормы");
	  Инд=0;
	  Пока ФормаРасш.ПолучитьШиринуКолонки("МногострочнаяЧасть",Инд) > 0 Цикл
		Инд=Инд+1;
	  КонецЦикла;
	  Сообщить("КоличествоКолонок="+Инд);//включ. нулевую
КонецПроцедуры 

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


1C++ rocks!

Сообщений: 27
Зарегистрирован: 23. Ноября 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #10 - 07. Декабря 2011 :: 11:40
Печать  
pari писал(а) 06. Декабря 2011 :: 13:15:
vlasssov писал(а) 01. Декабря 2011 :: 10:41:
Как обратиться к конкретной колонке функция есть, а как можно подсчитать количество колонок?

Так вроде работает (первое сообщение, критикуйте):
Код
Выбрать все
Процедура ПослеОткрытия()
	  ФормаРасш = СоздатьОбъект("РасширениеФормы");
	  Инд=0;
	  Пока ФормаРасш.ПолучитьШиринуКолонки("МногострочнаяЧасть",Инд) > 0 Цикл
		Инд=Инд+1;
	  КонецЦикла;
	  Сообщить("КоличествоКолонок="+Инд);//включ. нулевую
КонецПроцедуры 



Отлично!!!  Поцелуй
  
Наверх
 
IP записан
 
Igor YN
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 13. Мая 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #11 - 23. Ноября 2012 :: 06:23
Печать  
А как узнать количество ВИДИМЫХ строк в Мн.части, например, справочника.
В методе "ПолучитьКоординатыЯчейки" есть параметр
<НомерСтроки> - (Число Номер строки таблицы, начиная с нуля, для которой необходимо получить координаты. Для многострочной части формы - это номер среди видимых в данный момент на экране строк.
А сколько их, видимых в даннвй момент?
  
Наверх
 
IP записан
 
Igor YN
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 13. Мая 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #12 - 23. Ноября 2012 :: 06:32
Печать  
А вообще, мне хотелось, чтобы при движении мыши выделялась цветом строка Мн.части. Не синим, одна колонка, а вся и любым. Вот извращаюсь...
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Как узнать количество колонок в табличной части документа?
Ответ #13 - 23. Ноября 2012 :: 14:09
Печать  
Igor YN писал(а) 23. Ноября 2012 :: 06:32:
А вообще, мне хотелось, чтобы при движении мыши выделялась цветом строка Мн.части. Не синим, одна колонка, а вся и любым. Вот извращаюсь...

BRUSH_S
  
Наверх
ICQ  
IP записан
 
Igor YN
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 13. Мая 2011
Re: Как узнать количество колонок в табличной части документа?
Ответ #14 - 24. Ноября 2012 :: 17:08
Печать  
BRUSH_S - это подсвтека активной строки, а при движении мыши строка не автивизиреутся. В том-то и задачка...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать