Автоматическое взаимодействие между 1С: ЗУП и Active Directory с Outlook

16.04.24

Интеграция - WEB-интеграция

Данная статья является описанием рабочей конфигурации 1С, которая была разработана вместе с системными администраторами организации. Цель статьи: поделиться опытом, получить обратную связь: что, возможно, можно было бы сделать иначе или лучше?

В организации отдел кадров часто ежедневно проводит приемы на работу, увольнения, смены должностей и переводы в смежные подразделения или организации в 1С: ЗУП. В результате этого, системным администраторам приходилось постоянно на эти события отвлекаться: создавать, блокировать или изменять доменные учетные записи Active Directory и почтовые аккаунты в Outlook. Т.е. у каждого сотрудника свой ПК и почтовый ящик.

Например, если прием на работу, то необходимо создание учетных записей в Active Directory и Outlook, а когда увольнение, блокировка уже существующих учетных записей в Active Directory и Outlook с целью безопасности данных.

Со временем, системные администраторы написали скрипты через Powershell, чтобы облегчить свою работу: они в готовый скрипт вписывали вручную нужные данные (например ФИО и должность сотрудника), но этого было недостаточно, т.к. до сотрудников ИТ всегда доходила информация поздно об изменении из отдела кадров. Да и все равно приходилось отвлекаться на эту рутинную работу, банально чтобы запустить скрипт.

Поэтому было принято решение этот процесс автоматизировать…

Изначально для решения этого вопроса, я хотел сделать все с помощью 1С, т.е. создать с нуля базу, через эту базу обращаться к 1С: ЗУП за кадровыми данными, а затем с помощью каких-то дополнительных компонент из 1С влиять на Active Directory и Outlook. Но к сожалению или к счастью, мне так и не удалось найти достаточно информации в интернете по теме того, как можно из 1С гарантированно и без ошибок подключиться к доменной сети, как там что-то изменить. Пробовал все, что мог найти в интернете, пытался вникнуть, как работать со всем этим программно, однако ничего не получалось, и я уже хотел было отложить решение этой задачи на будущее.

Но один из админов предложил сделать так: для работы с AD и Outlook из 1С запускать уже готовые написанные скрипты, которые у них были через Powershell. За неимением других вариантов, решили пойти именно таким путем.

Цель была следующая:

Сделать автоматическую, надежную и прозрачную систему с рабочим местом пользователя сотрудника ИТ, которая сама бы по необходимости работала с доменными учетными данными в Active directory и Outlook.

 

Шаг 1. Создание базы 1С с БСП

Базу назвали "Конфигурация для выгрузки в Active Directory и Outlook"

 

Шаг 2. Получение актуальных кадровых данных из 1С ЗУП

В базе 1С ЗУП уже был настроен веб-сервис, который при обращении к нему делал запрос к регистру сведений КадроваяИсторияСотрудников и выводил список в виде JS. Поэтому и новая база 1С как раз начала делать обращение к этому веб-сервису, особо ничего нового создавать не пришлось.

 

Рисунок 1  - Результат запроса с кадровыми данными из веб-сервиса 1С ЗУП

 

Шаг 3. Сохранение в «1С AD/Outlook» только изменений кадровых данных

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

 

Рисунок 2  - Регистр сведений "Лог событий ЗУП"

 

Шаг 4. Создаем документы «Кадровое событие» для отправки в Active Directory и Outlook

Это уже "объект", с которой будет работать или регламент, или системный администратор.

 

Рисунок 3  - Документ "Кадровое событие ЗУП"

 

Рисунок 4  - Рабочее место пользователя базы со списком документов  "Кадровое событие ЗУП"

 

На этом, в принципе, все.

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

В полуавтоматическом режиме на случай ошибок был сделан реквизит "Одобрено", который в значении истина только запускал регламенты. Т.е. системный администратор сначала должен был "одобрить" кадровое событие. Сейчас в полностью автоматическом режиме этот реквизит уже не нужен. 

 

Рисунок 5  - Регламентные задания в базе 1С. Операции увольнения выведены в отдельный регламент т.к. это совершенно другой скрипт из PowerShell, а также регламент по увольнению запускается ночью, т.к. эта операция с блокировкой учетных данных не сильно срочная

 

Рисунок 6  - Настройки регламентов. Т.к. не все сотрудники работают за компьютером,  была сделана настройка для ограничения работы регламентов в разрезе должностей. 

 

 

Пример кода для создания учетной записи в Active Directory

&НаСервере
Функция ДобавитьВActiveDirectoryНаСервере(ОтобрИмя,НомерТел,Должность,Отдел,Подразделение,Подразделение1,Дубль, ДокументДляВыгрузки)
	ФИО = СтрРазделить(ОтобрИмя," ",Ложь);
	Фамилия = ФИО[0];
	Имя = ФИО[1];
	ИмяПольз = Транслит(НРег(ФИО[0]+Лев(ФИО[1], 1)+Лев(ФИО[2], 1)),Ложь);   
	//Если Дубль Тогда
	//	ИмяПольз = ИмяПольз+"1";
	//	ОтобрИмя = ОтобрИмя+"1";
	//КонецЕсли;
	КомандаАДО    = Новый COMОбъект("ADODB.Command");
	СоединениеАДО = Новый COMОбъект("ADODB.Connection");
	СоединениеАДО.Provider = "ADSDSOObject";
	СоединениеАДО.Open("Active Directory Provider");    
	КомандаАДО.ActiveConnection = СоединениеАДО;  
	//Авторизация в Домене  
	Пользователь=РегламентныеЗаданияКадровоеСобытиеЗУП.ПолучитьСписокСтрокУчётнаяЗапись();
	Пароль=РегламентныеЗаданияКадровоеСобытиеЗУП.ПолучитьСписокСтрокПарольДомена();		    
	ДСО=ПолучитьCOMОбъект("LDAP:");   
	//Создание OU   
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Служба) Тогда  
		Попытка
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел, Пользователь, Пароль, 1); 
		Исключение   
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG", Пользователь, Пароль, 1);
			objClass = "organizationalUnit";
			objRelativeName = "OU="+Отдел;
			Prop1Name = "ou";
			Prop1Value = Отдел;
			newObject = obj.Create(objClass, objRelativeName);
			newObject.Put(Prop1Name, Prop1Value);
			newObject.SetInfo();
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел, Пользователь, Пароль, 1); 
		КонецПопытки;
	КонецЕсли;
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Подразделение1) Тогда
		Попытка
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел+"/OU="+Подразделение, Пользователь, Пароль, 1);
		Исключение
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел, Пользователь, Пароль, 1);
			objClass = "organizationalUnit";
			objRelativeName = "OU="+Подразделение;
			Prop1Name = "ou";
			Prop1Value = Подразделение;
			newObject = obj.Create(objClass, objRelativeName);
			newObject.Put(Prop1Name, Prop1Value);
			newObject.SetInfo();
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел+"/OU="+Подразделение, Пользователь, Пароль, 1);
		КонецПопытки; 
	КонецЕсли; 
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Подразделение2) Тогда
		Попытка   
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел+"/OU="+Подразделение+"/OU="+Подразделение1, Пользователь, Пароль, 1); 
		Исключение
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел+"/OU="+Подразделение, Пользователь, Пароль, 1);
			objClass = "organizationalUnit";
			objRelativeName = "OU="+Подразделение1;
			Prop1Name = "ou";
			Prop1Value = Подразделение1;
			newObject = obj.Create(objClass, objRelativeName);
			newObject.Put(Prop1Name, Prop1Value);
			newObject.SetInfo();
			obj = ДСО.OpenDSObject("LDAP://dc1/DC=gor/DC=company/OU=Users_ORG/OU="+Отдел+"/OU="+Подразделение+"/OU="+Подразделение1, Пользователь, Пароль, 1); 
		КонецПопытки;
	КонецЕсли;
	////////
	objClass = "user";
	objRelativeName = "CN="+ОтобрИмя;     
	newObject = obj.Create(objClass, objRelativeName);      
	newObject.userAccountControl = 544;   //544 означает, что пользователь был создан без пароля, который необходимо установить при первом входе
	newObject.sn = Фамилия;
	newObject.givenName = Имя;
	newObject.displayName = ОтобрИмя;    
	newObject.description = Должность;  
	newObject.title = Должность;      
	newObject.department = Отдел;
	newObject.sAMAccountName = ИмяПольз;
	newObject.userPrincipalName = ИмяПольз + "@company.gor";
	newObject.mail = ИмяПольз+"@company.ru";
	newObject.mobile = НомерТел;         
	newObject.SetInfo();  
	Пауза(15);
	//Добавление пользователя в группу   
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Служба) Тогда 
		//создание папки на шаре
		ВременныйФайлСкриптаPowerShell = ПолучитьИмяВременногоФайла("ps1"); 
		ТекстСкриптаPowerShell = "foreach($obj in Get-ChildItem -Path \\company.gor\companyshare\All\) {
		|$path = ""\\company.gor\companyshare\All\$obj\"+ДокументДляВыгрузки.Служба+"""
		|If(!(test-path $path))
		|{
		|New-Item -Path ""\\company.gor\companyshare\All\$obj\"+ДокументДляВыгрузки.Служба+""" -ItemType Directory
		|}
		|}";
		ЗаписьТекстаСкриптаPowerShell = Новый ТекстовыйДокумент;
		ЗаписьТекстаСкриптаPowerShell.УстановитьТекст(ТекстСкриптаPowerShell);
		ЗаписьТекстаСкриптаPowerShell.Записать(ВременныйФайлСкриптаPowerShell, КодировкаТекста.Системная);
		ЗапуститьПриложение("powershell "+ВременныйФайлСкриптаPowerShell,,Ложь);
		Если НЕ СуществованиеГруппы(ДокументДляВыгрузки.Служба) Тогда 
			СозданиеГруппыБезопасности(ДокументДляВыгрузки.Служба); 
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Служба);
		Иначе
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Служба);   
		КонецЕсли;
	КонецЕсли;  
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Подразделение1) Тогда
		//создание папки на шаре
		ВременныйФайлСкриптаPowerShell = ПолучитьИмяВременногоФайла("ps1");  
		ТекстСкриптаPowerShell = "foreach($obj in Get-ChildItem -Path \\company.gor\companyshare\All\) {
		|$path = ""\\company.gor\companyshare\All\$obj\"+ДокументДляВыгрузки.Служба+"\"+ДокументДляВыгрузки.Подразделение1+"""
		|If(!(test-path $path))
		|{
		|New-Item -Path ""\\company.gor\companyshare\All\$obj\"+ДокументДляВыгрузки.Служба+"\"+ДокументДляВыгрузки.Подразделение1+""" -ItemType Directory
		|}
		|}";
		ЗаписьТекстаСкриптаPowerShell = Новый ТекстовыйДокумент;
		ЗаписьТекстаСкриптаPowerShell.УстановитьТекст(ТекстСкриптаPowerShell);
		ЗаписьТекстаСкриптаPowerShell.Записать(ВременныйФайлСкриптаPowerShell, КодировкаТекста.Системная);
		ЗапуститьПриложение("powershell "+ВременныйФайлСкриптаPowerShell,,Ложь);
		Если НЕ СуществованиеГруппы(ДокументДляВыгрузки.Подразделение1) Тогда 
			СозданиеГруппыБезопасности(ДокументДляВыгрузки.Подразделение1);
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Подразделение1);
		Иначе
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Подразделение1);   
		КонецЕсли;
	КонецЕсли;
	Если ЗначениеЗаполнено(ДокументДляВыгрузки.Подразделение2) Тогда 
		Если НЕ СуществованиеГруппы(ДокументДляВыгрузки.Подразделение2) Тогда 
			СозданиеГруппыБезопасности(ДокументДляВыгрузки.Подразделение2); 
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Подразделение2); 
		Иначе
			ДобавлениеЮзераВГруппу(ОтобрИмя,ДокументДляВыгрузки.Подразделение2);   
		КонецЕсли;
	КонецЕсли;
	СоединениеАДО.Close(); 
	ДобавлениеЮзераВГруппу(ОтобрИмя,"all");
	ОтправкаСообщения(НомерТел,ИмяПольз);    
	Если СтрНайти(Нрег(ДокументДляВыгрузки.Должность),"начальник")>0
		или СтрНайти(Нрег(ДокументДляВыгрузки.Должность),"руководитель")>0 
		или СтрНайти(Нрег(ДокументДляВыгрузки.Должность),"мастер")>0
		Тогда  
		ДобавлениеЮзераВГруппу(ОтобрИмя,"Руководители Компании");
	КонецЕсли;
КонецФункции 

 

 

Пример кода для создания учетной записи в Outlook

&НаСервере
Процедура ВыгрузитьСобытиеВOutlookНаСервере(ДокументДляВыгрузки)
	ПарольДомена1 = РегламентныеЗаданияКадровоеСобытиеЗУП.ПолучитьСписокСтрокПарольДомена();  
	ПозицияСимвола = Найти(РегламентныеЗаданияКадровоеСобытиеЗУП.ПолучитьСписокСтрокУчётнаяЗапись(), "@"); 
	СтрокаДоСимволаРазделителя = Лев(РегламентныеЗаданияКадровоеСобытиеЗУП.ПолучитьСписокСтрокУчётнаяЗапись(), ПозицияСимвола - 1); 
	
	Попытка 
		ФИО = СтрРазделить(ДокументДляВыгрузки.ФИО," ",Ложь);  
		ИмяПольз = Транслит(НРег(ФИО[0]+Лев(ФИО[1], 1)+Лев(ФИО[2], 1)),Ложь);   
		ВременныйФайлСкриптаPowerShell = ПолучитьИмяВременногоФайла("ps1");
		ТекстСкриптаPowerShell = "Set-ExecutionPolicy RemoteSigned
		|$PlainPassword = '"+ПарольДомена1+"'
		|$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
		|$UserName = 'company.gor\"+СтрокаДоСимволаРазделителя+"'
		|$UserCredential = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $SecurePassword
		|$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ex1.company.gor/PowerShell/ -Authentication Kerberos -Credential $UserCredential       
		|Import-PSSession $Session -DisableNameChecking
		|$user = '"+ИмяПольз+"' 
		|Enable-Mailbox -Identity $user
		|Set-CasMailbox -Identity $user -PopEnabled $false
		|Set-Mailbox -Identity $user -IssueWarningQuota 500MB -ProhibitSendQuota 600MB -ProhibitSendReceiveQuota 600MB -UseDatabaseQuotaDefaults $false
		|Remove-PSSession $Session";  
		ЗаписьТекстаСкриптаPowerShell = Новый ТекстовыйДокумент;
		ЗаписьТекстаСкриптаPowerShell.УстановитьТекст(ТекстСкриптаPowerShell);
		ЗаписьТекстаСкриптаPowerShell.Записать(ВременныйФайлСкриптаPowerShell, КодировкаТекста.Системная);
		ЗапуститьПриложение("powershell "+ВременныйФайлСкриптаPowerShell,,Ложь);
		Сообщить("Почта создана"); 
		
		ДокументДляВыгрузкиОбъект = ДокументДляВыгрузки.ПолучитьОбъект(); 
		
		ДокументДляВыгрузкиОбъект.ДатаВыгрузкиВOutlook = ТекущаяДата();
		ДокументДляВыгрузкиОбъект.СтатусВыгрузкиВOutlook = "Успешно";     
		
		ДокументДляВыгрузкиОбъект.Записать(РежимЗаписиДокумента.Проведение); 
		//shell         
		ВременныйФайлСкриптаPowerShell = ПолучитьИмяВременногоФайла("ps1");
		ТекстСкриптаPowerShell = "$accountName = '"+ИмяПольз+"'
		|$accountNameMail = '"+ИмяПольз+"@company.ru'
		|$subject='Добро пожаловать!'
		|$body = ""
		|<html>
		|<head>
		|<meta http-equiv=Content-Type content='text/html; charset=windows-1251'>
		|<meta name=Generator content='Microsoft Word 15 (filtered)'>
		|  <title>Добро пожаловать!</title>
		|  <style>
		|    body {
		|      font-family: Arial, sans-serif;
		|      margin: 20px;
		|      background-color: #f5f5f5;
		|	  padding-right: 300px;
		|	  padding-left: 300px;
		|    }    
		|    h1 {
		|      color: #333;
		|      font-size: 24px;
		|      padding-bottom: 10px;
		|      text-align: center;
		|    }    
		|    p {
		|      color: #666;
		|      font-size: 16px;
		|      line-height: 1.5;
		|      text-align: center;	  
		|    }  
		|    ul {
		|      list-style-type: none;
		|      padding: 0;
		|      text-align: center;
		|    }    
		|    li {
		|      padding-bottom: 10px;
		|      text-align: left;
		|    }    
		|    a {
		|      color: #0066cc;
		|      text-decoration: none;
		|      font-size: 18px; /* Увеличиваем размер текста ссылок */
		|    }    
		|    a:hover {
		|      text-decoration: underline;
		|    }	
		|	li {
		|  padding-bottom: 10px;
		|  text-align: left;
		|  border: 2px solid black; /* Добавляем обводку */
		|  border-radius: 10px; /* Добавляем закругление */
		|  padding: 10px; /* Увеличиваем внутренний отступ */  
		|}
		|  </style>
		|</head>
		|<body>
		|  <h1>Добро пожаловать!</h1>
		|  <p>Уважаемый сотрудник!</p>
		|  <p>Мы рады видеть вас частью нашей команды. Когда вы отправитесь в путь вместе с нами, мы хотим обеспечить плавный переход и предоставить вам полезные ресурсы.</p>
		|</body>
		|</html>
		|""
		|Send-MailMessage -From 'it@company.ru' -To $accountNameMail -Subject $subject  -Body $body  -BodyAsHtml ` -Encoding 'UTF8' -SmtpServer '167.16.2.11'";  
		ЗаписьТекстаСкриптаPowerShell = Новый ТекстовыйДокумент;
		ЗаписьТекстаСкриптаPowerShell.УстановитьТекст(ТекстСкриптаPowerShell);
		ЗаписьТекстаСкриптаPowerShell.Записать(ВременныйФайлСкриптаPowerShell, КодировкаТекста.Системная);
		ЗапуститьПриложение("powershell "+ВременныйФайлСкриптаPowerShell,,Ложь);		
		
	Исключение
		ТекстОшибки = "Ошибка в процедуре ВыгрузитьСобытиеВOutlookНаСервере для события "+ДокументДляВыгрузки+". Описание ошибки: " + ОписаниеОшибки(); 
		
		ЗаписьЖурналаРегистрации("ВыгрузкаВAD/Outlook",УровеньЖурналаРегистрации.Ошибка,,ТекстОшибки);
		
		ДокументДляВыгрузкиОбъект = ДокументДляВыгрузки.ПолучитьОбъект();
		
		ДокументДляВыгрузкиОбъект.ДатаВыгрузкиВOutlook = Неопределено;
		
		ДокументДляВыгрузкиОбъект.СтатусВыгрузкиВOutlook = ОписаниеОшибки();  
		
		ДокументДляВыгрузкиОбъект.Записать(РежимЗаписиДокумента.Проведение);
		
		ВызватьИсключение(ТекстОшибки);
	КонецПопытки;
	
КонецПроцедуры    

 

1С ЗУП Active Directory Outlook выгрузка данных

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16014    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18041    10    15    

14

SALE! 10%

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

28000 25200 руб.

28.05.2015    85222    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12947    32    8    

12

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    89509    163    217    

320
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. wtlz 272 17.04.24 10:21 Сейчас в теме
Обновляю e-mail сотрудников из AD напрямую в основной базе. Тут тоже можно было все сделать в новом расширении для ЗУП и не городить огород из веб-сервисов и доп. базы :) А расширение пригодилось бы остальным.
Спасибо за готовые скрипты по работе с уч. записями.
2. Vasvas05 22 17.04.24 17:14 Сейчас в теме
3. user612295_death4321 17.04.24 19:29 Сейчас в теме
(2) Да таких публикаций в целом не один десяток :)

Недавно подобную задачу решал, как объединить кучу доменов (с нормализацией, однофамильцами и т.д.) и данные ЗУП во что-то полезное в части автоматизации, прямо каждую скачал и посмотрел что там под капотом))))
4. Gaffer 85 18.04.24 00:11 Сейчас в теме
Было бы круто еще сделать генерацию и авто-обновление подписи в Outlook.
5. dm_137 35 18.04.24 05:02 Сейчас в теме
(1) так вышло, что процедуры и функции в этой конфигурации именно по взаимодействию с AD и Outlook писал системный администратор (т.е. он переписывал свой скрипт для PowerShell для 1С), поэтому там могут быть неточности... но код рабочий это 100%

я же делал все остальное, структуру, интерфейс, регламенты и т.д.
6. ubnkfl 18.04.24 12:12 Сейчас в теме
Писал когда-то обновление данных в AD по данным ЗУП.
	Для каждого ТекущаяСтрока Из UsersРазличия Цикл
		Если НЕ ТекущаяСтрока.Отметка Тогда
			Продолжить;
		КонецЕсли;
		
		ОбъектАД = ПолучитьCOMОбъект(ТекущаяСтрока.AdsPath);
		
		company = ?(ЗначениеЗаполнено(ТекущаяСтрока.company_1C), ТекущаяСтрока.company_1C, " ");
		ОбъектАД.Put("company", company); 
		
		department = ?(ЗначениеЗаполнено(ТекущаяСтрока.department_1C), ТекущаяСтрока.department_1C, " ");
		ОбъектАД.Put("department", department); 
		
		title = ?(ЗначениеЗаполнено(ТекущаяСтрока.title_1C), ТекущаяСтрока.title_1C, " "); 
		ОбъектАД.Put("title", title);
		
		l = ?(ЗначениеЗаполнено(ТекущаяСтрока.l_1C), ТекущаяСтрока.l_1C, " "); 
		ОбъектАД.Put("l", l);
		
		Если ЗначениеЗаполнено(ТекущаяСтрока.mobile_1C) Тогда 
			ОбъектАД.Put("mobile", ТекущаяСтрока.mobile_1C);
		КонецЕсли;
		
		telephoneNumber = ?(ЗначениеЗаполнено(ТекущаяСтрока.telephoneNumber_1C), ТекущаяСтрока.telephoneNumber_1C, " "); 
		ОбъектАД.Put("telephoneNumber", telephoneNumber);
		
		Level = ?(ЗначениеЗаполнено(ТекущаяСтрока.Level_1C), ТекущаяСтрока.Level_1C, " "); 
		ОбъектАД.Put("_Level", Level);
		
		MarketType = ?(ЗначениеЗаполнено(ТекущаяСтрока.MarketType_1C), ТекущаяСтрока.MarketType_1C, " "); 
		ОбъектАД.Put("_MarketType", MarketType);
		
		ОбъектАД.SetInfo();
		
		ТекущаяСтрока.Отметка = Ложь;
		ТекущаяСтрока.Обработано = Истина;
	КонецЦикла;
Показать

Adspath - идентификатор пользователя в AD вида
LDAP://CN=10F RX TPE OFFICE,OU=Generic Account,OU=Users,OU=TW-TAIWAN,OU=APAC,OU=***,DC=***,DC=***
7. d_neon 18.04.24 12:57 Сейчас в теме
Подумайте над тем чтобы проверять уникальность выдаваемого имени, так как вполне могут быть однофамильцы с одни и теми же инициалами (зависит от размеров компании конечно). Exchange в таком случае сформирует уникальное имя, но логин и почта будут различаться.

Также интересно что будет происходить если сотрудник уволился и повторно вернулся в компанию? Это будут разные учетки?

Один контроллер домена используется и почтовый сервер, или несколько?
8. dm_137 35 18.04.24 15:37 Сейчас в теме
(7)

>> так как вполне могут быть однофамильцы с одни и теми же инициалами
У нас есть два сотрудника Алексеев Иван Владимирович )

>> Также интересно что будет происходить если сотрудник уволился и повторно вернулся в компанию? Это будут разные учетки?

Ох... не знаю, нужно уточнить у админов. Но такие случаи точно бывают. А недавно девушка уволилась, вышла замуж и вернулась с другой фамилией...

>> Один контроллер домена используется и почтовый сервер, или несколько?
Один контроллер и один почтовый сервер.
10. chng 25.04.24 16:32 Сейчас в теме
(8)
У нас есть два сотрудника Алексеев Иван Владимирович )

Унас эта цифра таких сотрудников была до 15 пар в одно время...
Для них год рождения спасает...
9. Pavel_Vladivostok 58 19.04.24 06:02 Сейчас в теме
Я бы предложил вывести скрипты в периодический РСВ, подцепить его к справочнику, чтобы были версии тех или иных скриптов. Для идентификации сотрудников использовать ключи аналитик состоящих из нескольких базовых аналитик зуп - физ. лицо, организация, сотрудник, подразделение, с АД связывать уже эти ключи аналитик. Это будет полезно в тех случаях когда один человек работает в одной компании, но трудоустроен в одном и более юридических лицах, у него один и более логинов в АД с разными полномочиями и доступами к ресурсам, и нужно быстро получить ответ с кем в организации связана та или иная учетка в АД.
Я бы конечно все это сделал в расширении для ЗУП.
Оставьте свое сообщение