В конфигурацию 1С по документарному сопровождению процессов аудита, наряду с «ручным» внесением контактной информации по ответственным, мной добавлены импорт контактов из MS Outlook (планируется еще импорт данных из ActiveDirectory — сделано):
Существующие контакты Outlook Импорт контактов Выбор ответственного
Контакты принято решение хранить как регистр сведений (а не справочника), что бы можно было в ТЧ документов вносить как введенные данные через список значений, так «новые» имена и почтовые адреса (которые не внесены в БД 1С).
Также реализована возможность сохранения почтовых параметров (учетных записей) через хранилище настроек, в результате чего запросы на актуализацию можно отправлять с разных настроек (почтовых адресов).
Почтовый ящик №1 Почтовый ящик №2 Выбор между почтовыми аккаунтами
Ну и самое главное реализована возможность получения информации через запросы из других баз 1С (данные учета) через внешнее подключение — что весьма удобно для аудиторов.
Алгоритм очень прост — в справочнике хранятся параметры подключения к базам 1С (как к файловым, так и серверным), выбираем необходимое подключение, подключаемся и формируем необходимый запрос… Все отражается в ТЧ документа, в результате чего можно полученную информацию экспортировать в Excel.
Параметры подключения Подключение к 1С Получение данных запросом
Примечание: Данная конфигурация — толстый клиент, основной код реализуется в контексте клиента. Я теперь осознаю насколько надо быть профессионалом в области разработки приложений 1С для тонких клиентов и мобильных (веб) приложений… Но думаю, в будущем я освою и это направление.
Дополнительно. «Прикрутил» функционал по получению данных о пользователях домена (active directory). Очень помогла статья Константина Благина (респект ему). Сейчас имеется возможность скопом выгрузить всех пользователей, а также получить данные по началу фамилии (ФИО*), части отдела (*отдел*), части должности (*должность*).
Поиск ФИО Поиск отдела Поиск должности
Запросы к службам каталогов в ADSI могут выполняться на двух диалектах — диалекте LDAP (фильтры запроса определяются в соответствии с правилами синтаксиса запросов LDAP по RFC 2254) — пример: <LDAP://DC=domainName,DC=ru>;(objectClass=*);AdsPath, cn;subTree
и диалекте SQL (фильтры запроса определяются в соответствии со стандартом ANSI SQL с учетом особенностей работы со службами каталогов) — пример:
SELECT ADsPath, cn FROM 'LDAP://OU=имяПодразделения,DC=имяДомена,DC=ru' WHERE objectCategory='person' AND objectClass='user'
Мне просто показалось удобнее работать с диалектом SQL, так как проще реализовать условия выборки и подстановки.
КомандаАДО.CommandText = "SELECT userAccountControl, displayName, department, mail, title FROM 'LDAP://" + ТекущийДомен1 + "' WHERE objectClass = 'User' AND objectCategory = 'Person' AND displayName = '" + этаформа.Пользователь + "*'";
Подробнее про работу со службами каталогов — http://www.script-coding.com/Python/LDAP.html#samples