При проверке синтаксиса или выполнении кода в конфигурациях на платформе «1С:Предприятие» (например, в «1С:Документооборот») разработчики могут столкнуться со следующим сообщением синтаксического контроля:
Тип не определен (Почта)
Ошибка указывается на строке инициализации объекта:
ОбъектПочта = Новый Почта;
Проанализируем причины этой ошибки и разберем варианты решения данной проблемы.
Объект платформы Почта предназначен для взаимодействия с локальным почтовым клиентом, установленным в операционной системе по умолчанию (например, Microsoft Outlook), с использованием технологии Simple MAPI.
Ошибка «Тип не определен (Почта)» возникает в следующих ситуациях:
Почта полностью отсутствует в движке платформы 1С, поэтому при попытке создания этого объекта платформа выдает ошибку о неопределенном типе.Почта доступен только в тонком и толстом клиенте под ОС Windows. Он недоступен на сервере (&НаСервере), в веб-клиенте и на мобильных платформах.Если в решении необходима работа с локальным MAPI-клиентом на компьютерах под управлением Windows, но код проверяется или исполняется в других средах, защитим вызов конструктора директивами препроцессора:
#Если Клиент И Не ВебКлиент И Не МобильноеПриложениеКлиент Тогда
ОбъектПочта = Новый Почта;
#КонецЕсли
Также перед созданием объекта можно программно проверить текущую операционную систему с помощью объекта СистемнаяИнформация:
ИнформацияСинхронизации = Новый СистемнаяИнформация;
ТипПлатформы = ИнформацияСинхронизации.ТипПлатформы;
Если ТипПлатформы = ТипПлатформыИнформационнойБазы.Windows_x86
Или ТипПлатформы = ТипПлатформыИнформационнойБазы.Windows_x86_64 Тогда
ОбъектПочта = Новый Почта;
Иначе
ВызватьИсключение NStr("ru = 'Использование MAPI-почты поддерживается только в ОС Windows!'");
КонецЕсли;
Если рабочие места пользователей функционируют под управлением ОС Linux или работа с почтой осуществляется на стороне сервера/в веб-клиенте, стандартный объект Почта не подойдет. В этом случае необходимо использовать объекты ИнтернетПочта, ПочтовыйПрофиль и ПочтовоеСообщение.
Объект ИнтернетПочта напрямую взаимодействует с почтовыми серверами по протоколам SMTP, POP3 и IMAP, что делает его полностью кроссплатформенным.
Рассмотрим пример отправки письма с использованием объекта ИнтернетПочта:
Профиль = Новый ПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.example.com";
Профиль.ПортSMTP = 465;
Профиль.Пользователь = "user@example.com";
Профиль.Пароль = "Password";
Профиль.ИспользоватьSSLSMTP = Истина;
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Отправитель.Адрес = "user@example.com";
Сообщение.Получатели.Добавить("client@example.com");
Сообщение.Тема = "Тестовое письмо";
Сообщение.Тексты.Добавить("Текст сообщения", ТипТекстаПочтовогоСообщения.ПростойТекст);
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль, СпособОбработкиПочтовыхАдресов.Отправить);
Почта.Послать(Сообщение);
Почта.Отключиться();
В типовой конфигурации «1С:Документооборот» при работе на операционной системе Linux следует переключить режим работы электронной почты в персональных настройках или настройках программы. Откажемся от использования локального почтового клиента (MAPI) и переведем систему на использование встроенного почтового клиента, работающего по протоколам SMTP/IMAP через объект ИнтернетПочта.