Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Ошибка с наследником группового контекста (число прочтений - 14363 )
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с наследником группового контекста
Ответ #15 - 13. Июля 2006 :: 12:11
Печать  
Кстати, я в отпуске с завтрашнего дня,
так что проверить не смогу.
Буду в середине августа.
ЗЫ надеюсь, застану все действующие лица, новых неожиданностей не будет Улыбка
  

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: Ошибка с наследником группового контекста
Ответ #16 - 17. Августа 2006 :: 09:04
Печать  
Попробую разобраться.

PS Кстати, адресок в багзилле http://www.1cpp.ru/bugs/show_bug.cgi?id=2402
  

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: Ошибка с наследником группового контекста
Ответ #17 - 17. Августа 2006 :: 11:34
Печать  
В общем, понятно, как возникает подобная ошибка.

Дело в том, что при создании объекта, наследника пустого группового контекста, методы и реквизиты этого пустого контекста кешируются в ТурбоБЛ.
Далее при открытии формы и при вызове ЗаменитьБазовыйОбъект("ГрупповойКонтекс", КонтекстОткрытойФормы) не происходит обновлении инфы в ТурбоБЛ для упомянутого базового объекта. В итоге никакого вызова не происходит Печаль

И почти понятно, как решить проблему.
Нужно просто вызвать CGCBoost::Boost(?? pMod ??, false) Улыбка
Один вопрос к более опытным разработчикам - как из контекста открытой формы (CBLContext* Cont) получить модуль этого контекста (CBLModule* pMod) ?

ЗЫ после более детального изучения исходников выяснилось, что ошибка совсем в другом. См. ниже Улыбка
« Последняя редакция: 17. Августа 2006 :: 13:18 - artbear »  

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: Ошибка с наследником группового контекста
Ответ #18 - 17. Августа 2006 :: 13:17
Печать  
Итак, данная ошибка исправлена, внесены поправки в ТурбоБЛ.

Ранее ТурбоБЛ фактически не знал о том, что для классов в качестве базы может выступать групповой контекст, методы и свойства которого могут меняться "на лету".
  

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 - 17. Августа 2006 :: 13:22
Печать  
После данного исправления ИМХО возможно полноценная работа с классами-наследниками от группового контекста, т.е. от любых форм 1С.

Осталось только вернуть в 2.5 фичу автовозможность использования методов внешних отчетов через контекст внешних отчетов. Саша вроде бы обещал, осталось немного подождать.
  

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: Ошибка с наследником группового контекста
Ответ #20 - 17. Августа 2006 :: 13:23
Печать  
Брать в ночном релизе.
ЗЫ для 2.5 пока не сделал коммит.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с наследником группового контекста
Ответ #21 - 17. Августа 2006 :: 13:47
Печать  
artbear писал(а) 17. Августа 2006 :: 13:23:
Брать в ночном релизе.
ЗЫ для 2.5 пока не сделал коммит.


как согнать на 2.0.5.0 так сразу согнали Улыбка
а как коммиты, так в последнюю очередь Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с наследником группового контекста
Ответ #22 - 17. Августа 2006 :: 13:49
Печать  
artbear писал(а) 17. Августа 2006 :: 13:22:
После данного исправления ИМХО возможно полноценная работа с классами-наследниками от группового контекста, т.е. от любых форм 1С.



Эээ... а события формы/документа не получится так наследовать? ПриОткрытии, ПриЗакрытии и т.д.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с наследником группового контекста
Ответ #23 - 18. Августа 2006 :: 05:33
Печать  
Тестирование показало, что выбранный мной способ исправления данного бага (исправление непосредственно в ТурбоБЛ) вызывает баг в работе ВК ТурбоМД.
Т.е. все ночные сборки где-то с начала июня 2006 г.  являются некорректными в этом плане Печаль

!!! Это не совсем точная инфа, изучаем следующие посты !!!


Придется идти другим путем, свои вчерашние изменения в ТурбоБЛ я пока уберу.

Видимо, придется исправлять непосредственно в ComponentClass.cpp именно в части работы с групповым контекстом как базы класса.
« Последняя редакция: 18. Августа 2006 :: 10:17 - artbear »  

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: Ошибка с наследником группового контекста
Ответ #24 - 18. Августа 2006 :: 07:06
Печать  
Дальнейшее изучение исходников показало, что баг во взаимодействии 1С++ и ТурбоМД внес все-таки не я (но ТурбоБЛ точно не виноват! ) Улыбка
Данный баг присутствует уже в ночной сборке 16.08.06
« Последняя редакция: 19. Августа 2006 :: 06:58 - artbear »  

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: Ошибка с наследником группового контекста
Ответ #25 - 18. Августа 2006 :: 07:09
Печать  
Причем в версии 2022 и меньше данного бага нет !!
  

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: Ошибка с наследником группового контекста
Ответ #26 - 18. Августа 2006 :: 08:20
Печать  
Народ, просьба протестить данный баг.
Код встроенной формы
Код
Выбрать все
 // вот здесь  !
//Процедура МетодФормы1() Экспорт
//	Сообщить("Вызов МетодФормы1");
//КонецПроцедуры

Процедура МетодФормы() Экспорт
	Сообщить("Вызов МетодФормы");
КонецПроцедуры

Функция ВзятьКонтекст(Конт)
	Возврат Конт;
КонецФункции	// ВзятьКонтекст

Процедура ПослеОткрытия()
	Сообщить("ПослеОткрытия = ");
	Конт = ВзятьКонтекст(Контекст);
	Конт.МетодФормы(); // вот здесь !
	//Конт.МетодФормы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 записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка с наследником группового контекста
Ответ #27 - 18. Августа 2006 :: 08:31
Печать  
Зафиксировал новый баг 2503
http://www.1cpp.ru/bugs/show_bug.cgi?id=2503
  

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: Ошибка с наследником группового контекста
Ответ #28 - 18. Августа 2006 :: 10:18
Печать  
Проверил баг на релизе 2.5 - бага нет, уже легче.
Ищем дальше.
  

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: Ошибка с наследником группового контекста
Ответ #29 - 18. Августа 2006 :: 11:11
Печать  
Вести с полей -
теперь точно известно, чей код виноват в данном баге (это не ТурбоБЛ).
С помощью Саши Орефкова нашли способ исправления данного бага.
Остались мелкие детали и все - баг можно будет считать закрытым Улыбка
« Последняя редакция: 19. Августа 2006 :: 06:57 - artbear »  

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 
ОтправитьПечать