Показать сообщение отдельно
Старый 03.07.2009, 14:42   #6  
_scorp__imported is offline
_scorp__imported
Участник
 
1 / 10 (1) +
Регистрация: 03.07.2009
Я вообще программировать в Nav не умею, но попытаюсь Вам помочь, т.к. подключиться к 1С можно из любой программы используя Com.
1. Прежде всего на компьютере, где будет запускаться вызов COM клиента 1С, этом COM клиент должен быть установлен. Для проверки сделайте в реестре поиск по "v81.COMConnector" Если такой ProgId существует, то компонент зарегистрирован.
2. Вот пример кода из Аксапты как выполнять запросы в 1С.
Код:
	str				text;
	//В аксапте есть универсальный класс Com, через который можно создать любой Com-объект по его ProgId или CLSID. Думаю у вас должно быть что-то подобное.
	Com			 com1c, con, query, Result, Choose;
   ;
	//Создаем объект
	com1c = new Com("v81.COMConnector");
	// Подключение к БД
	con = com1c.Connect("srvr=\"сервер\";ref=\"конфигурация\";Usr=\"пользователь\";pwd=\"пароль\";");


	//Пишем запрос на синтаксисе 1С
	text = " ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица"
		 + " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц"
		 + " ПО ФизическиеЛица.Ссылка = ФИОФизЛиц.ФизЛицо"
		 + " ГДЕ ФизическиеЛица.Код <> \"000000001\"";

	// Создаем объект Запрос
	query = con.NewObject("Запрос");
	query.Text(Text);

	// Выполнение запроса
	Result = Query.Execute();
	//Открываем выборку запроса
	Choose = Result.Choose();

	// Выборка результата выполнения запроса
	While (Choose.Next())
	{
		//До полей справочника можно добраться через точку. И почему-то в аксапте к ним нужно обращаться как к методам, т.е. сос скобками на конце. Вот пример.
		//Choose.Код();
		//Choose.ФАМИЛИЯ();
		//Choose.ИМЯ();
		//Choose.ОТЧЕСТВО();
		//Choose.ДАТАРОЖДЕНИЯ();
		//Choose.ИНН();
		//Choose.СтраховойНомерПФР();		
	}