Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Для тупых: как жить без НазначитьБазовыйКласс? (число прочтений - 3973 )
Shurik71
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Для тупых: как жить без НазначитьБазовыйКласс?
18. Июля 2006 :: 05:53
Печать  
Научите жить Улыбка

После смены релиза 1Cpp  с 2.0.2.0 на 2.0.2.2 стали классы разваливаться.
Потому что я использовал НазначитьБазовыйКласс.
Читал, читал дискуссии. Вроде все понятно, но что сделать таки надо - неясно.
Вернее, один выход виден, но он мне не нравится.

Пример.
Есть у меня такой класс - РегистрСведений, определен на основе "Регистры".
Который изображает аналог одноименного объекта из 8.0, при определенной структуре регистра. Сам класс не привязан к какому-то конкретному регистру, оперирует методами регистров 7.7 + методы прямого доступа к БД.
До текущего момента делал просто

Код
Выбрать все
МойРегистрСведений = СоздатьОбъект("РегистрСведений");
МойРегистрСведений.Назначить("рсМойРегистр"); 



где в методе Назначить() было:

Код
Выбрать все
Сам().НазначитьБазовыйКласс("Регистр."+ИмяРегистра); 



Теперь так не работает.

Я понимаю, что правильнее, наверно, сделать еще классы-наследники,
типа класс РегистрСведений_МойРегистр, и унаследовать его и от РегистрСведений, и от Регистр.МойРегистр. Но этак надо на каждый регистр в конфигурации плодить зависимые классы..

Явно должен быть еще и другой способ.. причем очень простой и лежащий на поверхности.. Только он от меня спрятался Улыбка

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #1 - 18. Июля 2006 :: 06:10
Печать  
Я, когда обдумывал примеси, а потом паттерны, об этом методе тоже думал.
Не стоило его убирать.

Все планировал этот вопрос поставить на обсуждение, да как-то все недосуг было.
Сейчас совсем недосуг, скоро в отпуск.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #2 - 18. Июля 2006 :: 09:43
Печать  
Наследуешь свой класс от встроенного класса Регистры
класс МойКласс = МойКласс.ert : Регистры
А в коде этого класса пишешь
НоваяБаза = СоздатьОбъект("Регистр."+ИмяРегистра);
Сам().ЗаменитьБазовыйОбъект("Регистры", НоваяБаза);
  

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


I Love YaBB 2!

Сообщений: 33
Зарегистрирован: 20. Мая 2006
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #3 - 18. Июля 2006 :: 13:31
Печать  
Спасибо, так вроде бы работает.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #4 - 18. Июля 2006 :: 16:06
Печать  
artbear писал(а) 18. Июля 2006 :: 09:43:
Наследуешь свой класс от встроенного класса Регистры
класс МойКласс = МойКласс.ert : Регистры
А в коде этого класса пишешь
НоваяБаза = СоздатьОбъект("Регистр."+ИмяРегистра);
Сам().ЗаменитьБазовыйОбъект("Регистры", НоваяБаза);

Мда.

Особенно, если вспомнить, что ЗаменитьБазовыйОбъект() тоже чуть не накрылся медным тазом.
Были такие предложения Подмигивание
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #5 - 19. Июля 2006 :: 05:46
Печать  
Без данного метода имхо невозможно построить универсальные классы для использования в 1С.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для тупых: как жить без НазначитьБазовыйКласс?
Ответ #6 - 19. Июля 2006 :: 05:47
Печать  
И от метода "НазначитьБазовыйКласс" я отказался только после того, как доработал метод ЗаменитьБазовыйОбъект для закрытия всех багов с наследованием.
  

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