Почему возникает ошибка «Тип не определен (Почта)» в 1С и как её исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При проверке синтаксиса или выполнении кода в конфигурациях на платформе «1С:Предприятие» (например, в «1С:Документооборот») разработчики могут столкнуться со следующим сообщением синтаксического контроля:

Тип не определен (Почта)

Ошибка указывается на строке инициализации объекта:

ОбъектПочта = Новый Почта;

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

Выясним причину ошибки

Объект платформы Почта предназначен для взаимодействия с локальным почтовым клиентом, установленным в операционной системе по умолчанию (например, Microsoft Outlook), с использованием технологии Simple MAPI.

Ошибка «Тип не определен (Почта)» возникает в следующих ситуациях:

  1. Запуск на операционной системе, отличной от Windows (Linux, macOS): Технология MAPI является специфичной для ОС Windows. На рабочих станциях под управлением Linux объект Почта полностью отсутствует в движке платформы 1С, поэтому при попытке создания этого объекта платформа выдает ошибку о неопределенном типе.
  2. Исполнение в недопустимом контексте: Объект Почта доступен только в тонком и толстом клиенте под ОС Windows. Он недоступен на сервере (&НаСервере), в веб-клиенте и на мобильных платформах.
  3. Несоответствие разрядности клиентского приложения: Если запускается 64-разрядный клиент 1С под Windows, а в системе установлен 32-разрядный почтовый клиент (или отсутствуют необходимые MAPI-компоненты), инициализация типа может завершиться ошибкой.

Вариант 1. Использование условий компиляции и проверки операционной системы

Если в решении необходима работа с локальным MAPI-клиентом на компьютерах под управлением Windows, но код проверяется или исполняется в других средах, защитим вызов конструктора директивами препроцессора:


#Если Клиент И Не ВебКлиент И Не МобильноеПриложениеКлиент Тогда
    ОбъектПочта = Новый Почта;
#КонецЕсли

Также перед созданием объекта можно программно проверить текущую операционную систему с помощью объекта СистемнаяИнформация:


ИнформацияСинхронизации = Новый СистемнаяИнформация;
ТипПлатформы = ИнформацияСинхронизации.ТипПлатформы;

Если ТипПлатформы = ТипПлатформыИнформационнойБазы.Windows_x86 
 Или ТипПлатформы = ТипПлатформыИнформационнойБазы.Windows_x86_64 Тогда
    ОбъектПочта = Новый Почта;
Иначе
    ВызватьИсключение NStr("ru = 'Использование MAPI-почты поддерживается только в ОС Windows!'");
КонецЕсли;

Вариант 2. Переход на кроссплатформенный объект «ИнтернетПочта»

Если рабочие места пользователей функционируют под управлением ОС Linux или работа с почтой осуществляется на стороне сервера/в веб-клиенте, стандартный объект Почта не подойдет. В этом случае необходимо использовать объекты ИнтернетПочта, ПочтовыйПрофиль и ПочтовоеСообщение.

Объект ИнтернетПочта напрямую взаимодействует с почтовыми серверами по протоколам SMTP, POP3 и IMAP, что делает его полностью кроссплатформенным.

Рассмотрим пример отправки письма с использованием объекта ИнтернетПочта:


Профиль = Новый ПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.example.com";
Профиль.ПортSMTP = 465;
Профиль.Пользователь = "user@example.com";
Профиль.Пароль = "Password";
Профиль.ИспользоватьSSLSMTP = Истина;

Сообщение = Новый ПочтовоеСообщение;
Сообщение.Отправитель.Адрес = "user@example.com";
Сообщение.Получатели.Добавить("client@example.com");
Сообщение.Тема = "Тестовое письмо";
Сообщение.Тексты.Добавить("Текст сообщения", ТипТекстаПочтовогоСообщения.ПростойТекст);

Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль, СпособОбработкиПочтовыхАдресов.Отправить);
Почта.Послать(Сообщение);
Почта.Отключиться();

Вариант 3. Настройка почтового клиента в «1С:Документооборот»

В типовой конфигурации «1С:Документооборот» при работе на операционной системе Linux следует переключить режим работы электронной почты в персональных настройках или настройках программы. Откажемся от использования локального почтового клиента (MAPI) и переведем систему на использование встроенного почтового клиента, работающего по протоколам SMTP/IMAP через объект ИнтернетПочта.

← На главную