Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11  ОтправитьПечать
Очень популярная тема (более 25 ответов) Динамич. создание классов и подкл. файл. реализац. (число прочтений - 51931 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #120 - 02. Марта 2007 :: 13:50
Печать  
sedmin писал(а) 02. Марта 2007 :: 12:08:
Может я не догоняю? Вот сейчас какая ситуация: ты приходишь, приносишь отчет на дискетке, говоришь "Сейчас покажу.", и паказываешь.

Причем тут отчет и класс? Просто отчет он и так запустится.

Если отчет у тебя вместе с дополнительным классом, то тебе и сейчас придется перегрузить 1С для его подключения (либо использовать метод Артура).
С моим вариантом ты кладешь класс в хранилище классов (в %classpath%) и запускаешь свой отчет.

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #121 - 02. Марта 2007 :: 13:51
Печать  
artbear писал(а) 02. Марта 2007 :: 12:13:
2. Вариант Палыча - через точку обозначется пространство имен, т.е. отдельный каталог. Мне лично так не совсем удобно.
У меня также много классов с несколькими точками в классах.

Мне это тоже не нравится Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #122 - 02. Марта 2007 :: 13:52
Печать  
orefkov писал(а) 02. Марта 2007 :: 11:51:
Совсем запутался, как хотите сделать.
Правильно ли я понял - перехватываем СоздатьОбъект("ИмяТипа") и ищем "ИмяТипа.ert" в спецпапке?
А если я кину в папку для классов файл "Word.Document.ert", а в коде напишу СоздатьОбъект("Word.Document") ?



а если ты пропишешь в defcls.prm "Word.Document"? то?

это на совести разработчика...


P.S. Альф прав :-D
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #123 - 02. Марта 2007 :: 14:29
Печать  
sedmin
Цитата:
Вот оно в чем дело! Если тебе этого не нужно, то не надо говорить, что это никому не нужно. И если тебя устраивает кривой способ описания класса, то это не значит, что он всех устраивает.

Ты завел речь о формате заголовка класса, о том, чтобы он более органично вписывался в код. Однако, если ты прочтешь название ветки, то не увидишь даже намека о формате заголовка класса. На данный момент, у нас есть возможность хранить заголовок и код класса в едином модуле. Для дальнейшего обсуждения сабжа этого факта достаточно. Есть желание продолжить - заводи новую.


Цитата:
Если ты этого не используешь, то это не значит, что этого никто не использует.

Что это? Что каждый отчет - это отдельное приложение? Ну не знаю. Видимо, надо определиться с терминологией.


Цитата:
Ну почему я все классы должен сваливать в один каталог?

Скажи, кто тебя к принуждает к такому извращению? Мы его вместе задавим интеллектом! Смех


Цитата:
В конце концов, в Яве есть CLASSPATH, я для каждого приложения-отчета я могу его настроить так как захочу. И также классы могут искаться в текущей папке. Почему я не могу желать того же.

См. выше. Плюс ответ Arta


Цитата:
Встречный вопрос: вы работали в Яве?

Коллега, если вы боитесь поставить меня в неловкое положение техническими подробностями, то совершенно напрасно.


Цитата:
У каждого отчета будет свой classpath?

Classpath со списком путей будет у каждой информационной базы.


Цитата:
А как какой-то отчет может повлиять на classpath в уже запущенной 1C?

Может я не догоняю? Вот сейчас какая ситуация: ты приходишь, приносишь отчет на дискетке, говоришь "Сейчас покажу.", и паказываешь.

А у тебя как будет? Ты приходишь, говоришь: "Давайте ка запишем эти классы на сервер, ну или поменяем classpath. Но тогда 1С надо будет перезапустить."


Вариантов масса: от модификации classpath [не переменной среды, естественно] без перезапуска 1С до использования существующего уже метода для загрузки класса из произвольного файла.



orefkov
Цитата:
Правильно ли я понял - перехватываем СоздатьОбъект("ИмяТипа") и ищем "ИмяТипа.ert" в спецпапке?


Речь пока о концепции. Перехват и поиск файла - это технические детали. Хотя, примерно так.


Цитата:
А если я кину в папку для классов файл "Word.Document.ert", а в коде напишу СоздатьОбъект("Word.Document") ?

Не кидай. Word может обидеться. Подмигивание
Видимо, будет то же самое, если в дефцлс описать класс с именем Word.Document.
  
Наверх
ICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #124 - 02. Марта 2007 :: 14:36
Печать  
Мда... я малость припоздал со своей портянкой Смех

artbear, Arta
А что конкретно вам не нравится?
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #125 - 02. Марта 2007 :: 14:53
Печать  
Цитата:
sedmin
Цитата:
Вот оно в чем дело! Если тебе этого не нужно, то не надо говорить, что это никому не нужно. И если тебя устраивает кривой способ описания класса, то это не значит, что он всех устраивает.

Ты завел речь о формате заголовка класса, о том, чтобы он более органично вписывался в код. Однако, если ты прочтешь название ветки, то не увидишь даже намека о формате заголовка класса. На данный момент, у нас есть возможность хранить заголовок и код класса в едином модуле. Для дальнейшего обсуждения сабжа этого факта достаточно. Есть желание продолжить - заводи новую.

Так да не так, коллега. Кривой метод загрузки классов (даже если описание хранится вместе с классом) вынуждает придумывать новые извращения и завязыватся на них.

Если реализовать мое предложение, то каждый сможет организовать понравившийся ему способ загрузки. А один, самолучший способ можно будет зафиксировать внутри 1С++. А уж если реализовать ЗагрузитьОписанниеКласса("ИмяКласса", "ИмяФайла"), то уж точно можно будет загородить любой огород. Хочешь - с DefCls, хочешь - с папками, хочешь - из текущей папки, хочешь - через classesroot, хочешь - через classpath.

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


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #126 - 02. Марта 2007 :: 15:01
Печать  
sedmin
Цитата:
Если реализовать мое предложение, то каждый сможет организовать понравившийся ему способ загрузки. А один, самолучший способ можно будет зафиксировать внутри 1С++. А уж если реализовать ЗагрузитьОписанниеКласса("ИмяКласса", "ИмяФайла"), то уж точно можно будет загородить любой огород. Хочешь - с DefCls, хочешь - с папками, хочешь - из текущей папки, хочешь - через classesroot, хочешь - через classpath.


Да в том то и дело, что не любой. Ты что же, предлагаешь перед каждым созданием объекта проверять подключен ли нужный класс?
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #127 - 02. Марта 2007 :: 15:08
Печать  
Я же написал:
Цитата:
А один, самолучший способ можно будет зафиксировать внутри 1С++.

Останется решить, какой способ будет самолучшим. Но если мне не понравится твой способ, то я смогу сделать другой. А иначе - шиш.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #128 - 02. Марта 2007 :: 15:17
Печать  
Вот так и рождаются форки...  Язык
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #129 - 02. Марта 2007 :: 15:19
Печать  
Наоборот, это у вас форк получается. Если же сделать мой вариант, то тот, кого не устроит основной способ сможет воспользоваться обходным.
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #130 - 02. Марта 2007 :: 16:24
Печать  
sedmin
Коллега, уточни, пожалста, чем тебе не нравится метод, реализованый Артуром?

Цитата:
MetaInfoClasses::ЗагрузитьОписаниеКлассов(ИмяФайлаОписанияКлассов)

Загружает описания классов и сами классы из соответствующих файлов.
Синтаксис описания и реализации классов - это обычный синтаксис 1С++

Как обычно, каждый класс должен быть реализован в отдельном файле.
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #131 - 02. Марта 2007 :: 16:50
Печать  
Тем, что мне не нравится синтаксис 1С++.

Тем, что приходится одно и то же писать в двух файлах. Или, что не многим лучше, делать //#include. Тем, что я не могу описание метода поместить рядом с методом. Тем, что вследствие include, в .prm файлах нет нормальной диагностики.

В конце концов, тем, что это полумера. Какое-то заплаточное решение - ни то ни се.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #132 - 04. Марта 2007 :: 22:41
Печать  
artbear писал(а) 21. Февраля 2007 :: 06:09:
Цитата:
MetaInfoClasses::ЗагрузитьОписаниеКлассов(ИмяФайлаОписанияКлассов)

Загружает описания классов и сами классы из соответствующих файлов.
Синтаксис описания и реализации классов - это обычный синтаксис 1С++

Как обычно, каждый класс должен быть реализован в отдельном файле.



Артур, надо бы б в прикрепленной ветке про "новое в сборке" отразить это. А то опять будут вопросы плодить на форуме...
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #133 - 05. Марта 2007 :: 03:22
Печать  
sedmin
Насчет полумеры полностью согласен.
Я тут подумал над твоими аргументами насчет внешних отчетов... действительно, они являются чем-то вроде внешнего приложения.

All
Для упрощения запуска внешних отчетов на "чужом" компе, предлагаю ввести метод для подключения путей к классам. Т.е. при открытии формы вызываем, например:
Код
Выбрать все
перем
   путь, файл, окружение
;

РасположениеФайла(путь, файл);
окружение = СоздатьОбъект("Окружение1Срр");
окружение.ДобавитьПуть(путь);
 


При закрытии, сответственно, этот путь следует удалить.
  
Наверх
ICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #134 - 05. Марта 2007 :: 03:36
Печать  
sedmin
А насчет загрузки класса из конкретного файла мое мнение неизменно: это лишнее. Достаточно только указания путей к классам.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 
ОтправитьПечать