Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Передача параметров в VBScript (число прочтений - 30609 )
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #15 - 21. Марта 2008 :: 08:40
Печать  
Nick писал(а) 21. Марта 2008 :: 08:16:
А в 1с++ этот функционал перенести нельзя?

Код метода "Сериализовать" примитивен:
Код
Выбрать все
HRESULT CEventProxy::methSerialize(VARIANT* pRetVal, SAFEARRAY **pParams)
{
	CComVariant param=GetNParam(*pParams,0);
	VariantInit(pRetVal);
	pRetVal->vt=VT_BSTR;
	if(param.vt==VT_DISPATCH)
	{
		IMoniker* moniker;
		CreateObjrefMoniker(param.pdispVal,&moniker);
		moniker->GetDisplayName(NULL, NULL, &pRetVal->bstrVal);
		moniker->Release();
	}
	return S_OK;
}
 


в какой класс предлагаешь засунуть?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #16 - 21. Марта 2008 :: 08:52
Печать  
Цитата:
в какой класс предлагаешь засунуть?


Что то кроме класса "Система " ничего подходящего не наблюдается
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #17 - 21. Марта 2008 :: 09:04
Печать  
Да, можно в класс Система закинуть.
  

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: Передача параметров в VBScript
Ответ #18 - 21. Марта 2008 :: 09:05
Печать  
Nick писал(а) 21. Марта 2008 :: 08:16:
А в 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: Передача параметров в VBScript
Ответ #19 - 21. Марта 2008 :: 09:13
Печать  
artbear писал(а) 21. Марта 2008 :: 09:05:
Nick писал(а) 21. Марта 2008 :: 08:16:
А в 1с++ этот функционал перенести нельзя?

Создай соответствующий баг в багзилле. Тогда можно будет сделать, думаю, что возражать особо никто не будет Улыбка


Артур, может я ещё твои планы по развитию заносить в багзиллу буду? Автор этой ветки не я. Мне этот метод сейчас не нужен и будет ли когда - нибудь нужен неизвестно. Я просто внёс предложение.
Или твоё пожелание автору ветки?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #20 - 21. Марта 2008 :: 09:17
Печать  
Nick писал(а) 21. Марта 2008 :: 09:13:
Я просто внёс предложение.
Или твоё пожелание автору ветки?

"Я только разместил объяву" чтоли? Улыбка
Мое предложение для тебя, но в принципе, если не тебе, а кому-то нужно, пишите в багзиллу, разберемся Улыбка
  

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: Передача параметров в VBScript
Ответ #21 - 21. Марта 2008 :: 09:20
Печать  
Цитата:
"Я только разместил объяву" чтоли?


Точно Улыбка
  
Наверх
ICQ  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #22 - 25. Марта 2008 :: 14:23
Печать  
Написал ряд процедур и функций (1С+VBScript) для расширения функционала GflAx. Неделю писал с утра до вечера, давно так мозги не напрягал. Теперь играючи можно делать например такие вещи. Выложить исходники?
  

screen.png ( 119 KB | Загрузки )
screen.png
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #23 - 25. Марта 2008 :: 14:32
Печать  
maljaev писал(а) 25. Марта 2008 :: 14:23:
Выложить исходники?

Выкладывай, почему нет?
Только закилнь в "репо" со ссылкой на эту тему..
  
Наверх
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #24 - 25. Марта 2008 :: 14:37
Печать  
Выкладываю ту обработку которая этот график выводит. Там же все процедуры и функции для формирования ПОДОБНЫХ графиков (полигональные, круговые и 3D функции я пока не создавал) с описанием назначения и параметров.
  

Graphics.ert ( 51 KB | Загрузки )
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #25 - 25. Марта 2008 :: 14:38
Печать  
А как у GflAx обстоят дела с печатью этой красоты на бумаге?

понял.
у тебя на форме обычная 1с-вская картинка, которая считывается из файла, сформированного при помощи GflAx.Улыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #26 - 25. Марта 2008 :: 14:46
Печать  
Правильно!  Улыбка
Дальнейшее обсуждение конкретно этой обработки можно продолжить здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1206456271
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передача параметров в VBScript
Ответ #27 - 25. Апреля 2008 :: 09:24
Печать  
steban писал(а) 21. Марта 2008 :: 08:40:
Nick писал(а) 21. Марта 2008 :: 08:16:
А в 1с++ этот функционал перенести нельзя?

Код метода "Сериализовать" примитивен:
Код
Выбрать все
HRESULT CEventProxy::methSerialize(VARIANT* pRetVal, SAFEARRAY **pParams)
{
	CComVariant param=GetNParam(*pParams,0);
	VariantInit(pRetVal);
	pRetVal->vt=VT_BSTR;
	if(param.vt==VT_DISPATCH)
	{
		IMoniker* moniker;
		CreateObjrefMoniker(param.pdispVal,&moniker);
		moniker->GetDisplayName(NULL, NULL, &pRetVal->bstrVal);
		moniker->Release();
	}
	return S_OK;
}
 


в какой класс предлагаешь засунуть?

Видимо, я еще более примитивен Улыбка
Т.к. я не в теме практически, напиши код в терминах 1С для CValue
Тогда я без проблем смогу вставить его в 1С++ 2.5 и 3.0
  

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: Передача параметров в VBScript
Ответ #28 - 28. Апреля 2008 :: 10:29
Печать  
Nick писал(а) 21. Марта 2008 :: 08:16:
artbear писал(а) 21. Марта 2008 :: 07:58:
steban писал(а) 21. Марта 2008 :: 07:47:
При попытке засунуть в скрипт встроенный в 1С объект (типа ТЗ, СЗ и др.) через AddObject получишь ошибку "плохой тип переменной".
Обходится с помощью ObjRef-сериализации.

Это куда-нибудь в ФАК нужно занести, ведь Степан не всегда под рукой Улыбка


А в 1с++ этот функционал перенести нельзя?

Зарегистрировал баг
http://www.1cpp.ru/bugs/show_bug.cgi?id=3783
  

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: Передача параметров в VBScript
Ответ #29 - 28. Апреля 2008 :: 11:04
Печать  
berezdetsky писал(а) 26. Апреля 2008 :: 09:16:
Код
Выбрать все
WINOLEAPI CreateObjrefMoniker(
    LPUNKNOWN pUnk,    //Pointer to the object
    LPMONIKER *ppMk    //Address of pointer to OBJREF moniker
); 


Код
Выбрать все
		CComVariant param;
		((CBLMyEx*)NULL)->ValueToVariantEx(ppValue[0][0],&param);
		if(param.vt==VT_DISPATCH)
		{
			IMoniker* moniker;
			CreateObjrefMoniker(param.pdispVal,&moniker);
			LPOLESTR pszDisplayName = NULL;
			moniker->GetDisplayName(NULL, NULL, &pszDisplayName);
			rValue = CString(pszDisplayName);
			moniker->Release();
		} else {
			rValue = "";
		}
 


На тестовом коде
Код
Выбрать все
Процедура Тест_ПередачаВСкриптСПомощьюСериализовать() Экспорт
	Сам = Сам();

	Система = СоздатьОбъект("Система");

	Scr=СоздатьОбъект("MSScriptControl.ScriptControl");
	scr.Language="vbscript";

	Т = СоздатьОбъект("ТаблицаЗначений");
	Т.НоваяКолонка("t1");
	Т.НоваяСтрока();
	лНужноеЗначение = 111;
	Т.t1 = лНужноеЗначение;

	Scr.AddCode("
	        |Function TestVT
	        |Set v=GetObject("""+Система.Сериализовать(Т)+""")
	        |	v.SelectLines()
	        |	v.GetLine()
	        |	TestVT=v.t1
	        |End Function");

	Сам.ПроверитьРавенство(Scr.Eval("TestVT()"), лНужноеЗначение);

КонецПроцедуры 


Что-то у меня после такого кода при завершении работы 1С начал зависать процесс 1cv7.exe Печаль
Я так понимаю, где-то ссылка повисла Печаль
Чего делать?
  

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