Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 11 ОтправитьПечать
Очень популярная тема (более 25 ответов) Динамич. создание классов и подкл. файл. реализац. (число прочтений - 55589 )
KonstSV
Junior Member
**
Отсутствует



Сообщений: 39
Местоположение: Москва
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #60 - 05. Февраля 2007 :: 08:01
Печать  
Цитата:
Если нету defcls.prm - то пусть себе автоматически не загружаются. Что, других названий для файла определений нельзя придумать?


Кстати, сейчас именно так и проиходит. Если нет defcls.prm, естественно, классы и не загружаются.

Предлагается к этому поведению добавить несколько несколько методов, которые дадут необходимую гибкость
в загрузке и выгрузке классов
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #61 - 05. Февраля 2007 :: 09:06
Печать  
fez писал(а) 05. Февраля 2007 :: 07:23:
Если нету defcls.prm - то пусть себе автоматически не загружаются. Что, других названий для файла определений нельзя придумать?

У 300 легальных клиентов этот файл уже есть.  Улыбка Печаль

А, возможно, есть еще нелегальные клиенты.  Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #62 - 13. Февраля 2007 :: 14:17
Печать  
А на чем все таки остановились? Будут сканироваться каталоги на наличие классов или нет?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #63 - 15. Февраля 2007 :: 21:31
Печать  
оёё...
Совместимость оставте реформаторы.....
А то захочется продгрузить 1С++.dll с новой фичей в базу и начнется перешивание кафтана...
Помните о том, что иногда клиенты "на том конце провода" могут только md загрузить и сохранение данных сделать. Ну еще зарплату выдать....
  
Наверх
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #64 - 16. Февраля 2007 :: 06:51
Печать  
Ну если они больше ничего не могут, то пусть и не трогают 1cpp.dll.  Улыбка
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #65 - 16. Февраля 2007 :: 07:25
Печать  
sedmin писал(а) 05. Февраля 2007 :: 09:06:
fez писал(а) 05. Февраля 2007 :: 07:23:
Если нету defcls.prm - то пусть себе автоматически не загружаются. Что, других названий для файла определений нельзя придумать?

У 300 легальных клиентов этот файл уже есть.  Улыбка Печаль

А, возможно, есть еще нелегальные клиенты.  Улыбка


Напиши "переходную" версию конфигурации, которая до загрузки 1С++ удалит файл defcls.prm.

P.S. Не надо трогать совместимость.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #66 - 21. Февраля 2007 :: 06:09
Печать  
Мой подарок всем пользователям 1С++ на 23 февраля Улыбка

Сделана возможность динамического добавления новых классов и файлов описаний.


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

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

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


Прямой линк http://slil.ru/23965995
  

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: Динамич. создание классов и подкл. файл. реали
Ответ #67 - 21. Февраля 2007 :: 06:11
Печать  
Вот пример работающего кода из теста
Код
Выбрать все
Функция СоздатьФайлНовогоКласса(НаименованиеНовогоКласса, НаименованиеМетодов)
	ИмяФайлаКласса=СтрЗаменить(Сам().ПолучитьПуть(), "MetaInfoClassesТесты.txt", НаименованиеНовогоКласса+".txt");
	Текст=СоздатьОбъект("Текст");

	Текст.ДобавитьСтроку("Перем Перем_"+НаименованиеМетодов+";");
	Текст.ДобавитьСтроку("Функция Функция_"+НаименованиеМетодов+"() Экспорт
			|	Возврат 0;
			|КонецФункции");
	Текст.ДобавитьСтроку("Процедура Процедура_"+НаименованиеМетодов+"() Экспорт
			|	Возврат;
			|КонецПроцедуры");
	Текст.Записать(ИмяФайлаКласса);

	Сам().ДобавитьВременныйФайл(ИмяФайлаКласса);

	Возврат ИмяФайлаКласса;
КонецФункции

Функция СоздатьОписаниеНовогоКласса(НаименованиеНовогоКласса)
	ИмяФайлаОписанияКласса = "Описание_"+НаименованиеНовогоКласса+".txt";
	ИмяФайлаОписанияКласса = СтрЗаменить(Сам().ПолучитьПуть(), "MetaInfoClassesТесты.txt", ИмяФайлаОписанияКласса);
	Текст=СоздатьОбъект("Текст");
	Текст.ДобавитьСтроку("class "+НаименованиеНовогоКласса+" = "+НаименованиеНовогоКласса+".txt
		|{
		|}");
	Текст.Записать(ИмяФайлаОписанияКласса);

	Сам().ДобавитьВременныйФайл(ИмяФайлаОписанияКласса);

	Возврат ИмяФайлаОписанияКласса;
КонецФункции

Процедура Тест_ЗагрузитьОписаниеКлассов() Экспорт
	МетаИнфо = МетаИнфо();        
	Математика = СоздатьОбъект("Математика");
	СлучайноеЧисло = Математика.RAND();

	// использую случайное имя класса, чтобы можно было добавлять,
	// 	иначе будет ошибка повторного определения класса
	ИмяНовогоКласса = "НовыйКласс_"+Строка(СлучайноеЧисло);

	НаименованиеМетодов = "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: Динамич. создание классов и подкл. файл. реали
Ответ #68 - 21. Февраля 2007 :: 06:17
Печать  
Все забывал сказать Улыбка
динамическое подключение классов можно использовать для выпуска универсальных обработок, использующий 1С++ и спец.классы

Т.е. теперь можно на лету, прямо в коде обработки или любого класса, подключать нужные классы и сразу же приступать к работе !!

Правда, если класс уже существует, будет выдано исключение и новая версия класса подключена не будет.
Тут я еще размышляю, как поступить.
ИМХО здесь нужна опциональность -
или запретить обновление, выбросив исключение (сейчас)
или выполнить сброс кеша оптимизации для данного класса и загрузить новую версию.
  

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


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #69 - 21. Февраля 2007 :: 07:08
Печать  
artbear
Спасибо, хороший подарок!

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


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #70 - 21. Февраля 2007 :: 18:07
Печать  
fez писал(а) 16. Февраля 2007 :: 07:25:
Напиши "переходную" версию конфигурации, которая до загрузки 1С++ удалит файл defcls.prm.


Эх, Федор! Ты бы знал, сколько раз уже приходилось подобным заниматься...
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #71 - 21. Февраля 2007 :: 20:37
Печать  
Цитата:
artbear
Спасибо, хороший подарок!

зы: осталось сделать самую малость: чтобы в момент создания класса, если его нет в списке подключенных, 1С++ нашла файл в каталоге классов и подключила его.


А почему бы эту заботу не переложить на плечи разработчика?
Зачем поручать поиск и перебор файлов 1cpp?
Разработчик сам может установить список файлов/классов для загрузки, и соответствено указать место их хранения.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #72 - 21. Февраля 2007 :: 20:38
Печать  
artbear писал(а) 21. Февраля 2007 :: 06:09:
[b]Мой подарок всем пользователям 1С++ на 23 февраля Улыбка


Спасибо! Потестю с утра!
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Динамич. создание классов и подкл. файл. реали
Ответ #73 - 21. Февраля 2007 :: 20:42
Печать  
artbear писал(а) 21. Февраля 2007 :: 06:17:
или выполнить сброс кеша оптимизации для данного класса и загрузить новую версию.


А какое будет поведение для таких классов при выполнении ОчиститьДанныеОптимизацииКлассов?
Заново перечитает файл как и задумано?
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Динамич. создание классов и подкл. файл. реали
Ответ #74 - 22. Февраля 2007 :: 03:07
Печать  
Arta
Цитата:
Зачем поручать поиск и перебор файлов 1cpp?
Разработчик сам может установить список файлов/классов для загрузки, и соответствено указать место их хранения.


Ты предлагаешь перед каждым созданием объекта проверять наличие регистрации класса? В случае отсутствия подключать КОП и только затем его инстанцировать?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 11
ОтправитьПечать