Атрибуты объектов в Active Directory

09.04.13

Интеграция - Внешние источники данных

Написал справочник Внутренних телефонов компании, и посыпались вопросы: "а как, а где"... Вот и решил выложить небольшой скриптик, который во многом объясняет структуру AD. Распросраняется "AS IS", ни за чё не отвечаю...



Перем мТипы;

Процедура КнопкаВыполнитьНажатие(Кнопка)
 
 АДОКоннектор = Новый COMОбъект("ADODB.Connection");
 АДОКоннектор.ConnectionString = "Provider=""ADsDSOObject""";
 АДОКоннектор.Open();

 КореньDSE = ПолучитьCOMОбъект("LDAP://RootDSE");

 ДоменDNS = КореньDSE.Get("defaultNamingContext");
 
 ТекстЗапроса = "select AdsPath from 'LDAP://"+ДоменDNS+"'";

 ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса);

 Пока НЕ ВыборкаАДО.EOF Цикл

  ПутьОбъекта = ВыборкаАДО.Fields("AdsPath").Value;
  
  Сообщить("Объект: " + ПутьОбъекта);
  Сообщить("---------------");
  Попытка
   СписокАтрибутов = ПолучитьCOMОбъект(ПутьОбъекта);
         СписокАтрибутов.GetInfo();

   КоличествоАтрибутов = СписокАтрибутов.PropertyCount;

   Для инд = 0 По КоличествоАтрибутов - 1 Цикл
    Атрибут = СписокАтрибутов.item(инд);
    Сообщить("Значения атрибута: "+ Атрибут.Name+":");
    
    Для Каждого Значение Из Атрибут.Values Цикл
     ТекстЗначения = Значение.GetObjectProperty(Значение.ADsType);
     ТипЗначения = мТипы[Значение.ADsType];
     Сообщить(ТипЗначения + ": "+ТекстЗначения);
     ОбработкаПрерыванияПользователя();
    КонецЦикла;
    
    Сообщить(Символы.ПС);
   КонецЦикла;
  Исключение
   Сообщить("");
  КонецПопытки;
  
  ВыборкаАДО.MoveNext();
 КонецЦикла;
 ВыборкаАДО.Close();
 АДОКоннектор.Close();
 
КонецПроцедуры

мТипы = Новый Соответствие;
мТипы.Вставить(0, "ADSTYPE_INVALID");
мТипы.Вставить(1, "ADSTYPE_DN_STRING");
мТипы.Вставить(2, "ADSTYPE_CASE_EXACT_STRING");
мТипы.Вставить(3, "ADSTYPE_CASE_IGNORE_STRING");
мТипы.Вставить(4, "ADSTYPE_PRINTABLE_STRING");
мТипы.Вставить(5, "ADSTYPE_NUMERIC_STRING");
мТипы.Вставить(6, "ADSTYPE_BOOLEAN");
мТипы.Вставить(7, "ADSTYPE_INTEGER");
мТипы.Вставить(8, "ADSTYPE_OCTET_STRING");
мТипы.Вставить(9, "ADSTYPE_UTC_TIME");
мТипы.Вставить(10, "ADSTYPE_LARGE_INTEGER");
мТипы.Вставить(11, "ADSTYPE_PROV_SPECIFIC");
мТипы.Вставить(12, "ADSTYPE_OBJECT_CLASS");
мТипы.Вставить(13, "ADSTYPE_CASEIGNORE_LIST");
мТипы.Вставить(14, "ADSTYPE_OCTET_LIST");
мТипы.Вставить(15, "ADSTYPE_PATH");
мТипы.Вставить(16, "ADSTYPE_POSTALADDRESS");
мТипы.Вставить(17, "ADSTYPE_TIMESTAMP");
мТипы.Вставить(18, "ADSTYPE_BACKLINK");
мТипы.Вставить(19, "ADSTYPE_TYPEDNAME");
мТипы.Вставить(20, "ADSTYPE_HOLD");
мТипы.Вставить(21, "ADSTYPE_NETADDRESS");
мТипы.Вставить(22, "ADSTYPE_REPLICAPOINTER");
мТипы.Вставить(23, "ADSTYPE_FAXNUMBER");
мТипы.Вставить(24, "ADSTYPE_EMAIL");
мТипы.Вставить(25, "ADSTYPE_NT_SECURITY_DESCRIPTOR");
мТипы.Вставить(26, "ADSTYPE_UNKNOWN");
мТипы.Вставить(27, "ADSTYPE_DN_WITH_BINARY");
мТипы.Вставить(28, "ADSTYPE_DN_WITH_STRING");

См. также

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9155    9    8    

10

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22347    18    1    

21

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

Внешние источники данных Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI". Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм. Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/ Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse/MS SQL. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Вашей BI-системе

230000 руб.

15.11.2022    12907    11    47    

28

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48627    96    159    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81470    128    123    

146

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

24000 руб.

16.11.2018    29979    20    31    

21
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Fuego 462 30.09.09 13:32 Сейчас в теме
Перем мТипы;

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	АДОКоннектор = Новый COMОбъект("ADODB.Connection");
	АДОКоннектор.ConnectionString = "Provider=""ADsDSOObject""";
	АДОКоннектор.Open();

	КореньDSE = ПолучитьCOMОбъект("LDAP://RootDSE");

	ДоменDNS = КореньDSE.Get("defaultNamingContext");
	
	ТекстЗапроса = "sel ect AdsPath from 'LDAP://"+ДоменDNS+"'";

	ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса);

	Пока НЕ ВыборкаАДО.EOF Цикл

		ПутьОбъекта = ВыборкаАДО.Fields("AdsPath").Value;
		
		Сообщить("Объект: " + ПутьОбъекта);
		Сообщить("---------------");
		Попытка
			СписокАтрибутов = ПолучитьCOMОбъект(ПутьОбъекта);
	        СписокАтрибутов.GetInfo();

			КоличествоАтрибутов = СписокАтрибутов.PropertyCount;

			Для инд = 0 По КоличествоАтрибутов - 1 Цикл
				Атрибут = СписокАтрибутов.item(инд);
				Сообщить("Значения атрибута: "+ Атрибут.Name+":");
				
				Для Каждого Значение Из Атрибут.Values Цикл
					ТекстЗначения = Значение.GetObjectProperty(Значение.ADsType);
					ТипЗначения = мТипы[Значение.ADsType];
					Сообщить(ТипЗначения + ": "+ТекстЗначения);
					ОбработкаПрерыванияПользователя();
				КонецЦикла;
				
				Сообщить(Символы.ПС);
			КонецЦикла;
		Исключение
			Сообщить("<не удалось получить свойства>");
		КонецПопытки;
		
		ВыборкаАДО.MoveNext();
	КонецЦикла;
	ВыборкаАДО.Close();
	АДОКоннектор.Close();
	
КонецПроцедуры

мТипы = Новый Соответствие;
мТипы.Вставить(0, "ADSTYPE_INVALID");
мТипы.Вставить(1, "ADSTYPE_DN_STRING");
мТипы.Вставить(2, "ADSTYPE_CASE_EXACT_STRING");
мТипы.Вставить(3, "ADSTYPE_CASE_IGNORE_STRING");
мТипы.Вставить(4, "ADSTYPE_PRINTABLE_STRING");
мТипы.Вставить(5, "ADSTYPE_NUMERIC_STRING");
мТипы.Вставить(6, "ADSTYPE_BOOLEAN");
мТипы.Вставить(7, "ADSTYPE_INTEGER");
мТипы.Вставить(8, "ADSTYPE_OCTET_STRING");
мТипы.Вставить(9, "ADSTYPE_UTC_TIME");
мТипы.Вставить(10, "ADSTYPE_LARGE_INTEGER");
мТипы.Вставить(11, "ADSTYPE_PROV_SPECIFIC");
мТипы.Вставить(12, "ADSTYPE_OBJECT_CLASS");
мТипы.Вставить(13, "ADSTYPE_CASEIGNORE_LIST");
мТипы.Вставить(14, "ADSTYPE_OCTET_LIST");
мТипы.Вставить(15, "ADSTYPE_PATH");
мТипы.Вставить(16, "ADSTYPE_POSTALADDRESS");
мТипы.Вставить(17, "ADSTYPE_TIMESTAMP");
мТипы.Вставить(18, "ADSTYPE_BACKLINK");
мТипы.Вставить(19, "ADSTYPE_TYPEDNAME");
мТипы.Вставить(20, "ADSTYPE_HOLD");
мТипы.Вставить(21, "ADSTYPE_NETADDRESS");
мТипы.Вставить(22, "ADSTYPE_REPLICAPOINTER");
мТипы.Вставить(23, "ADSTYPE_FAXNUMBER");
мТипы.Вставить(24, "ADSTYPE_EMAIL");
мТипы.Вставить(25, "ADSTYPE_NT_SECURITY_DESCRIPTOR");
мТипы.Вставить(26, "ADSTYPE_UNKNOWN");
мТипы.Вставить(27, "ADSTYPE_DN_WITH_BINARY");
мТипы.Вставить(28, "ADSTYPE_DN_WITH_STRING");
Показать
soda; alex4x; swiftblack; +3 Ответить
2. vde69 925 01.10.09 13:48 Сейчас в теме
я не понимаю, как за 1 день получить 12 плюсов???

у меня статья и больше и функционала больше и лежит уже месяц и плюсов всего 7, что я не так делаю??? может надо тупо накручивать плюсы самому?
GreatDen; +1 Ответить
3. coder1cv8 3468 01.10.09 15:22 Сейчас в теме
(2) дались тебе эти плюсы? )
4. vde69 925 01.10.09 16:08 Сейчас в теме
(3) мне на плюсы пофигу, ;)

просто действительно интересно как такое получается, заметил уже не первый раз, что как-то очень не понятно лидеры на первой странице появляются, ну всегда списывал на то, что я чего-то не понимаю в психологии, а тут сравнить можно (больно показательный пример)...

5. kurator1C 02.10.09 07:24 Сейчас в теме
(2) Кинь ссылку здесь на свою статью.
И тот, кто плюсанул здесь, плюсанет и тебя, раз уж ему эта тема интересна, а ты её раскрыл более полно.
6. vde69 925 02.10.09 09:30 Сейчас в теме
(5) дело не в плюсах, и кидать ссылку сюда как-то некрасиво. Меня интересуют мнения первых 10 отплюсовавших как они так быстро загнали разработку на первую страницу!

это вопрос или психологии или технологиии раскрутки, меня интересует этот вопрос исключительно с этой точки зрения... может автор пиарит ее где-то на форумах или это его знакомые или еще чего? мой интерес это выяснить скорее идет в рамки моего web проекта как пример удачной стратегии.

Fuego - не ругай меня сильно я плюсану ее за пропаганду интеграции ;)

7. Fuego 462 02.10.09 12:05 Сейчас в теме
(6) Привет. На самом деле я недавно столкнулся с проблемой. Пользователи 1С звонят мне и спрашивают, почему, мол, в телефонном справочнике в 1С-ке не указан номер того-то и того-то... АТС-кой у нас распоряжается инженер ИТО, а в АД у нас распоряжается сисадмин. Т.е. телефон в АТС заведен, сисадмин не в курсе и т.д. И тут я решил читок подправить запрос, и вывести обработочку инженеру ИТО, чтобы он мог сформировать список сотрудников, на которых не указан номер телефона в АД. Список распечатывается, он вписывает номера из АТС-ки и отдает сисадмину. И поскольку я вернулся к теме АД, я впомнил, что встречались вопросы. И решил написать обработку несколько глубже. Лично мне нафиг не нужно подробное описание структуры АД. (Когда мне что-то нужно сделать, я зачастую разрабытваю схему с нуля.) А кому-то пригодится. У меня всегда под рукой справочные системы, но как правило они на английском языке. Сел, покумекал, прикинул, проверил. И вот - работает. Если посмотреть на мою активность на сайте, то можно понять, что я тут нынче редкий гость. И рейтинг мне ничего не даёт. Я не фрилансер, и мне не нужно показывать клиенту, как мои разработки "любят" в интернете. Я считаю этот сайт плацдармом для обмена опытом разработчиков на платформе 1С. А ссылочку свою оставь здесь, это не зазорно :)
8. rasswet 82 05.10.09 09:59 Сейчас в теме
можно поподробнее что это такое? подключается к какому-то файлу и оттуда тащит данные?
9. Fuego 462 14.10.09 13:23 Сейчас в теме
(8) Active Directory - это интеллектуальная служба каталогов для операционных систем семейства Windows NT). Active Directory имеет иерархическую структуру, состоящую из объектов. Объекты разделяются на три основные категории: ресурсы (например принтеры), службы (например, электронная почта) и люди (учётные записи пользователей и групп пользователей). Active Directory предоставляет информацию об объектах, позволяет организовывать объекты, управлять доступом к ним, а также устанавливает правила безопасности.
10. alex4x 28.10.09 16:44 Сейчас в теме
что то у меня руки кривые стали...

Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Provider): One or more errors occurred during processing of command.
   ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса); 
по причине:
Произошла исключительная ситуация (Provider): One or more errors occurred during processing of command.


Как понять, что
КореньDSE = ПолучитьCOMОбъект("LDAP://RootDSE");
ДоменDNS = КореньDSE.Get("defaultNamingContext");
Вернули правильную информацию ?

Кстати про принтеры, компьютеры и все остальное - тоже было б полезно из AD прочитать всё. Может есть мануал по AD ?
11. EvgeniusRusius 13.11.09 15:40 Сейчас в теме
(10) в приведенном автором примере, в строке
ТекстЗапроса = "sel ect AdsPath from 'LDAP://"+ДоменDNS+"'";
опечатка (выделил цветом), должно быть не "sel ect" , а "select", т.е. без пробела. после исправления - всё замечательно работает.
Автору +ище!!
12. Fuego 462 13.11.09 16:59 Сейчас в теме
(11) Это не опечатка. Все зарезервированные слова языка запросов SQL (update, select, delete, insert и т.д.) рвутся движком в целях безопасности. Я уверен, что сейчас нажму кнопку "Ответить" и все слова в скобкам разорвутся.
13. Fuego 462 13.11.09 17:00 Сейчас в теме
Странно... А раньше я не мог убрать этот пробел. Скорее всего что-то изменили в поведении движка сайта.
14. wowan ht 5 27.11.18 11:04 Сейчас в теме
Здравствуйте. При значении ADsType=10 (ADSTYPE_LARGE_INTEGER) 1C-ка возвращает COM-объект. (например, lastlogon). Можете подсказать, как его преобразовать в дату? Спасибо.
За саму обработку отдельное большое спасибо.
15. Fuego 462 27.11.18 15:10 Сейчас в теме
(14), могу ошибаться (сейчас проверить не могу), но возможно, возвращается VBSafeArray. Метод Unload() возвращает из такого COM-объекта массив 1С, который уже можно обработать в 1С стандартными средствами - головой и математикой
16. ISBodrug 15.02.19 13:35 Сейчас в теме
17. ISBodrug 15.02.19 13:37 Сейчас в теме
(15) Столкнулся с тем, что получаю поле "lastLogon" типа СОM-Объект, но у него нет никаких свойств. Пробовал и Unload() и Выгрузить() и Get() ничего не работает. Непонятно, что надо сделать, чтобы получить дату последнего входа пользователя.
18. Fuego 462 22.04.19 13:24 Сейчас в теме
(17)
По ссылке приведён интерфейс этого типа:
https://docs.microsoft.com/ru-ru/windows/desktop/api/iads/nn-iads-iadslargeinteger
описание значения поля по этой ссылке: https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon

думаю, что следующая доработка должна помочь (сам не проверял, по наитию набросал)?
Если Значение.ADsType = 10 Тогда
	_lastLogon = '1601-01-01' + Цел((Pow(2, 32) * Значение.HighPart + Значение.LowPart) / 10000000); // здесь должно получиться значение типа "Дата"
	ТекстЗначения = Формат(_lastLogon, "ДЛФ=DT");
Иначе
	ТекстЗначения = Значение.GetObjectProperty(Значение.ADsType);
КонецЕсли;
19. пользователь 22.04.19 13:25
Сообщение было скрыто модератором.
...
Оставьте свое сообщение