ПочтовыеВложения.Количество

Методы · Count

Получает размер коллекции почтовых вложений.

Синтаксис

Количество()
Полное описание, параметры и ограничения

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

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

Количество (Count)

Доступен, начиная с версии 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. Другой вариант Добавить принимает путь к файлу; этот урок намеренно использует байты, а не рабочие файлы.

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

Составить учебное письмо с получателем, копией и скрытой копией

У нового клиентского ПочтовоеСообщение разные коллекции Получатели, Копии и СлепыеКопии. Их наполнение не отправляет письмо.

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

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

Подготовка

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

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

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

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

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

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

  1. Создать новый клиентский объект и заполнить заголовок, тело и вымышленного отправителя.

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

  3. Установить флаг Непрочтено только у своего нового объекта. Он имеет смысл для полученных писем, здесь показано свойство, не состояние сервера.

  4. Прочитать ДатаПолучения без присваивания и вывести фактическое значение отдельно.

  5. Проверить коллекции, текст и отсутствие вложений. Ничего не посылать.

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

  1. Девять булевых сообщений Истина и отдельно дата нового объекта.

  2. В почтовом ящике не появляется письмо, состояние прочтения существующих писем не меняется.

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

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

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

  1. СлепыеКопии — категория адресатов, не шифрование содержимого.

  2. Непрочтено у нового локального объекта не отмечает письмо на сервере.

  3. Не путайте ПочтовоеСообщение/MAPI с ИнтернетПочтовоеСообщение/SMTP. Эти типы нельзя механически подставлять друг вместо друга.

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

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

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

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

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