Ошибка при отправке данных из 1С в АД

1. user1934472 21.10.24 14:49 Сейчас в теме
Доброго дня!
Необходимо отправлять из 1С номер телефона в AD, при выполнении кода на строке ЗаписьАДО.Fields("telephoneNumber").Value = "89051547845" ,Ошибка:

Ошибка при установке значения атрибута контекста (Value): Произошла исключительная ситуация (Microsoft Cursor Engine): Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний.

Подскажите, что может быть не так.

	
	пУсловияОтбора = 1;
	
	пИмяДомена = "SYN";
	
	AD_Domain_DC = пИмяДомена;  
	
    пПользователь = "TestAdmin";
	пПароль = "Admin777";
	
	Пользователь = пПользователь;
	Пароль		 = пПароль;
	
    АДСИ = Новый COMОбъект("ADSystemInfo");
    Домен = АДСИ.DomainDNSName;		   
	

    ДСО = ПолучитьCOMОбъект("GC:");
    Корень = ДСО.OpenDSObject("GC://RootDSE", ""+Пользователь+"@"+Домен, Пароль,1);
	
	НашДомен = Корень.Get("defaultNamingContext");
	
	ЗаписьАДО = Новый COMОбъект("ADODB.recordset");
	СоединениеАДО = Новый COMОбъект("ADODB.Connection");
	СоединениеАДО.Provider = "ADsDSOObject"; 
	
	
	СоединениеАДО.Properties("User ID"  ).Value = AD_Domain_DC+"\"+Пользователь;
	СоединениеАДО.Properties("Password" ).Value = Пароль;
	СоединениеАДО.Properties("Mode").Value = 3;  
	
	СоединениеАДО.Open("ADs Provider");
	
	Если пУсловияОтбора = 1 Тогда
		//Все пользователи, кроме отключенных
		ТектсУсловияОтбора = "(!useraccountcontrol:1.2.840.113556.1.4.803:=2)";
		
	ИначеЕсли пУсловияОтбора = 2 Тогда
		//Только отключенные пользователи
		ТектсУсловияОтбора = "(useraccountcontrol:1.2.840.113556.1.4.803:=2)";
		
	Иначе 
		//Все пользователи...
		ТектсУсловияОтбора = "";
	КонецЕсли;
	
	ЗаписьАДО.CursorLocation = 3; 
	
	ПоляЗапроса = "ADsPath,sn,givenName,Name,Mail,telephoneNumber,displayName,sAMAccountName,department,userPrincipalName";
	ЗаписьАДО.Open("<GC://" + СокрЛП(НашДомен) + ">;(&(objectCategory=person)(objectClass=user)(sn=Ломакин)"+ТектсУсловияОтбора+"); "+ПоляЗапроса+" ;subtree", СоединениеАДО, 2, 3);	
	
	Если ЗаписьАДО.RecordCount > 0 Тогда
		Пока Не ЗаписьАДО.EOF Цикл 
			
			
		Если НЕ ЗначениеЗаполнено(СокрЛП(ЗаписьАДО.Fields("telephoneNumber").Value)) Тогда
				
				Попытка  
					//ЗаписьАДО.AddNew(ЗаписьАДО.Fields("telephoneNumber").Name,"89054586545"); 
					 // ЗаписьАДО.AddNew();
					  ЗаписьАДО.Fields("telephoneNumber").Value = "89051547845";
					
				//ЗаписьАДО.Update(ЗаписьАДО.Fields("telephoneNumber").Name, "12345")
			Исключение
				 ошибка = ОписаниеОшибки();
				 
				КонецПопытки;
		КонецЕсли;	
	
			Попытка
				ЗаписьАДО.MoveNext();
			Исключение
				Прервать;
			КонецПопытки;
			
		КонецЦикла;
	КонецЕсли;
	
	ЗаписьАДО.Close();
	ЗаписьАДО = Неопределено;
	СоединениеАДО.Close();
	СоединениеАДО = Неопределено;
	
Показать
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот