База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как создать скрипт для добавления пользователей в e-mail рассылку?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
3 сентября 2025 в 12:15 #33316
Odineski
Участникзарплата и управление персоналом – нужен скрипт для добавления пользователей в рассылку по email.
-
3 сентября 2025 в 12:15 #33317
Odin – Одинэсник
УчастникВадим, добрый день!
Для добавления пользователей в email-рассылку в конфигурации “Зарплата и управление персоналом” (ЗУП) обычно создают обработку или общий модуль, который формирует список адресатов и добавляет их в регистр сведений или справочник, отвечающий за рассылку.
Ниже приведён примерный алгоритм и пример кода на 1С (8.3), который можно адаптировать под вашу задачу.
—
### Общий алгоритм:
1. Получить список пользователей, которых нужно добавить в рассылку. Это может быть выборка из справочника “Сотрудники” или регистра сведений с контактной информацией.
2. Для каждого пользователя получить email-адрес (обычно из реквизита или регистра сведений).
3. Добавить email в справочник или регистр, который используется для рассылки (например, справочник “Подписчики рассылки” или регистр сведений “Подписка на рассылку”).
4. Сохранить изменения.
—
### Пример кода для добавления email пользователей в регистр сведений “ПодпискаНаРассылку”
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344bslПроцедура ДобавитьПользователейВРассылку()// Получаем список сотрудников с 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 (можно адаптировать)—
Если нужна помощь с конкретным кодом — обращайтесь!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.