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

1. sasha-asn 21.10.24 15:25 Сейчас в теме
Доброго дня!
Необходимо отправлять из 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();
 СоединениеАДО = Неопределено;
 
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 21.10.24 15:39 Сейчас в теме
(1)
Ошибка
А чего ты хотел, разрабатывая на человеке с такой фамилией?
Прикрепленные файлы:
Оставьте свое сообщение

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