Имя: Пароль:
1C
 
Как программно в 1С получить адрес почты пользователя ?
0 Rovan
 
гуру
15.06.11
17:51
Тот что указан в
Пуск \ настройка \ панель управления \ почта
??
1 shuhard
 
15.06.11
18:00
(0) без каких либо гарантий:
// СписокПрофилей - СписокЗначений
   // кириллица в названии профиля не рулит
   // RegRead  WSH - не получилось
   ПутьКФайлу=КаталогВременныхФайлов()+ "inna.txt";
   Эталон="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\";
   СтрокаКоманды="reg export  ""HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"" "+Символ(34)+ПутьКФайлу+Символ(34);
   Shell = Новый COMОбъект("WScript.Shell");
   ОшибкаОС=Shell.run (СтрокаКоманды,0,истина);
   Текст = Новый ЧтениеТекста(ПутьКФайлу);
   стррег = Текст.ПрочитатьСтроку();
   Пока стррег <> Неопределено Цикл
       стррег = Текст.ПрочитатьСтроку();
       Позиция=Найти(стррег, Эталон);
       Если Позиция>0 Тогда
           Хвост=Сред(стррег,Позиция+СтрДлина(Эталон));    
           Если Найти(Хвост,"\")=0 Тогда    
               Профиль=Лев(Хвост,СтрДлина(Хвост)-1);  
               СписокПрофилей.Добавить(Профиль);
           КонецЕсли;    
       КонецЕсли;    
   КонецЦикла;
   Текст.Закрыть();
   УдалитьФайлы(ПутьКФайлу);
2 aleks-id
 
15.06.11
18:11
1. читаем в ветке реестра "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" параметр DefaultProfile - в нем лежит имя ДефолтныйПрофиль
2. читаем в ветке "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"+ДефолтныйПрофиль+ "\9375CFF0413111d3B88A00104B2A6676\00000002" параметр Email - это емыл юзера кажется в кодировке юникод
3 Rovan
 
гуру
15.06.11
22:36
(2) благодарствую....завтра на работе попробую подключить
4 Rovan
 
гуру
16.06.11
09:42
(2) фиг.... у меня на компе нет такого параметра
5 vmv
 
16.06.11
09:45
если пользователи в домене, то с АД через ЛДАР, все эти реестры ОС от лукавого
6 Rovan
 
гуру
17.06.11
09:14
(+5) Точно - сделал примероно как тут v8: Коллеги, как можно получить e-mail пользователя?

Функция киПолучитьПочтовыйАдресПользователяДомена( Домен, Логин, ТОшибка ) Экспорт
   ТОшибка = "";
   
   Попытка  
conn = Новый COMОбъект("ADODB.Connection");
conn.Provider = "ADSDSOObject";
conn.Open("Active Directory Provider");

Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Conn;
       
Command.CommandText = "SELECT ADsPath FROM 'LDAP://dc="+Домен +",dc=ТутПодДомен,dc=ru' WHERE SAMAccountName='"+Логин+"'";
           
rs = Command.Execute();
НоваяПочта = "";
       
Пока НЕ rs.EOF() Цикл
   obj = ПолучитьCOMОбъект(rs.Fields(0).Value);
   Если obj.Class="user" Тогда
       НоваяПочта=СокрЛП(obj.EmailAddress);
               
       Если НЕ ПустаяСтрока( НоваяПочта ) Тогда
           Прервать;
       КонецЕсли;    
   КонецЕсли;
   rs.MoveNext();
КонецЦикла;
       
conn.Close();  
Возврат НоваяПочта;

   Исключение
       ТОшибка = "Ошибка подключения к Active Directory!"
           + Символы.ПС + ОписаниеОшибки();
   КонецПопытки;    

   Возврат "";
   
КонецФункции
7 vmv
 
17.06.11
09:15
после выхода нового релиза платформы с поддержкой ОДБСи все эти вещи станут проще
8 Rovan
 
гуру
17.06.11
09:49
(7) у нас пока 8.1
9 oleg_km
 
17.06.11
11:17
(7)

Чета вроде люди пробовали: на банальном dbf не работает, в вы раскатили на AD. Пока склоняюсь больше к годами и миллионами пользователей обкатанным компонентам, пусть даже и от Microsoft