08.02.2012 02:14
Возможно кому и пригодится

Прога позволяет
-создавать
-блокировать
-удалять
-перемещать
-менять атрибуты
пользователей АД (или OpenLDAP) в соответствии с структурой 1С кадры (SQL-й версией)


https://storage.olegon.ru/supermag/upload/ad_sync.zip (описание внутри)
18.12.2012 16:29
ссылка https://storage.olegon.ru/supermag/u...mp/ad_sync.zip

exe-шник, исходники на perl-ле, краткое описание, примерные конфиг файлы
(команда запроса в MSSQL базу 1С кадры для сотрудников и отделов у Вас может отличаться, в архиве то что работает у нас на 1с 8.Х)
будут вопросы смотрите исходники если знакомы с Perl или пишите
18.12.2012 18:55
Рад что откликнулись и закачали повторно. В запросах sql (query_otd_1c.sql, query_user_1c.sql) Таблицы SQL документов и справочников не совпадают с моей версией. Если не затруднит можете дать описание на против каждой таблицы (напр. _Document138 = Документ.КадровоеПеремещениеОрганизаций) Для просмотра структуры я пользуюсь этой обработкой
Вложения
Тип файла: zip ПосмотрМетаданных81.zip (5.3 Кб, 368 просмотров)
24.12.2012 15:08
Вроде разобрался, только не смог определить из запроса сотрудников таблицу _reference46._description as UserPC и таблицу _inforg5186. А так каталоги с dn выводятся правильно, только сотрудники все из уволенных..)
28.12.2012 01:30
Прошу прощения за задержку
пытаюсь вспомнить - прога писалась год назад

Сотрудники:
_reference88
_reference88._IDRRef - id таблицы
_reference88._Description - ФИО сотрудника
_reference88._Code - код сотрудника в 1С
_Reference88._Fld1119RRef - ссылка(id) на отдел
_Reference88._Fld1120RRef - ссылка(id) на должность в отделе
_Reference88._Fld7558 - дата увольнения
_Reference88._Fld7557 - дата приема
_Reference88._Fld1110RRef - ссылка(id) на физ лицо


Физ лица (ФИО день рождения паспорт данные ...)
_Reference105
_Reference105._IDRRef - id таблицы
_Reference105._Code - код физ лица


Должности:
_Reference39
_Reference39._IDRRef - id таблицы
_Reference39._Description - название должности


Отделы:
_Reference70
_Reference70._Code - код отдела в 1С
_reference70._Description - наименование одела
_reference70._IDRRef - id таблицы
_reference70._ParentIDRRef - "родитель" отдела по иерархии
_reference70._Fld7543


документы (кажется приема увольнения)
_Document138_VT2135
_Document138_VT2135._Fld2143RRef - ссылка(id) на должность
_Document138_VT2135._fld2137rref - ссылка(id) на сотрудника
_Document138_VT2135._Fld2142RRef - ссылка(id) на физ лицо
_Document138_VT2135._fld2139 - дата документа


не помню таблица связка
_inforg5186
_inforg5186._Fld5187_RRRef


здесь были дополнительные поля на сотрудника
_Reference46

надо было отсеевать сотрудников которым комп не нужен
в начале хотели добавить опцию в 1С при заведении сотрудника "нужен копютер ДА/НЕТ", опцию добавили но кадры её не вели
после этого ввели фильтрацию по должностям
так появились в запросе таблицы _Reference46 и _inforg5186

и соостветственно строки из запроса
_reference46._description as UserPC
left join _inforg5186 on _Reference105._IDRRef=_inforg5186._Fld5187_RRRef
left join _reference46 on _Reference46._IDRRef=_inforg5186._Fld5188RRef
_reference88._Description like '%%'
можно и надо удалить

мы к сожалению к метаданым 1С не дошли
просили 1С-ника запустить запрос список сотрудников а сами смотрели SQL запросы затем их упростили в один

суть запроса в том что он должен выдать только текущих (не уволеных) сотрудников
строка "max(_Document138_VT2135._fld2139) as max_d" - выделяет последний документ/приказ приема/перевода - увольнения,
у одного сотрудника таких документов может быть несколько

для тестирования можно запустить прогу с уровнем debug=3 и запретом что-либо делать (run_хххх=0) в конфиге, тогда в логе будут все действия

кол-во сотрудников должно совпасть с реальным на 100%
если у вас только уволеные сотрудники - неверный sql-запрос

ещё id сотрудника не есть уникальным а id физ лица уникально (возможно только у нас) поэтому для синхронизации лутше брать id физ лица

в планах было изменить прогу чтоб запрос делала не к базе а к 1с-ке через OLE но пока как сделать из perla не знаю и времени нет
30.12.2012 19:39
Спасибо большое! Запрос немного изменил, вроде теперь нормально. Самое главное это ваша программа на perl, функционал более чем достаточен.
31.01.2013 19:30
Нужна помощь, не могу разобраться с блокировкой пользователей. Почему, вместо того чтобы заблокировать пользователя, в логе отображается так:

Chek Disabled user in DN=[CN=Шхххх Охххх Вхххх,OU=Менеджмента и маркетинга,OU=Экономический факультет,OU=Внебюджет,OU=TEST,OU=ХХХХ,DC=хххх,DC=ru]
Status:active
Disable user DN=[CN=Шхххх Охххх Вхххх,OU=Менеджмента и маркетинга,OU=Экономический факультет,OU=Внебюджет,OU=TEST,OU=ХХХХ,DC=хххх,DC=ru] __DENY

Покопался в исходнике, но навыков маловато)
01.02.2013 10:21
Все разобрался, в файле конфигурации параметр не правильно записан run_disabled а надо run_disable
18.08.2015 10:17
Цитата:
konopada Возможно кому и пригодится

Прога позволяет
-создавать
-блокировать
-удалять
-перемещать
-менять атрибуты
пользователей АД (или OpenLDAP) в соответствии с структурой 1С кадры (SQL-й версией)

Добрый день.
Можно еще раз ссылочку, а то эта не рабочая.
Спасибо.
18.08.2015 10:35
Поправил ссылку.
Часовой пояс GMT +3, время: 02:52.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.