Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Попробуйте создать циклическую иерархию классов! (число прочтений - 15632 )
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Попробуйте создать циклическую иерархию классов!
01. Июня 2006 :: 19:22
Печать  
Не пожалеете! Подмигивание
  
Наверх
 
IP записан
 
Kalmar
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 21. Мая 2006
Re: Попробуйте создать циклическую иерархию классо
Ответ #1 - 01. Июня 2006 :: 19:51
Печать  
Тема не раскрыта, требую скриншот или КОП  Класс
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #2 - 01. Июня 2006 :: 21:03
Печать  
Эт когда элементом класса выступает сам класс?
Спасибо уже натыкались...
  
Наверх
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #3 - 02. Июня 2006 :: 09:36
Печать  
Kalmar писал(а) 01. Июня 2006 :: 19:51:
Тема не раскрыта, требую скриншот или КОП  Класс



класс тест = тест@MD : тест
{};

Скриншот неинтересен боюсь будет ... там главное - процесс
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #4 - 02. Июня 2006 :: 09:37
Печать  
trdm писал(а) 01. Июня 2006 :: 21:03:
Эт когда элементом класса выступает сам класс?
Спасибо уже натыкались...



как это? Нерешительный
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Попробуйте создать циклическую иерархию классо
Ответ #5 - 02. Июня 2006 :: 09:45
Печать  
Ну, наверное, агрегация с созданием объекта в конструкторе. Ну типа того.
Результат подозреваю, что тот же - эксперементальное исследование глубины стека.
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #6 - 02. Июня 2006 :: 10:51
Печать  
Pelmen писал(а) 02. Июня 2006 :: 09:37:
как это? Нерешительный

Так:
Код
Выбрать все
класс СписокЗначений_Ex = СписокЗначений_Ex@MD : СписокЗначений    
{	  
}
Перем м_СЗ; // сам список	    
Перем м_СЗ_ОбязательноПомеченные;	// те значения, пометка которых обязательна.
Процедура Конструктор()  
     м_СЗ = СоздатьОбъект("СписокЗначений");
     Сам(Контекст).ЗаменитьЭксзБазовогоКласса("СписокЗначений", м_СЗ);
     м_СЗ_ОбязательноПомеченные	= СоздатьОбъект("СписокЗначений_Ex");
КонецПроцедуры  
 



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



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #7 - 02. Июня 2006 :: 12:03
Печать  
ага, кмс был прав Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Попробуйте создать циклическую иерархию классо
Ответ #8 - 02. Июня 2006 :: 17:57
Печать  
ыпатс  Злой

Конфигуратор - то тоже падает! vis1cpp 1.0.0.9
при открытии конфигурации
  

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



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #9 - 02. Июня 2006 :: 19:15
Печать  
Смех
а я же говорил что не пожалеете

сам на это наткнулся, пришлось все отключать, чтобы поправить  Смех
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #10 - 02. Июня 2006 :: 19:22
Печать  
kms писал(а) 02. Июня 2006 :: 17:57:
ыпатс  Злой

Конфигуратор - то тоже падает! vis1cpp 1.0.0.9
при открытии конфигурации


Yesss!

А теперь представь, что defcls не внешний, а в обработке, в составе конфы. Ага?
GComp рулит Улыбка
  
Наверх
www  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #11 - 02. Июня 2006 :: 19:33
Печать  
fez писал(а) 02. Июня 2006 :: 19:22:
kms писал(а) 02. Июня 2006 :: 17:57:
ыпатс  Злой

Конфигуратор - то тоже падает! vis1cpp 1.0.0.9
при открытии конфигурации


Yesss!

А теперь представь, что defcls не внешний, а в обработке, в составе конфы. Ага?
GComp рулит Улыбка



копи пасте рулит
опен конф надо отключать
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #12 - 05. Июня 2006 :: 08:02
Печать  
А где соответствующий баг в багзилле ?
  

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: Попробуйте создать циклическую иерархию классо
Ответ #13 - 06. Июня 2006 :: 06:13
Печать  
Создал новый баг http://www.1cpp.ru/bugs/show_bug.cgi?id=2291
ЗЫ блин, ну все самому приходится Печаль Улыбка
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #14 - 06. Июня 2006 :: 07:23
Печать  
Багзила - инструмент для профессионалов, а не для ламеров вроде меня...
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Попробуйте создать циклическую иерархию классо
Ответ #15 - 06. Июня 2006 :: 07:42
Печать  
Я бы создал, но у меня теперь конфигуратор не открывается Ужас


Багзила - инструмент для профессионалов, а не для ламеров вроде меня...

Улыбка
  

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


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Попробуйте создать циклическую иерархию классо
Ответ #16 - 06. Июня 2006 :: 07:56
Печать  
trdm писал(а) 06. Июня 2006 :: 07:23:
Багзила - инструмент для профессионалов, а не для ламеров вроде меня...


Вот! А я что вам говорил!

Выношу предложение: ночные сборки выдавать только тем, кто имеет сертификат об умении пользоваться базиллой!  Подмигивание Или хотя бы зарегистрирован в багзилле!
  
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #17 - 06. Июня 2006 :: 08:11
Печать  
sedmin писал(а) 06. Июня 2006 :: 07:56:
trdm писал(а) 06. Июня 2006 :: 07:23:
Багзила - инструмент для профессионалов, а не для ламеров вроде меня...


Вот! А я что вам говорил!

Выношу предложение: ночные сборки выдавать только тем, кто имеет сертификат об умении пользоваться базиллой!  Подмигивание Или хотя бы зарегистрирован в багзилле!


Зачем так строго?
Ошибки-то находятся всем миром, а ламерами - В ПЕРВУЮ ОЧЕРЕДЬ!   Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #18 - 06. Июня 2006 :: 11:43
Печать  
В 1С++ данный баг поправлен.
Будет в ночной сборке.
Счас сяду править Визуал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: Попробуйте создать циклическую иерархию классо
Ответ #19 - 06. Июня 2006 :: 12:58
Печать  
В общем, поправлено как в 1С++, так и в Визуал1С++ Улыбка

ЗЫ Для желающих получить последний релиз Визуал1С++
даю хистори Цитата:
[+] Решение бага 2291 [http://www.1cpp.ru/bugs/show_bug.cgi?id=2291]
     Исправлен баг с падением 1С, если использована зацикленная иерархия классов

[+] Решение бага 1605 [http://www.1cpp.ru/bugs/show_bug.cgi?id=1605]
     1. появилась возможность задавать //include defcls.prm
     относительно папки текущего разбираемого defcls.prm;
     Если задан относительный путь, он сначала проверяется относительно каталога ИБ,
     а уже затем относительно папки текущего разбираемого defcls.prm;
     2. появилась возможность задавать в пути к файлу класса или defcls.prm в //#include
     относительные пути с использованием "." или "..";

  

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


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #20 - 06. Июня 2006 :: 13:07
Печать  
artbear писал(а) 06. Июня 2006 :: 12:58:
В общем, поправлено как в 1С++, так и в Визуал1С++ Улыбка

Я надеюсь, что конфигурацию с такой иерархией не запустишь. И что выдается предупреждающее сообщение. Я прав?
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #21 - 06. Июня 2006 :: 13:43
Печать  
1) При запуске Конфигуратора Визуал1С++ выдает предупреждения о том, что обнаружена иерархическая ссылка.
И в дереве классов данные классы обрезаны, т.е. у них отсутствуют базовые классы. И при этом можно подкорректировать определения этих неверных классов.
2) При загрузке 1С++ никаких сообщений не выдается.
Но вот при попытке создать объект подобного зацикленного класса выдается исключение 1С с указанием зацикленности.

ЗЫ как обычно, мной сразу же добавлены юнит-тесты в конфе тестирования, на них можно убедиться в том, как все работает, и 1С больше не падает.
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #22 - 06. Июня 2006 :: 17:35
Печать  
Мою стряпню вижу не влил. Да и фиг с ней.
« Последняя редакция: 06. Июня 2006 :: 19:18 - trdm »  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #23 - 07. Июня 2006 :: 04:17
Печать  
Времени не хватило разобраться Печаль
Слишком много изменений нужно отследить Печаль
Постараюсь сделать.
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #24 - 07. Июня 2006 :: 06:04
Печать  
Не надо. Чую у людей будет алергия.
Перекинь только последнюю (2) правку, та что связана с получением текста внешнего отчета по короткому пути.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #25 - 07. Июня 2006 :: 12:00
Печать  
Еще добавления в плагин Визуал1С++

Цитата:
[+] Добавлен драг-дроп в дереве. Теперь можно таскать в текст название классов, переменные, названия методов.
Автор trdm

[-] Исправлена ошибка при работе с именами файлов-классов в кавычках,
например, class КОП_ДляТестыИсходнойТаблицы = "ExtForms\ТестыИсходнойТаблицы.ert"

trdm, в последней части у тебя там был неверный код, я его поправил Печаль
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #26 - 07. Июня 2006 :: 12:10
Печать  
Цитата:
trdm, в последней части у тебя там был неверный код, я его поправил Печаль

Ради борьбы с граблями, можно поподробнее? У меня ведь в c++ опыта-кот наплакал...
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #27 - 07. Июня 2006 :: 12:32
Печать  
trdm писал(а) 07. Июня 2006 :: 12:10:
Цитата:
trdm, в последней части у тебя там был неверный код, я его поправил Печаль

Ради борьбы с граблями, можно поподробнее? У меня ведь в c++ опыта-кот наплакал...


1. Я сразу увидел, что твой код может сработать только в том случае, если нужный файл класса уже открыт, наверное или через плагин История, или через меню Файл.

А если тупо загружать класс через дефцлс.прм, твой код не успевает выполнится, и Виз1С++ дает ошибку на подобное имя.
Я просто убираю кавычки из имени и дальше использую это имя. Т.е.
Код
Выбрать все
name->Replace("\"", ""); 

  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Попробуйте создать циклическую иерархию классо
Ответ #28 - 07. Июня 2006 :: 12:40
Печать  
угу, возможно, спасибо. Хотя и не все понял.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать