(2 ) tugev , Сделано через регламентное задание (выгружается автоматом каждую ночь)
Вот код выгрузки в XML
Код 1C v 8.х //Выгрузка для AD
Процедура ВыгрузимДляAD() Экспорт
ПутьКФайлу = "D:\OBMEN\vAD_"+Формат(ТекущаяДата(),"ДФ=YYYYMMdd")+".xml";
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8");
Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="UTF-8"?>
Запись.ЗаписатьНачалоЭлемента("orgstructure");
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| РаботникиОрганизацийСрезПоследних.Должность,
| РаботникиОрганизацийСрезПоследних.Период,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Порядок КАК ПодразделениеОрганизацииПорядок,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу КАК Прием,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения КАК Увольнение
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&dateper, ) КАК РаботникиОрганизацийСрезПоследних
|
|УПОРЯДОЧИТЬ ПО
| ПодразделениеОрганизацииПорядок
|ИТОГИ ПО
| ПодразделениеОрганизации ИЕРАРХИЯ
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("dateper", ТекущаяДата());
Результат = Запрос.Выполнить();
Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ОбойтиУровеньДереваAD(Дерево.Строки, Запись);
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
А это код выгрузки в CVS
Код 1C v 8.х //Выгрузка для AD
Процедура ВыгрузимДляADвCVS() Экспорт
Запрос=Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизацийСрезПоследних.Сотрудник.Код КАК ТабНомер,
| РаботникиОрганизацийСрезПоследних.Сотрудник,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
| РаботникиОрганизацийСрезПоследних.Должность,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния,
| ФИОФизЛицСрезПоследних.Фамилия,
| ФИОФизЛицСрезПоследних.Имя,
| ФИОФизЛицСрезПоследних.Отчество,
| РаботникиОрганизацийСрезПоследних.Период,
| РаботникиОрганизаций.Период КАК ПриемНаРаботу
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&TekData, ) КАК РаботникиОрганизацийСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&TekData, ) КАК ФИОФизЛицСрезПоследних
| ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
| ПО РаботникиОрганизацийСрезПоследних.Сотрудник = РаботникиОрганизаций.Сотрудник
|ГДЕ
| РаботникиОрганизаций.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния
|АВТОУПОРЯДОЧИВАНИЕ
|";
Запрос.УстановитьПараметр("TekData", ТекущаяДата());
Запрос.УстановитьПараметр("ПричинаИзмененияСостояния",Перечисления.ПричиныИзмененияСостояния.ПриемНаРаботу);
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
Путь = "D:\OBMEN\personal1C_"+Формат(ТекущаяДата(),"ДФ=YYYYMMdd")+".cvs";
Выгрузка = Новый ЗаписьТекста(Путь, КодировкаТекста.ANSI);
Пока Результат.Следующий() Цикл
Если Результат.ПричинаИзмененияСостояния = Перечисления.ПричиныИзмененияСостояния.Увольнение Тогда
Уволен = Формат(Результат.Период,"ДЛФ=D"); Иначе Уволен = "Работает"; КонецЕсли;
Выгрузка.ЗаписатьСтроку(Строка(Результат.Сотрудник.УникальныйИдентификатор())+Символы.Таб+Строка(Результат.ТабНомер)
+Символы.Таб+Строка(Результат.Фамилия)+Символы.Таб+Строка(Результат.Имя)+Символы.Таб+Строка(Результат.Отчество)
+Символы.Таб+Строка(Результат.Должность)+Символы.Таб+Строка(Результат.ПодразделениеОрганизации.ПолноеНаименование())
+Символы.Таб+Строка(Формат(Результат.ПриемНаРаботу,"ДЛФ=D"))+Символы.Таб+Строка(Уволен));
КонецЦикла;
Выгрузка.Закрыть();
КонецПроцедуры
Загрузку обратно из АD не делали - нет необходимостиИзменено 02.11.12 14:21:12