Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Новое свойство Колонки ТП (число прочтений - 5342 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Новое свойство Колонки ТП
14. Мая 2008 :: 07:58
Печать  
Можно ли для объекта "КолонкаТабличногоПоля" добавить свойство-флаг "Редактировать"
т.е. эту колонку я могу редактировать, эту - не могу. Да, в модуле формы я могу делать проверки типа "Если ИмяКолонки=ЧтоТО ТОгда ТоТО". А как быть с классами?
В иделе, конечно, хотелось бы добавлять произвольное количество Свойств и, быть может методов(наследование?),  но как это сделать - не соображу.  Печаль
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #1 - 14. Мая 2008 :: 08:10
Печать  
JohnyDeath писал(а) 14. Мая 2008 :: 07:58:
Можно ли для объекта "КолонкаТабличногоПоля" добавить свойство-флаг "Редактировать"
т.е. эту колонку я могу редактировать, эту - не могу. Да, в модуле формы я могу делать проверки типа "Если ИмяКолонки=ЧтоТО ТОгда ТоТО". А как быть с классами?
В иделе, конечно, хотелось бы добавлять произвольное количество Свойств и, быть может методов(наследование?),  но как это сделать - не соображу.  Печаль


А откуда ноги растут? в смысле какие проблемы "с классами"? Редактирование использую и люблю и проблем не испытывал... расскажи плиз.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #2 - 14. Мая 2008 :: 08:30
Печать  
Хочется некторые колонки редактировать, в некторых - открывать форму элемента, а в некоторых вообще ничего не делать и т.д.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #3 - 14. Мая 2008 :: 08:42
Печать  
Логика есть, так как Колонку в класс не обернешь и свои свойства не добавишь.
Но можно в наследнике ТП сделать СЗ, и обращаться уже к СЗ.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #4 - 14. Мая 2008 :: 08:49
Печать  
Arta писал(а) 14. Мая 2008 :: 08:42:
Логика есть, так как Колонку в класс не обернешь и свои свойства не добавишь.
Но можно в наследнике ТП сделать СЗ, и обращаться уже к СЗ.

Какой список? Поясни, пжлст. Если я тебя правильно понял, то список типа "ИмяКолонки"-"ЗначениеФлагаРедактирования". Так? Это параллельно с добавлениям/удалением колонок надо будет и этот список изменять. А теперь я захочу ещё и св-во "Выбор".. второй список лепить?

А в принцыпе можно ж добавить к св-вам КолонкиТП свойство "ПроизвольноеСвойство" с типом "Структура". Вариант? И волки сыты и овцы целкиы  Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #5 - 14. Мая 2008 :: 09:31
Печать  
+ Если мыслить более глобально, то можно захотеть такое свойство практически в любом объекте 1С++. Может просто КолонкамТП, ТП и ещё чему-нибудь унаследоваться от структуры и делов-то? Михаил, что скажешь?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #6 - 14. Мая 2008 :: 09:33
Печать  
Да, верно, параллельно с добавлением колонки надо будет добавлять ее в список.

Только гораздо проще в наследнике ТП сделать метод вроде ДобавитьКолонку(Имя, Заголовок, Данные, Ширина, ..., ТвойСвойствоРедактировать) и уже в этом методе все делать.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Новое свойство Колонки ТП
Ответ #7 - 15. Мая 2008 :: 10:11
Печать  
Женя, мысль понятна.

Все это действительно очень просто решается путем добавления доп. коллекции свойств к подклассу ТП.
К примеру, можно сделать свойство подкласса

"ДополнительныеСвойстваКолонок" : Структура, тип элемента: Структура.

В таком свойстве можно хранить произвольные именованные данные в привязке к имени колонки.
Плюс согласен с вышеизложенным предложением по оформлению операций добавления / удаления колонок как методов подкласса.
В процедуру добавления передаешь заполненную базовыми и дополнительными свойствами структуру и по ней заполняешь свойства колонки (и базовые и дополнительные).
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #8 - 15. Мая 2008 :: 10:42
Печать  
kms писал(а) 15. Мая 2008 :: 10:11:
Женя, мысль понятна.

Все это действительно очень просто решается путем добавления доп. коллекции свойств к подклассу ТП.
К примеру, можно сделать свойство подкласса

"ДополнительныеСвойстваКолонок" : Структура, тип элемента: Структура.

В таком свойстве можно хранить произвольные именованные данные в привязке к имени колонки.
Плюс согласен с вышеизложенным предложением по оформлению операций добавления / удаления колонок как методов подкласса.
В процедуру добавления передаешь заполненную базовыми и дополнительными свойствами структуру и по ней заполняешь свойства колонки (и базовые и дополнительные).

Несколько раз перечитал и всё равно не понял.  Печаль Ты это свойство добавишь или извращаться со списками самому?
Вышеизложенный метод мне несовсем подходит, т.к. колонки у меня создаются в самом классе на основе колонок ИТ. В обработке я вызываю метод "ВыполнитьИОтобразить", который выводит ИТ на контейнер, а уж потом в том же отчете я делаю:
Код
Выбрать все
ТП.Колонки.Получить(Моя).ДополнительныеСвойстваКолонки.Редактировать = 1; 


А если использовать вариант, предложенный Артёмом, то колонки мне придётся создавать опять-таки в каждой обработке, т.е. абсолютно одинаковый код будет переходить из одной обработки в другую  Печаль

Ты мне просто скажи, будет это или нет. Я когда начинаю мечтать, меня вообще далеко уносит...  Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #9 - 15. Мая 2008 :: 10:53
Печать  
+ ОФФ:
вообще давно хочу написать наследника ТП с парсером запроса для автоматического формирования колонок. Т.е. в select-листе планирую писать что-то типа:
Код
Выбрать все
SELECT
Документ as {<ТутТоЧтоМыОбычноПишемПосле AS>, <идКолонкиВТП>, <флВидимость>, <Заголовок>, <Ширина>, <Формат>, <Положение>, <флРедактировать>, <флВыбирать>, <МожетЕщёЧегоНибудь>} 


и потом на основе данных в {...} устанавливались бы соответствующие свойства КолонокТП. Но пока дальше идеи дело не дошло. Тут, КМК, надо регулярные выражения курить, а я в них - профан, а может вообще идея дебильная.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Новое свойство Колонки ТП
Ответ #10 - 15. Мая 2008 :: 11:02
Печать  
JohnyDeath писал(а) 15. Мая 2008 :: 10:42:
Код
Выбрать все
ТП.Колонки.Получить(Моя).ДополнительныеСвойстваКолонки.Редактировать = 1; 



Операцию доступа к свойствам колонки ты можешь вынести в подкласс.
К примеру, можно сделать метод "ПолучитьСвойствоКолонки(ИмяКолонки, ИмяСвойства)", которое будет искать такое свойство внутри дополнительной структуры, а если не найдено - тогда среди свойств колонки ТП.
То же самое - для установки.

Цитата:
А если использовать вариант, предложенный Артёмом, то колонки мне придётся создавать опять-таки в каждой обработке, т.е. абсолютно одинаковый код будет переходить из одной обработки в другую  Печаль

Не придется.

Цитата:
Ты мне просто скажи, будет это или нет. Я когда начинаю мечтать, меня вообще далеко уносит...  Подмигивание

Да хотелось бы, чтобы ты не ушел без решения...

P.S.
Конечно, я понимаю, что есть и другие возможные варианты, но ни на ООП для колонок, ни на серьезную переделку коллекций ТП времени сейчас нет, к сожалению.
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #11 - 15. Мая 2008 :: 11:21
Печать  
kms писал(а) 15. Мая 2008 :: 11:02:
Операцию доступа к свойствам колонки ты можешь вынести в подкласс.
К примеру, можно сделать метод "ПолучитьСвойствоКолонки(ИмяКолонки, ИмяСвойства)", которое будет искать такое свойство внутри дополнительной структуры, а если не найдено - тогда среди свойств колонки ТП.
То же самое - для установки.


Я так понямаю, что предлагается следующее:
в классе-наследнике ТП объявить глобальную переменную (свойство) "ДопСвойстваКолонок" с типом "Структура", у которой будет набор свойств равный набору колонок ТП, а значения ключей = структуре с уже нужными мне новыми свойствами?
Тогда не пойму как сделать такое:
Цитата:
если не найдено - тогда среди свойств колонки ТП

у колонки ТП нет метода "ПолучитьСвойство(ИмяСвойства)". Через ВыполняемыйМодуль? Или я вообще туплю?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #12 - 15. Мая 2008 :: 11:32
Печать  
JohnyDeath
Тебе надо создать класс РасшТабличноеПоле, везде создавать этот класс, а не ТабличноеПоле. В классе добавляешь нужные тебе свойства и методы, например ДобавитьКолонку,УдалитьКолонку и  т.д.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #13 - 15. Мая 2008 :: 11:34
Печать  
PVR
Ты немного не понял. http://www.1cpp.ru/forum/YaBB.pl?num=1210751894/0#8
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Новое свойство Колонки ТП
Ответ #14 - 15. Мая 2008 :: 11:45
Печать  
А что тебе мешает добавить мететод РасшТабличноеПоле.Редактировать(Моя,1);
В котором проделываешь с ТП и Структурой все что хочешь,
или чтонибудь в этом роде  Улыбка

PS
Не нравятся методы, используй динамические свойства.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать