Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг? (число прочтений - 2768 )
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
03. Декабря 2010 :: 05:42
Печать  
Из хелпа по табличному полю:
Цитата:
Сдвинуть / Move

Синтаксис: Сдвинуть(Индекс, Смещение)

Параметры:
Индекс - тип: Число, индекс колонки, которую необходимо сдвинуть;
Смещение - тип: Число, если положительное, колонка сдвигается влево (ее индекс увеличивается), если отрицательное, сдвигается.

Возвращает: тип: КолонкаТабличногоПоля - созданная колонка.


При попытке выполнить:
Код
Выбрать все
НовКолонка = Сам.Колонки.Сдвинуть(Индекс, тзНастройки.НомерСтроки - Индекс + Сдвиг); 


лювлю ошибку "Обращение к процедуре объекта как к функции".

Более того - при попытке выполнить
Код
Выбрать все
Сам.Колонки.Сдвинуть(Индекс, тзНастройки.НомерСтроки - Индекс + Сдвиг); 


Ловлю "Недопустимые параметры.". Оба параметра - тип число.

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
Ответ #1 - 03. Декабря 2010 :: 08:27
Печать  
Satans Claws писал(а) 03. Декабря 2010 :: 05:42:
Возвращает: тип: КолонкаТабличногоПоля - созданная колонка.

Ошибка в документации. На самом деле метод ничего не возвращает.
  

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
Ответ #2 - 03. Декабря 2010 :: 08:28
Печать  
Цитата:
тзНастройки.НомерСтроки - Индекс + Сдвиг

Тут что вычисляется? Новый индекс?
Нужно передавать смещение.
  

1&&2&&3
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
Ответ #3 - 03. Декабря 2010 :: 08:40
Печать  
Смещение и вычисляется (НомерСтроки-Индекс - это и есть смещение, которое может быть изменено на дополнительный Сдвиг)
  
Наверх
 
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
Ответ #4 - 03. Декабря 2010 :: 09:33
Печать  
а чё - ведь все работает

вот код по сохранению/восстановлению настроек ТП

Код
Выбрать все
Функция ВосстановитьНастройки(тп,ИмяНастройки="") Экспорт
   	Рез=0;
   	Если ИмяНастройки="" Тогда Возврат Рез; КонецЕсли;
                              
   	тб=ЗначениеИзФайла(КаталогПользователя()+ИмяНастройки);
   	Если ПустоеЗначение(тб)=1 Тогда Возврат 0; КонецЕсли;
   	Попытка
   		КвоКолонок=Макс(0,тб.КоличествоСтрок()-1);
   		Если КвоКолонок=0 Тогда Возврат Рез; КонецЕсли;
   		    
   		Для Инд=0 По КвоКолонок Цикл
   			тб.ПолучитьСтрокуПоНомеру(Инд+1);
//   			Сообщить("Обработка колонки "+тб.ИмяКолонки);
   			Колонка=тп.Колонки.Получить(тб.ИмяКолонки);
   			ИндексКолонки=тп.Колонки.Индекс(Колонка);
   			Если ИндексКолонки=-1 Тогда Продолжить; КонецЕсли;
   			СохрИндекс=тб.ИндексКолонки;
   			Если СохрИндекс<>ИндексКолонки Тогда
   				тп.Колонки.Сдвинуть(ИндексКолонки,СохрИндекс-ИндексКолонки);
   			КонецЕсли;
   			Колонка.Видимость=тб.ВидимостьКолонки;
   			Колонка.Ширина=тб.ШиринаКолонки;
   			                                  
   		КонецЦикла;
   		тп.ПерерисоватьСтроки();
   		Рез=1;
   	Исключение
   		////#exinfo
   		//Сообщить("Попался в исключение при Восстановлении настройки....");
   	КонецПопытки;
  
   	Возврат Рез;
  
КонецФункции  

//--------------------------------------------
Функция СохранитьНастройки(тп,ИмяНастройки) Экспорт
   	Рез=0;                    

   	Если ИмяНастройки="" Тогда
   		Сообщить("Передано пустое имя настройки");
   		Возврат Рез;
   	КонецЕсли;
  
   	тб=глСоздатьТаблицуЗначений();
   	тб.НоваяКолонка("ИмяКолонки");
   	тб.НоваяКолонка("ВидимостьКолонки");
   	тб.НоваяКолонка("ШиринаКолонки");
   	тб.НоваяКолонка("ИндексКолонки");
   	                      
   	КвоКолонок=тп.Колонки.Количество();
   	Для Инд=0 По (КвоКолонок-1) Цикл
   		Колонка=тп.Колонки.Получить(Инд);
   		тб.НоваяСтрока();
   		тб.ИмяКолонки=Колонка.Имя;
   		тб.ВидимостьКолонки=Колонка.Видимость;
   		тб.ШиринаКолонки=Колонка.Ширина;
   		тб.ИндексКолонки=Инд;
   	КонецЦикла;
	Возврат ЗначениеВФайл(КаталогПользователя()+ИмяНастройки,тб);
  
КонецФункции 

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


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: ТабличноеПоле.Колонки.Сдвинуть: Ошибка документации, или баг?
Ответ #5 - 03. Декабря 2010 :: 09:46
Печать  
Собственно, уже разобрался.
Колонки.Сдвиг(Индекс, 0) вызывает ошибку.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать