Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Ошибка передачи параметров по ссылке! Ахтунг! (число прочтений - 6169 )
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Ошибка передачи параметров по ссылке! Ахтунг!
05. Мая 2008 :: 04:27
Печать  
Если первый параметр прередается по ссылке а втророй по значению, то первый судя по всему тоже передается по значению  Ужас
Т.е. вот такой код

Код
Выбрать все
Функция ПоСсылке2(сПараметр, Знач сПараметр2) Экспорт
	сПараметр = "Возвращаемое значение";
	Возврат 1;
КонецФункции	// ПоСсылке 



В параметр сПараметр вернет пустое значение!

1cpp 2.5 nightbild

Тест прилагаю
  

TestsParam.rar ( 3 KB | Загрузки )
Наверх
ICQ  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #1 - 05. Мая 2008 :: 04:46
Печать  
Точно. Похоже, из той же оперы, что и http://www.1cpp.ru/forum/YaBB.pl?num=1209906104
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #2 - 05. Мая 2008 :: 04:59
Печать  
Зарегистрировал баг:
http://www.1cpp.ru/bugs/show_bug.cgi?id=3800
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #3 - 05. Мая 2008 :: 05:22
Печать  
Баг принял, буду разбираться.
  

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: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #4 - 05. Мая 2008 :: 13:04
Печать  
Это очень старая ошибка 1С++ Печаль
В коде стоит именно такое условие - если указано, что хотя бы один
из параметров передается по значению, значит, и все остальные
параметры после вызова метода будут восстановлены на исходные
значения.
Буду думать.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #5 - 07. Мая 2008 :: 01:53
Печать  
Как идёт мыслительный процесс?
Я вот честно говоря удивляюсь как у меня вообще что - либо работает с такой реализацией параметров. Например какая-нибудь рекурсия Печаль
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #6 - 07. Мая 2008 :: 03:53
Печать  
Сейчас нормальное поведение такое - не использовать Знач, его и так почти никто не юзает Улыбка
  

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



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #7 - 07. Мая 2008 :: 05:12
Печать  
Nick писал(а) 07. Мая 2008 :: 01:53:
Как идёт мыслительный процесс?
Я вот честно говоря удивляюсь как у меня вообще что - либо работает с такой реализацией параметров. Например какая-нибудь рекурсия Печаль

Странно в моем классе рекурсия работает но она без экспорта, может тебе временно
обертка экспортного метода поможет  Подмигивание
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #8 - 07. Мая 2008 :: 05:17
Печать  
artbear писал(а) 07. Мая 2008 :: 03:53:
Сейчас нормальное поведение такое - не использовать Знач, его и так почти никто не юзает Улыбка

Улыбка
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #9 - 08. Мая 2008 :: 04:28
Печать  
artbear писал(а) 07. Мая 2008 :: 03:53:
Сейчас нормальное поведение такое - не использовать Знач, его и так почти никто не юзает Улыбка

Нууу...  Я вот юзаю...  Стало быть, я почти никто   Смех

Сдаётся мне, что ни в 2.0 ни в 2.5  это поведение исправлять уже нельзя ни в коем случае.  Потому что на ровном месте, в тысячу лет назад отлаженном и вылизанном коде, могут запросто появится косяки. И найти места возникновения этих косяков практически нереально. Так что придётся оставить всё как есть.  Насчёт 3/[[ можно подумать, но думать надо тщательно.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #10 - 08. Мая 2008 :: 04:40
Печать  
Это а может настройку для обратной совместимости сделать?
Ну и как минимум надо в доке это описать. Потому что такое поведение очень непрозрачно для пользователя
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #11 - 08. Мая 2008 :: 06:27
Печать  
ADirks писал(а) 08. Мая 2008 :: 04:28:
Сдаётся мне, что ни в 2.0 ни в 2.5  это поведение исправлять уже нельзя ни в коем случае.  Потому что на ровном месте, в тысячу лет назад отлаженном и вылизанном коде, могут запросто появится косяки. И найти места возникновения этих косяков практически нереально. Так что придётся оставить всё как есть.  Насчёт 3/[[ можно подумать, но думать надо тщательно.

+1
Насчет 3/[[ не понял Улыбка
  

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: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #12 - 08. Мая 2008 :: 06:28
Печать  
Nick писал(а) 08. Мая 2008 :: 04:40:
Это а может настройку для обратной совместимости сделать?
Ну и как минимум надо в доке это описать. Потому что такое поведение очень непрозрачно для пользователя

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

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #13 - 08. Мая 2008 :: 06:39
Печать  
Цитата:
В доке описать само собой, а настройку никак нельзя, потому что классы могут использоваться разные, созданные в разных режимах, т.е. возможна несовместимость классов

Плохо Печаль. Таким образом придется всё время помнить о таком поведении...
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка передачи параметров по ссылке! Ахтунг!
Ответ #14 - 08. Мая 2008 :: 06:42
Печать  
В 3.0 решим эту проблему обязательно.
  

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