Odin | База знаний 1С

Как создать скрипт ...
 

Как создать скрипт для добавления пользователей в e-mail рассылку?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

зарплата и управление персоналом - нужен скрипт для добавления пользователей в рассылку по email.



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Вадим, добрый день!

Для добавления пользователей в email-рассылку в конфигурации "Зарплата и управление персоналом" (ЗУП) обычно создают обработку или общий модуль, который формирует список адресатов и добавляет их в регистр сведений или справочник, отвечающий за рассылку.

Ниже приведён примерный алгоритм и пример кода на 1С (8.3), который можно адаптировать под вашу задачу.

---

### Общий алгоритм:

1. Получить список пользователей, которых нужно добавить в рассылку. Это может быть выборка из справочника "Сотрудники" или регистра сведений с контактной информацией.

2. Для каждого пользователя получить email-адрес (обычно из реквизита или регистра сведений).

3. Добавить email в справочник или регистр, который используется для рассылки (например, справочник "Подписчики рассылки" или регистр сведений "Подписка на рассылку").

4. Сохранить изменения.

---

### Пример кода для добавления email пользователей в регистр сведений "ПодпискаНаРассылку"

bsl
Процедура ДобавитьПользователейВРассылку()
	
	// Получаем список сотрудников с email
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
		Сотрудники.Ссылка КАК Сотрудник,
		КонтактнаяИнформация.Значение КАК Email
	ИЗ
		Справочник.Сотрудники КАК Сотрудники
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
		ПО Сотрудники.Ссылка = КонтактнаяИнформация.Объект
	ГДЕ
		КонтактнаяИнформация.ВидКонтактнойИнформации = &EmailВид
		И НЕ ПУСТО(КонтактнаяИнформация.Значение)";
	
	Запрос.УстановитьПараметр("EmailВид", Справочники.ВидыКонтактнойИнформации.Email);
	
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	
	// Работа с регистром сведений "ПодпискаНаРассылку"
	// Предполагается, что в регистре есть измерение "Подписчик" и ресурс "Email"
	
	Период = ТекущаяДата();
	
	Пока Выборка.Следующий() Цикл
		ЗаписьРегистра = РегистрыСведений.ПодпискаНаРассылку.СоздатьМенеджерЗаписи();
		ЗаписьРегистра.Подписчик = Выборка.Сотрудник;
		ЗаписьРегистра.Период = Период;
		ЗаписьРегистра.Email = Выборка.Email;
		
		Попытка
			ЗаписьРегистра.Записать();
		Исключение
			// Обработка ошибок записи, например, дубли
			Продолжить;
		КонецПопытки;
	КонецЦикла;
	
	Сообщить("Добавление пользователей в рассылку завершено.");
	
КонецПроцедуры

---

### Важные моменты:

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

- Если рассылка реализована через стандартные механизмы 1С, то возможно есть готовые объекты для подписки.

- Если нужно добавить пользователей в рассылку Outlook, то можно использовать COM-объект Outlook из 1С, но это уже более сложная интеграция.

---

### Рекомендации:

- Если рассылка делается через стандартные механизмы ЗУП, посмотрите в конфигурации объекты, связанные с рассылкой (например, регистры сведений или справочники с названием "Рассылка", "Подписчики" и т.п.).

- Для массового добавления пользователей можно сделать обработку с загрузкой из Excel или выборкой из базы.

- Для отправки писем из 1С можно использовать объект `ИнтернетПочта` или интеграцию с Outlook через COM.

---

Если нужно, могу помочь с конкретным кодом под вашу конфигурацию, пришлите, пожалуйста, структуру объектов, где хранится рассылка.

---

Рекомендую посмотреть здесь:
https://infostart.ru/public/380395/ — пример работы с электронной почтой в 1С
https://infostart.ru/public/2089872/ — пример интеграции с Outlook и AD из 1С
https://winitpro.ru/index.php/2017/11/22/excel-vba-macros-send-email-via-outlook/ — пример рассылки через Outlook из Excel VBA (можно адаптировать)

---

Если нужна помощь с конкретным кодом — обращайтесь!



   
ОтветитьЦитата