powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / обращение по имени 8.1
8 сообщений из 8, страница 1 из 1
обращение по имени 8.1
    #35625278
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как создать менеджер_объекта_конфигурации по полному имени?

Например хочу
вместо
Код: plaintext
x= Документы.РеализацияТоваровУслуг.ПустаяССылка();
что-то вида:
Код: plaintext
x=Ф( "Документы.РеализацияТоваровУслуг").ПустаяССылка();
где Ф некая ф-я.
Причем храняться у меня именно строки вида Метаданные.ПолноеИмя
("Справочники.Контрагенты" и т.п.)
Пока могу что-то типа:
http://www.sql.ru/forum/actualthread.aspx?tid=534619
т.е. вот так:
Код: plaintext
1.
2.
3.
4.
//тест
	Менеджер = Новый ("ДокументМенеджер.РеализацияТоваровУслуг");
	//РеализацияТиУ =Документы.РеализацияТоваровУслуг.ПустаяСсылка();
	РеализацияТиУ =Менеджер.ПустаяСсылка();
	Сообщить(Менеджер.ПустаяСсылка() =Документы.РеализацияТоваровУслуг.ПустаяСсылка()); 
Но это ничем не лучше выпарсивания префикса и кейсирования рез-та
Код: plaintext
1.
2.
3.
IF префикс = "Документы" THEN
    v=Документы[ОтсатокИмени];
ELSIF  префикс = "Справочники" THEN
    v=Справочники[ОтсатокИмени];
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35625282
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо это ничем не лучше в том смысле, что хранится строка не так, и ее надо ,распарсив, исправить.
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35625313
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполнить (Execute)
Синтаксис:
Выполнить(<Строка>)
Параметры:
<Строка>
Строка, содержащая текст исполняемого кода.
Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.


Выполнить("менеджер_объекта_конфигурации=Документы.РеализацияТоваровУслуг;");


Только менеджер_объекта_конфигурации уже должна существовать - либо как

перем менеджер_объекта_конфигурации;
в начале модуля, либо предварительным присваиванием значения.
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35625330
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вычислить("Документы.РеализацияТоваровУслуг.ПустаяСсылка()")
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35625355
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Reder,


Да не, я там с объектом потом по разному кумекать буду. (сейчас копипастнул 3 процки для разных объектов, но менять их синхронно - как-то нехорошо, да еще пара объектиков намечается). Хотя, видимо, копипастное решение - самое быстрое.



Как у Выполнить(" код "); Вычислить("код") ; со скоростью??

не проще
Заменить "." на "," . затем "запарсить" части строки в структуру, потом откейсить (у меня пока только 2 объектных типа.
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35630274
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
закрою тему 1chainik выпарсивания префикса и кейсирования рез-тасделал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
	IF left (ИмяТипаС,  12 )= "Справочники." Then
		Менеджер = Справочники[mid(ИмяТипаС, 13 )];		
	ELSIF left (ИмяТипаС,  10 )= "Документы." Then
		Менеджер = Документы[mid(ИмяТипаС, 11 )];
	ELSIF left (ИмяТипаС,  17 )= "РегистрыСведений." Then
		Менеджер = РегистрыСведений[mid(ИмяТипаС, 18 )];
	ELSE
		Сообщить("НеожиданныйТип " + ИмяТипаС, СтатусСообщения.Внимание);
		RETURN неопределено;
	ENDIF;



PS: теперь ковыряю в носу в попытках извлечь оттуда знание следующего порядка: имеет ли присвоение менеджера "явеное", такое скажем
Код: plaintext
Менеджер=Документы.РеализацияТоваровУслуг;
преимущества перед присвоением Менеджера по имени
Код: plaintext
Менеджер=Документы["РеализацияТоваровУслуг"];
дополнительно к наличию/отсутствию подсветки методов/св-в в редакторе кода. Т.е. по части быстродействия.
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35636713
Terv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1chainik,

сдается мне, что есть большая вероятность .. реализации через заднее место ...
откуда берутся строки вида Метаданные.ПолноеИмя ?
...
Рейтинг: 0 / 0
обращение по имени 8.1
    #35639699
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terv1chainik,

сдается мне, что есть большая вероятность .. реализации через заднее место ...
откуда берутся строки вида Метаданные.ПолноеИмя ?
читаем выше:
Код: plaintext
"Причем храняться у меня именно строки вида Метаданные.ПолноеИмя"
т.е., если читать глазами, видно, что строки берутся из некоего хранилища, где хранятся. Хотите обсудить физический тип хранилища? Нет? ну так зачем спрашиваете?




ПС: После всего сказанного Вы таки имеете сказать что-то конкретное? Например Вы имеете сказать, что в это самое хранилище надо положить не одну строку, а набор полей? с тем, чтобы потом не заниматься декомпозицией строки? Ну дык кто ж задним числом с этим спорит. До сих пор попросту не было в оном необходимости. А накладные расходы на анализ строки - таки не столь велики, чтобы перекраивать структуру базы лога (того самого "хранилища").
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / обращение по имени 8.1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]