ИнтернетТекстыПочтовогоСообщения.Количество

Методы · Count

Получает количество элементов в коллекции почтовых текстов.

Синтаксис

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

ИнтернетТекстыПочтовогоСообщения.Количество (InternetMailTexts.Count)

ИнтернетТекстыПочтовогоСообщения (InternetMailTexts)

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

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

Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.

Описание:

Получает количество элементов в коллекции почтовых текстов.

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

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Разобрать собственное исходное MIME-письмо

Между заголовками и телом одна пустая строка, переносы CRLF, тело ASCII. УстановитьИсходныеДанные принимает байты, не строку и не путь к EML.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В учебной базе выполните код на сервере. Письмо создаётся и разбирается в памяти; профиль почты, пароль, SMTP/IMAP и вызов Послать не нужны.

  2. Все адреса заданы на учебном домене example.invalid. Не заменяйте их реальными адресами и не добавляйте отправку при первой проверке.

  3. Письмо о двух учебных товарах не содержит персональных данных, реальных заказов и внешних HTML-ресурсов. Его текст не является счётом или подтверждением доставки.

СтрокиПисьма = Новый Массив;
СтрокиПисьма.Добавить("From: Guide <guide@example.invalid>");
СтрокиПисьма.Добавить("To: Student <student@example.invalid>");
СтрокиПисьма.Добавить("Subject: Guide fixture");
СтрокиПисьма.Добавить("Date: Sat, 03 Oct 2026 12:00:00 +0300");
СтрокиПисьма.Добавить("Message-ID: <guide-001@example.invalid>");
СтрокиПисьма.Добавить("Organization: Training");
СтрокиПисьма.Добавить("Keywords: learning, fixture");
СтрокиПисьма.Добавить("X-Guide-Code: A-01");
СтрокиПисьма.Добавить("MIME-Version: 1.0");
СтрокиПисьма.Добавить("Content-Type: text/plain; charset=us-ascii");
СтрокиПисьма.Добавить("Content-Transfer-Encoding: 7bit");
СтрокиПисьма.Добавить("");
СтрокиПисьма.Добавить("Book: 3; Pen: 1");
СтрокиПисьма.Добавить("");
ИсходныйТекст = СтрСоединить(СтрокиПисьма, Символы.ВК + Символы.ПС);
ИсходныеДанные = ПолучитьДвоичныеДанныеИзСтроки(ИсходныйТекст, КодировкаТекста.UTF8, Ложь);
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.УстановитьИсходныеДанные(ИсходныеДанные);
Если Письмо.СтатусРазбора <> СтатусРазбораИнтернетПочтовогоСообщения.ОшибокНеОбнаружено Тогда
    ВызватьИсключение "Собственное учебное письмо разобрано с ошибками";
КонецЕсли;
Сообщить(Письмо.Тема = "Guide fixture");
Сообщить(Письмо.Тексты.Количество() = 1);
Письмо.ОбработатьТексты();
ТекстоваяЧасть = Письмо.Тексты.Получить(0);
Сообщить(СтрНайти(ТекстоваяЧасть.Текст, "Book: 3; Pen: 1") > 0);
Сообщить(ТекстоваяЧасть.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст);
СырыеБайтыТекста = ТекстоваяЧасть.Данные;
Сообщить(СтрНайти(ПолучитьСтрокуИзДвоичныхДанных(СырыеБайтыТекста, "US-ASCII"), "Book: 3; Pen: 1") > 0);
ИсходныйТекстОбъекта = Письмо.ПолучитьИсходныйТекст(КодировкаТекста.UTF8);
Сообщить(СтрНайти(ИсходныйТекстОбъекта, "X-Guide-Code: A-01") > 0);

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

  1. Соединяем явно приведённые строки CRLF, включая пустую границу заголовков и тела.

  2. Конвертируем строку в байты без BOM, разбираем и проверяем СтатусРазбора до обработки текста.

  3. ОбработатьТексты выполняет обработку частей; Данные остаются двоичными, не присваиваем readonly-свойство.

  4. ПолучитьИсходныйТекст даёт MIME-источник, а не только красивый текст для пользователя.

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

  1. Шесть сообщений Истина; тело содержит Book: 3; Pen: 1.

  2. Статус собственного корректного источника ОшибокНеОбнаружено; при ошибке предусмотрено исключение до чтения части.

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

Разобраны MIME-заголовки, текстовая часть и исходные байты собственного письма.

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

  1. Объект письма и успешный разбор MIME не доказывают отправку, доставку, подлинность отправителя или прочтение.

  2. На реальном повреждённом источнике возможны исключение либо статус частичного разбора: нельзя игнорировать оба пути.

  3. Собственный ASCII-пример не доказывает корректность всех кодировок, вложений и вложенных multipart.

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

Добавить простой и HTML-текст с одинаковым смыслом

Тексты — коллекция частей письма. HTML не читается как BSL и не должен содержать неизвестные внешние ссылки; в уроке только собственный абзац.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В учебной базе выполните код на сервере. Письмо создаётся и разбирается в памяти; профиль почты, пароль, SMTP/IMAP и вызов Послать не нужны.

  2. Все адреса заданы на учебном домене example.invalid. Не заменяйте их реальными адресами и не добавляйте отправку при первой проверке.

  3. Письмо о двух учебных товарах не содержит персональных данных, реальных заказов и внешних HTML-ресурсов. Его текст не является счётом или подтверждением доставки.

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
Письмо.Тексты.Очистить();
Простой = Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
HTML = Письмо.Тексты.Добавить("<p>Книга: <strong>3</strong>; Ручка: <strong>1</strong></p>", ТипТекстаПочтовогоСообщения.HTML);
Простой.Кодировка = "UTF-8";
HTML.Кодировка = "UTF-8";
Сообщить(Письмо.Тексты.Количество() = 2);
Сообщить(Простой.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст);
Сообщить(HTML.ТипТекста = ТипТекстаПочтовогоСообщения.HTML);
Сообщить(СтрНайти(HTML.Текст, "<strong>3</strong>") > 0);
Письмо.Тексты.Удалить(HTML);
Сообщить(Письмо.Тексты.Количество() = 1);
Сообщить(Письмо.Тексты.Получить(0).Текст = "Книга: 3; Ручка: 1");

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

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

  2. Кодировка каждой части задана отдельно; тема и адресные имена имеют кодировку уровня письма.

  3. Удаляем HTML по объекту коллекции, оставляя простой текст. Никакой браузер для проверки не открывается.

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

  1. Шесть сообщений Истина: сначала две части, затем одна простая.

  2. HTML задан только как строка; его отображение в почтовом клиенте здесь не проверяется.

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

Подготовлены и изменены две текстовые части собственного письма.

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

  1. Объект письма и успешный разбор MIME не доказывают отправку, доставку, подлинность отправителя или прочтение.

  2. Не вставляйте пользовательский текст в HTML без экранирования.

  3. Наличие двух частей не обещает конкретную компоновку multipart во всех версиях почтовых клиентов.

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

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

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

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

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