ПочтовыеВложения.Добавить

Методы · Add

Синтаксис и применение ПочтовыеВложения.Добавить в платформе 1С:Предприятие. Описание и примеры кода.

Синтаксис

Добавить(<АдресФайлаВложения>)
Добавить(<ДвоичныеДанные>, <НаименованиеВложения>)
Полное описание, параметры и ограничения

ПочтовыеВложения.Добавить (MailAttachments.Add)

ПочтовыеВложения (MailAttachments)

Добавить (Add)

Доступен, начиная с версии 8.0.

Вариант синтаксиса: Файл

Синтаксис:
Добавить(<АдресФайлаВложения>)
Параметры:

<АдресФайлаВложения> (обязательный)
Тип: Строка.
Адрес файла-вложения.
Описание варианта метода:
Добавляет ПочтовоеВложение в коллекцию почтовых вложений как файл.
Вариант синтаксиса: Двоичные данные

Синтаксис:
Добавить(<ДвоичныеДанные>, <НаименованиеВложения>)
Параметры:

<ДвоичныеДанные> (обязательный)
Тип: ДвоичныеДанные.
Данные вложения.

<НаименованиеВложения> (необязательный)
Тип: Строка.
Наименование вложения.
Значение по умолчанию: Пустая строка.
Описание варианта метода:
Добавляет ПочтовоеВложение в коллекцию почтовых вложений как данные с наименованием.
Возвращаемое значение:
Тип: ПочтовоеВложение.

Доступность:

Тонкий клиент, толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Добавить учебные вложения без файлов, переименовать и заменить данные

ПочтовыеВложения создаёт ПочтовоеВложение из собственных байтов. Имя в письме и сами данные — разные свойства.

Где и как запускать

Полный модуль своей управляемой формы. Настольный тонкий или толстый клиент. Только память, без MAPI-подключения.

Подготовка

  1. Используйте отдельную конфигурацию УчебнаяКонфигурацияСинтаксиса. Создайте внешнюю обработку с управляемой формой и командой ПроверитьЧерновик; обработчику команды назначьте процедуру из полного модуля выбранного урока.

  2. ПочтовоеСообщение — настольный клиентский тип семейства Почта/MAPI, не ИнтернетПочтовоеСообщение для SMTP/IMAP. Урок доступен тонкому и толстому клиенту, не веб-клиенту или серверу.

  3. Все адреса заканчиваются на example.invalid и являются учебными. Не используйте личные адреса, пароли, профили почтового клиента или реальные файлы.

  4. Объект Почта не создаётся и подключение не выполняется. Создание черновика в памяти не создаёт письмо в Outlook, не отправляет его и не проверяет доставку.

&НаКлиенте
Процедура ПроверитьЧерновик(Команда)
    Письмо = Новый ПочтовоеСообщение;
    Письмо.Отправитель = "warehouse@example.invalid";
    Письмо.Тема = "Учебный заказ Книга, 3 шт.";
    Письмо.Текст = "Книга: 3 шт. по 250, итого 750. Это только объект в памяти.";
    ТекстВложения = "Книга;3;250;750" + Символы.ПС;
    ИсходныеДанные = ПолучитьДвоичныеДанныеИзСтроки(ТекстВложения, КодировкаТекста.UTF8, Ложь);
    Первое = Письмо.Вложения.Добавить(ИсходныеДанные, "учебный-заказ.txt");
    Удаляемое = Письмо.Вложения.Добавить(ИсходныеДанные, "копия.txt");
    Письмо.Вложения.Добавить(ИсходныеДанные, "резерв.txt");
    Первое.Наименование = "исправленный-заказ.txt";
    Первое.Данные = ПолучитьДвоичныеДанныеИзСтроки("Книга;4;250;1000" + Символы.ПС, КодировкаТекста.UTF8, Ложь);
    ИзКоллекции = Письмо.Вложения.Получить(0);
    Если ИзКоллекции.Данные = Неопределено Тогда
        ВызватьИсключение "У собственного вложения должны быть данные";
    КонецЕсли;
    Сообщить(ИзКоллекции.Наименование = "исправленный-заказ.txt");
    Сообщить(СтрНайти(ПолучитьСтрокуИзДвоичныхДанных(ИзКоллекции.Данные, КодировкаТекста.UTF8), "1000") > 0);
    Сообщить(ПолучитьСтрокуИзДвоичныхДанных(ИсходныеДанные, КодировкаТекста.UTF8) = ТекстВложения);
    Сообщить(Письмо.Вложения.Количество() = 3);
    Письмо.Вложения.Удалить(Удаляемое);
    Сообщить(Письмо.Вложения.Количество() = 2);
    Письмо.Вложения.Удалить(1);
    Сообщить(Письмо.Вложения.Количество() = 1);
    Сообщить(Письмо.Вложения.Получить(0).Наименование = "исправленный-заказ.txt");
    Письмо.Вложения.Очистить();
    Сообщить(Письмо.Вложения.Количество() = 0);
КонецПроцедуры

Разбор по шагам

  1. Сформировать маленький UTF8-текст 750 в памяти, без чтения или записи файла.

  2. Добавить три объекта вложений с отдельными именами, сохранить возвращённые первый и второй объекты.

  3. У первого отдельно изменить Наименование и Данные на учебную сумму 1000.

  4. Получить первое вложение через коллекцию, проверить Неопределено перед декодированием.

  5. Убедиться, что исходные байты 750 остались прежними. Удалить второй объект, затем индекс 1, затем очистить только новый черновик.

Как проверить результат

  1. Восемь булевых сообщений Истина: новое имя и данные 1000, старые байты 750, количество 3→2→1→0.

  2. Никакие реальные файлы или письма не созданы, не отправлены и не удалены.

Ожидаемый результат

Полный жизненный цикл собственных небольших вложений с настоящими методами коллекции и проверкой данных.

На что обратить внимание

  1. Наименование — имя вложения для интерфейса, не путь, по которому записывается файл.

  2. Данные допускают Неопределено: перед чтением проверяйте наличие.

  3. Не запускайте вложение и не доверяйте его расширению как доказательству типа содержимого.

  4. Другой вариант Добавить принимает путь к файлу; этот урок намеренно использует байты, а не рабочие файлы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.