Опрос
Опрос Тема Опроса: Нужна фича или нет?
bars   pie

Да    
  15 (88.2%)
Нет    
  1 (5.9%)
Мне все равно    
  1 (5.9%)




Всего голосов: 17
« Создано: artbear : 12. Декабря 2007 :: 15:32 »
Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Параметры по умолчанию - брать из модуля класса ? (число прочтений - 12328 )
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #15 - 13. Декабря 2007 :: 12:20
Печать  
kms писал(а) 13. Декабря 2007 :: 12:06:
fez писал(а) 13. Декабря 2007 :: 09:41:
kms писал(а) 12. Декабря 2007 :: 23:27:
у кого-нибудь используется этот расширенный синтаксис задания параметров по-умолчанию?

У меня.

Я должен был догадаться Улыбка
Если будут функторы, которые можно использовать в качестве параметров по умолчанию, это позволит отказаться от этого функционала?

Будет зависеть от удобности их использования.

Ну и не надо забывать, что кроме меня может оказаться еще кто-нибудь, кто этим вдруг случайно воспользовался. deb в свое время этим точно пользовался. Так что убирать совсем этот функционал, думаю, не стоит.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #16 - 13. Декабря 2007 :: 12:22
Печать  
ev-kov писал(а) 13. Декабря 2007 :: 10:50:
При текущем поведении, если в прм-файле заданы параметры по-умолчанию для метода "МетодКОП", вызов ОбъектКОП.МетодКОП() в модуле класса отличается от простого вызова МетодКОП(), что часто приводит к путанице


Если ты вызываешь метод класса - надо всегда вызывать его как метод класса. Через Сам(Контекст).
Путаница возникает именно из-за того, что метод класса вызывается как приватная процедура класса.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #17 - 13. Декабря 2007 :: 14:47
Печать  
fez писал(а) 13. Декабря 2007 :: 09:41:
kms писал(а) 12. Декабря 2007 :: 23:27:
у кого-нибудь используется этот расширенный синтаксис задания параметров по-умолчанию?

У меня.

Ну и не надо забывать, что кроме меня может оказаться еще кто-нибудь, кто этим вдруг случайно воспользовался


У меня, конечно же, также используется расширенный синтаксис Улыбка
Просто у меня подобный синтаксис используется в более редких случаях, чем юзаются обычные, штатные параметры по-умолчанию Улыбка

ЗЫ неужели пользователей такого синтаксиса так мало, вот уж не ожидал Улыбка
  

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 - 13. Декабря 2007 :: 14:51
Печать  
Про ЗНАЧ также подумаю.

Кстати, решение с параметрами по умолчанию я также делал в 1С++ для вызова методов контекста типа Конт.Метод(), у меня успешно юзается Улыбка
  

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: Параметры по умолчанию - брать из модуля класс
Ответ #19 - 13. Декабря 2007 :: 16:46
Печать  
artbear писал(а) 13. Декабря 2007 :: 14:51:
Кстати, решение с параметрами по умолчанию я также делал в 1С++ для вызова методов контекста типа Конт.Метод(), у меня успешно юзается Улыбка

Не понял. Можно еще раз для особо тупых? Улыбка
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #20 - 13. Декабря 2007 :: 16:50
Печать  
Для ТурбоБЛ в 2.5 сейчас такое поведение -
если в модуле какой-нибудь формы определен Метод(Парам = "ЗначениеПарам"), то прямой вызов Конт.Метод() будет означать вызов Конт.Метод("ЗначениеПарам"), ну т.е. как обычно.

Раньше в 2.5, а также сейчас в 2.0.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: Параметры по умолчанию - брать из модуля класс
Ответ #21 - 13. Декабря 2007 :: 16:56
Печать  
В принципе, я решение первого поста реализовал и оттестировал в конфе тестирования 1С++ Улыбка

Но есть маленький, забытый вопрос Улыбка
Предположим, в прм-файле описан метод
Код
Выбрать все
class КОП = КОП.txt
{
  Строка Метод(Строка Парам);
}; 


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



Главный вопрос: что должно произойти при вызове ОбъектКОП.Метод() ?

1С должна или выдать исключение, т.к. главенство прм-файла,
или нормально отработать и вернуть "ЗначениеМодульКласса", т.к. есть параметр по-умолчанию в модуле?

ЗЫ свои правки еще не залил.
  

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: Параметры по умолчанию - брать из модуля класс
Ответ #22 - 13. Декабря 2007 :: 17:06
Печать  
Думаю, что должна остаться совместимость. Поскольку сейчас такой "конфликт" вызывает исключение, то и в новом варианте должно быть главенство prm файла.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #23 - 13. Декабря 2007 :: 17:07
Печать  
Согласен, но это самый сложный вариант Улыбка
Лады, счас поправлю и залью код вместе с тестами
  

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: Параметры по умолчанию - брать из модуля класс
Ответ #24 - 13. Декабря 2007 :: 17:08
Печать  
Еще лучше можно обосновать главенство prm файла вот таким примером:

в прм-файле описан метод
Код
Выбрать все
class КОП = КОП.txt
{
  Строка Метод(Строка Парам = "МодуляКлассаЗначение");
}; 


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



Цитата:
Главный вопрос: что должно произойти при вызове ОбъектКОП.Метод() ?

В таком варианте ответ на вопрос очевиден, кмк.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #25 - 13. Декабря 2007 :: 17:14
Печать  
Это само собой Улыбка
есть и такой тест Улыбка
  

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: Параметры по умолчанию - брать из модуля класс
Ответ #26 - 13. Декабря 2007 :: 17:21
Печать  
artbear писал(а) 13. Декабря 2007 :: 17:14:
Это само собой Улыбка
есть и такой тест Улыбка

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #27 - 13. Декабря 2007 :: 17:24
Печать  
Согласен, я на всякий случай спросил Улыбка
Типа ставлю всех в известность Улыбка
  

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: Параметры по умолчанию - брать из модуля класс
Ответ #28 - 13. Декабря 2007 :: 17:39
Печать  
Артур, посмотри заодно сборку документации. Что-то у меня ночник ломается с ошибкой hhc.exe. Подозрение падает на Informer.txt.

P.S. И вообще там много сообщений об ошибках/предупреждений выскакивает. Hooker.txt этим особенно грешит.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #29 - 13. Декабря 2007 :: 17:46
Печать  
Про ошибки в доке знаю давно, но пока ничего не могу поделать Печаль
т.к. совершенно не понимаю, в каком месте текстовых файлов искать ошибку Печаль Печаль
В сообщениях об ошибках указываются совершенно левые номера строк.
Я уже и опытным путем пытался найти, и нифига Печаль

Буду очень рад, если кто-то поможет Улыбка
  

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