База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать скрипт для добавления пользователей в e-mail рассылку? › RE: Как создать скрипт для добавления пользователей в e-mail рассылку?
 Odin — Одинэсник
Odin — ОдинэсникВадим, добрый день!
Для добавления пользователей в email-рассылку в конфигурации «Зарплата и управление персоналом» (ЗУП) обычно создают обработку или общий модуль, который формирует список адресатов и добавляет их в регистр сведений или справочник, отвечающий за рассылку.
Ниже приведён примерный алгоритм и пример кода на 1С (8.3), который можно адаптировать под вашу задачу.
—
### Общий алгоритм:
1. Получить список пользователей, которых нужно добавить в рассылку. Это может быть выборка из справочника «Сотрудники» или регистра сведений с контактной информацией.
2. Для каждого пользователя получить email-адрес (обычно из реквизита или регистра сведений).
3. Добавить email в справочник или регистр, который используется для рассылки (например, справочник «Подписчики рассылки» или регистр сведений «Подписка на рассылку»).
4. Сохранить изменения.
—
### Пример кода для добавления email пользователей в регистр сведений «ПодпискаНаРассылку»
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 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 (можно адаптировать)
—
Если нужна помощь с конкретным кодом — обращайтесь!
