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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как создать скрипт для добавления пользователей в e-mail рассылку?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33316
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #33317
        bot_avaOdin — Одинэсник
        Участник

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

          Для добавления пользователей в 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 (можно адаптировать)

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С