Опрос
Опрос Тема Опроса: Динам.свойства - нужна ли совместимость со старым кодом ?
bars   pie

Нет - пусть все будет просто и удобно    
  10 (47.6%)
Да - оставляем старый код и проблемы при его использ.    
  2 (9.5%)
Мне все равно, я не использую динам.свойства    
  9 (42.9%)




Всего голосов: 21
« Создано: artbear : 18. Марта 2008 :: 07:24 »
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5 ОтправитьПечать
Очень популярная тема (более 25 ответов) Зачем нужны динамические свойства? (число прочтений - 21887 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Зачем нужны динамические свойства?
28. Февраля 2008 :: 13:26
Печать  
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.
  
Наверх
www  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Зачем нужны динамические свойства?
Ответ #1 - 28. Февраля 2008 :: 14:34
Печать  
Ну например - у меня есть класс УскоренныйРегистр - чтобы он полностью
соответствовал регистру 1С(не менял кода) приходится добавлять динамические свойства -
измерения и ресурсы.

Если я правильно понял вопрос.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #2 - 28. Февраля 2008 :: 14:41
Печать  
kiruha писал(а) 28. Февраля 2008 :: 14:34:
Ну например - у меня есть класс УскоренныйРегистр

А у тебя есть такой класс Улыбка ? Или это был пример навскидку?
Если да, смогешь поделиться? Улыбка
ИМХО вопрос понят верно. Хотя в этом случае можно просто унаследовать от Структуры или DynaValue
  

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



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Зачем нужны динамические свойства?
Ответ #3 - 28. Февраля 2008 :: 15:07
Печать  
artbear писал(а) 28. Февраля 2008 :: 14:41:
kiruha писал(а) 28. Февраля 2008 :: 14:34:
Ну например - у меня есть класс УскоренныйРегистр

А у тебя есть такой класс Улыбка ? Или это был пример навскидку?
Если да, смогешь поделиться? Улыбка
ИМХО вопрос понят верно. Хотя в этом случае можно просто унаследовать от Структуры или DynaValue


Он под ДБФ, хотя под SQL переделать не сложно(но трудоемко - из за различной оптимизации).
В методах на ТА (СводныйОстаток ,Остаток, Остатки) не дает ускорения - видимо 1С тут неплохо оптимизировали.
В методах выгрузки итогов дает весьма неплохое.
Самое существенное ускорение дает при временных расчетах.

Пока сырой.
Если интересно - доведу до ума и выложу недели через две.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Зачем нужны динамические свойства?
Ответ #4 - 28. Февраля 2008 :: 15:22
Печать  
fez писал(а) 28. Февраля 2008 :: 13:26:
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.

Вполне может быть полезно.

Только реализовано хреново - через парные методы типа get/set на свойство было бы лучше.
И с наследованием вопросов бы не возникало.

P.S.
Что, кстати, это было бы? полиморфные свойства?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #5 - 28. Февраля 2008 :: 15:24
Печать  
kiruha писал(а) 28. Февраля 2008 :: 15:07:
Он под ДБФ, хотя под SQL переделать не сложно(но трудоемко - из за различной оптимизации).
Самое существенное ускорение дает при временных расчетах.

Пока сырой.
Если интересно - доведу до ума и выложу недели через две.

Как раз интересно из-за работы под ДБФ, и, уверен, что не только мне.
Жду результатов.
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Зачем нужны динамические свойства?
Ответ #6 - 28. Февраля 2008 :: 15:36
Печать  
fez писал(а) 28. Февраля 2008 :: 13:26:
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.

+ Вдогонку

Я, когда писал предыдущий ответ, малость подзабыл как оно на самом деле, поэтому смысла там мало.
Не, не знаю, зачем нужны динамические свойства, отключающие родные свойства класса и механику get/set.
Для каких-то специфических применений, наверное.
Имхо проще любой стандартный контейнер агрегировать или унаследовать.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #7 - 29. Февраля 2008 :: 02:53
Печать  
Цитата:
Имхо проще любой стандартный контейнер агрегировать или унаследовать.


Хотел написать свой класс структура на основе индексированной таблицы и динамических свойств. Но в виду "особеностей работы" динамических свойств придется использовать просто структуру Печаль
  
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #8 - 29. Февраля 2008 :: 04:58
Печать  
fez писал(а) 28. Февраля 2008 :: 13:26:
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.

Когда нужно после изменения значения какого-то свойства обновить ещё какие-то внутренние данные, то самое оно. Типа того:
Код
Выбрать все
Процедура ПриЗаписи_ПоискПоВхождению(НовПоискПоВхождению)
	ПоискПоВхождению = НовПоискПоВхождению;
	ПостроитьЗапросы();
КонецПроцедуры
 


Да, это можно сделать и явно, убрав свойство и сделав метод. Но со свойствами просто удобнее.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #9 - 29. Февраля 2008 :: 05:01
Печать  
Блин, написал, и понял что написал фигню  Улыбка

Зачем нужны именно динамические свойства я представить не могу.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #10 - 29. Февраля 2008 :: 05:02
Печать  
ADirks писал(а) 29. Февраля 2008 :: 04:58:
fez писал(а) 28. Февраля 2008 :: 13:26:
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.

Когда нужно после изменения значения какого-то свойства обновить ещё какие-то внутренние данные, то самое оно. Типа того:
Код
Выбрать все
Процедура ПриЗаписи_ПоискПоВхождению(НовПоискПоВхождению)
	ПоискПоВхождению = НовПоискПоВхождению;
	ПостроитьЗапросы();
КонецПроцедуры
 


Да, это можно сделать и явно, убрав свойство и сделав метод. Но со свойствами просто удобнее.


Это работает для статика, для динамических свойств работают процедуры
_ПриЧтенииСвойства
_ПриЗаписиСвойства
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #11 - 29. Февраля 2008 :: 08:19
Печать  
kiruha писал(а) 28. Февраля 2008 :: 15:07:
Он под ДБФ, хотя под SQL переделать не сложно(но трудоемко - из за различной оптимизации).
В методах на ТА (СводныйОстаток ,Остаток, Остатки) не дает ускорения - видимо 1С тут неплохо оптимизировали.
В методах выгрузки итогов дает весьма неплохое.
Самое существенное ускорение дает при временных расчетах.

Пока сырой.
Если интересно - доведу до ума и выложу недели через две.

Было бы очень интересно и полезно посмотреть
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #12 - 06. Марта 2008 :: 02:56
Печать  
Есть вообщето одно применение динамических свойство:

для статика есть методы ПриЗаписи_ИмяСвоиства и ПриПолучении_ИмяСвойства. Если мы наследуем от контейнера, например от структуры, то как нам получить аналогичные возможности для добавляемых свойств?
  
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #13 - 06. Марта 2008 :: 05:44
Печать  
fez писал(а) 28. Февраля 2008 :: 13:26:
Собсна субж.
Причем я не прикалываюсь, мне реально интересно.



еще динамические свойства полезны при разработке ОРМ

к примеру существует объект СущностьБД
в коде я хочу обращаться к полям этой сущности через точку например СущностьБД.Наименование

теперь остается только реализовать обобщенные методы работы с динамическими свойствами, словарь динамический свойств и полей БД (пары значений), и собственно работу по выборки значения свойства из БД

то есть получается при добавлении нового поля в сущности мне достаочно добавить в словарь пару значений Свойство = ПолеБД
а методы для работы с этими полями уже работаю в обобщенном виде

Улыбка

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Зачем нужны динамические свойства?
Ответ #14 - 06. Марта 2008 :: 06:44
Печать  
Предложение - переделать/доработать всю схему работы с динамическими свойствами для обеспечения нормального ООП.

ИМХО можно добавить к КОП два зарезервированных метода
ДобавитьДинамическоеСвойство(Имя) - нужен 100%,
УдалитьДинамическиеСвойства ( или УдалитьДинамическоеСвойство(Имя) )
- хотя я также не могу представить, зачем свойства нужно удалять Печаль

Также оставляем у КОП методы _ПриЗаписиСвойства, _ПриЧтенииСвойства или можно их доп. переименовать в _ПриЗаписиДинамическогоСвойства, _ПриЧтенииДинамическогоСвойства

В этом случае вроде бы без проблем получается решить все проблемы с ООП.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать