При автоматизации отправки электронной почты из 1С разработчики часто сталкиваются с задачей добавления нескольких получателей в поле «Копия» (Cc) или «Скрытая копия» (Bcc). Стандартный подход, основанный на передаче массива или списка значений целиком в объект ИнтернетПочтовоеСообщение, часто приводит к ошибкам. Давайте разберем, почему так происходит и как реализовать массовую рассылку правильно.
Основная сложность заключается в непонимании того, что свойство Копии у объекта ИнтернетПочтовоеСообщение является не массивом в привычном понимании, а специализированным объектом ИнтернетПочтовыеАдреса. Согласно синтаксис-помощнику, метод Добавить этой коллекции ожидает на вход только строку с почтовым адресом или пару «имя» и «адрес».
Если вы попытаетесь передать туда массив, структуру или список значений целиком, система выдаст ошибку несоответствия типов. Метод Добавить работает исключительно с атомарными данными — одним конкретным адресом за один вызов.
Чтобы успешно отправить письмо нескольким получателям, необходимо организовать перебор вашего списка адресов с помощью цикла. Рассмотрим, как это сделать правильно, на конкретном примере.
ИнтернетПочтовоеСообщение.Для Каждого, чтобы итерационно добавить каждый адрес в коллекцию Копии.Посмотрим на пример программного кода для реализации данной задачи:
// Предположим, что СписокАдресов — это массив строк с email-адресами
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Получатели.Добавить("main@example.com"); // Основной получатель
Для Каждого Адрес Из СписокАдресов Цикл
// Добавляем каждый адрес из списка в коллекцию Копии по одному
Сообщение.Копии.Добавить(Адрес);
КонецЦикла;
При реализации данного функционала обратите внимание на следующие технические детали:
Добавить корректно принимает как «чистый» адрес (например, ivanov@mail.ru), так и адрес с отображаемым именем (например, "Иван Иванов" <ivanov@mail.ru>). Убедитесь, что передаваемая строка не содержит лишних спецсимволов или неверных разделителей.СкрытыеКопии идентичен работе с обычными копиями. Используйте свойство СкрытыеКопии вашего объекта ИнтернетПочтовоеСообщение аналогичным образом через цикл.ИнтернетПочтовоеСообщение и список адресов, выполняя их корректное добавление.Таким образом, мы выяснили, что для решения задачи достаточно простого цикла. Этот подход является стандартом для платформы 1С и позволяет избежать проблем с типами данных, обеспечивая корректное формирование заголовков почтового сообщения.