Работа с электронной почтой напрямую из 1С:Предприятие экономит время бухгалтеров, менеджеров и логистов, исключая ручной перенос данных из почтовых клиентов. Однако настройка этого функционала часто вызывает вопросы: какие протоколы поддерживаются, как авторизоваться через OAuth 2.0, почему письма не загружаются в базу или приходят с ошибками. В этой статье разберём все актуальные способы интеграции почты с 1С — от стандартных механизмов платформы до кастомизированных решений для облачных и корпоративных ящиков.
Важно понимать, что возможности работы с почтой в 1С зависят от версии платформы (8.2, 8.3) и конфигурации (Бухгалтерия, УТ, ЗУП и др.). Например, в 1С:Документооборот функционал почты реализован максимально широко, тогда как в типовой 1С:Бухгалтерии 3.0 потребуется доработка. Мы рассмотрим универсальные методы, а также нюансы для популярных конфигураций.
Если вы ранее пытались настроить почту в 1С и столкнулись с ошибками вроде "Не удалось подключиться к серверу IMAP" или "Ошибка аутентификации SMTP" — в статье найдёте причины и решения. Также отдельно разберём, как автоматизировать обработку входящих писем (например, создание документов из счетов-фактур в PDF) и отправку исходящих с вложениями.
1. Стандартные механизмы работы с почтой в 1С
Платформа 1С:Предприятие 8.3 предоставляет встроенные объекты для работы с электронной почтой через протоколы SMTP (отправка) и IMAP/POP3 (получение). Эти механизмы доступны через:
- 📌 Объект
Почта— базовый функционал для отправки писем с вложениями. - 📌 Объект
ИнтернетПочта— расширенные возможности (работа с IMAP, папками, фильтрация писем). - 📌 Обработки
ПолучениеПочты.epfиОтправкаПочты.epf— типовой инструмент для конфигураций на управляемых формах.
Для начала работы достаточно:
- Создать профиль почты в справочнике
Профили почты(путь:Администрирование → Настройки программы → Почта и взаимодействия). - Указать параметры подключения: адрес сервера (например,
imap.yandex.ru), порт (993для IMAP с SSL), логин и пароль. - Настроить правила обработки входящих писем (например, сохранение вложений в определённую папку или создание документов на основе шаблонов).
Если в вашей конфигурации нет справочника Профили почты, его можно добавить через Конфигуратор (раздел Общие → Справочники) или использовать внешнюю обработку для работы с почтой.
Ограничения стандартных механизмов:
- ⚠️ Нет поддержки OAuth 2.0 (только логин/пароль или открытые SMTP-серверы).
- ⚠️ Отсутствует работа с Microsoft Graph API (для Office 365 требуются доработки).
- ⚠️ Нет встроенной обработки HTML-писем (только plain text или вложения).
2. Настройка IMAP/POP3 для получения писем
Для получения писем в 1С чаще всего используется протокол IMAP, так как он позволяет работать с папками на сервере (например, Входящие, Отправленные) и синхронизировать статусы писем. POP3 подходит только для простой загрузки писем без синхронизации.
Пошаговая инструкция для настройки IMAP:
- Откройте справочник
Профили почтыи создайте новый элемент. - В поле
Тип подключениявыберите IMAP. - Укажите параметры сервера:
- 📍 Адрес сервера:
imap.mail.ru(для Mail.ru),imap.gmail.com(для Gmail). - 📍 Порт:
993(с SSL) или143(без шифрования). - 📍 Логин: полный email-адрес (например,
user@domain.ru). - 📍 Пароль: пароль от почтового ящика или приложения (для Gmail).
- 📍 Адрес сервера:
- Включите опцию
Использовать SSL(рекомендуется). - Укажите папку для загрузки писем (обычно
INBOX). - Настройте периодичность проверки (например, каждые 10 минут).
- 📄 Создание счета на оплату из PDF-вложения.
- 📄 Регистрацию заявки от клиента из письма с темой "Заказ №123".
- 📄 Сохранение акта выполненных работ в соответствующую папку документооборота.
- 📤 Адрес сервера:
smtp.yandex.ru(порт465для SSL). - 📤 Аутентификация: включите опцию
Требуется аутентификация. - 📤 От кого: укажите email, зарегистрированный на SMTP-сервере.
- 📤 Кодировка: выберите
UTF-8для поддержки кириллицы.
Убедитесь, что почтовый сервер поддерживает IMAP|Проверьте, что порт не заблокирован фаерволом|Отключите двухфакторную аутентификацию или сгенерируйте пароль приложения|Попробуйте подключиться через сторонний клиент (например, Thunderbird)-->
Типичные ошибки при настройке IMAP:
| Ошибка | Причина | Решение |
|---|---|---|
Не удалось подключиться к серверу |
Неверный адрес сервера или порт | Проверьте настройки у провайдера почты (например, для Yandex: imap.yandex.ru:993) |
Ошибка аутентификации |
Неправильный логин/пароль или блокировка по IP | Используйте пароль приложения (для Gmail) или разблокируйте IP в настройках безопасности |
Превышено время ожидания |
Медленный сервер или проблемы с интернетом | Увеличьте таймаут в настройках профиля или проверьте соединение |
Не поддерживается SSL |
Устаревшая версия OpenSSL в 1С | Обновите платформу 1С до актуальной версии (8.3.20+) или отключите SSL (не рекомендуется) |
3. Автоматическая обработка входящих писем
Одно из ключевых преимуществ интеграции почты с 1С — автоматическое создание документов из входящих писем. Например, можно настроить:
Для этого используйте правила обработки в настройках профиля почты или создайте обработку на языке 1С с логикой:
Процедура ОбработатьПисьмо(Письмо)
Если НРег(Письмо.Тема) = "счет на оплату" Тогда
// Извлечение вложения
Вложение = Письмо.Вложения.Получить(0);
// Сохранение во временный файл
ИмяФайла = КаталогВременныхФайлов() + "вложение.pdf";
Вложение.СохранитьКак(ИмяФайла);
// Создание документа "Счет на оплату"
НовыйСчет = Документы.СчетаНаОплату.СоздатьДокумент();
НовыйСчет.ЗаполнитьИзPDF(ИмяФайла); // Требуется доработка
НовыйСчет.Записать();
КонецЕсли;
КонецПроцедуры
Важно: Для извлечения данных из PDF или Excel-вложений потребуется подключить внешние библиотеки (например, OneScript.PDF или АСПД.ОбработкаФайлов), так как в стандартной поставке 1С таких инструментов нет.
Пример кода для обработки вложений Excel
В этом спойлере скрыт код для чтения данных из Excel-файла с использованием COM-объекта Excel.Application. Обратите внимание, что этот метод работает только на Windows и требует установленного Microsoft Excel.
```bsl
Попытка
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open(ИмяФайла);
Лист = Книга.Worksheets(1);
Данные = Лист.UsedRange.Value;
// Обработка данных...
Исключение
Сообщить("Ошибка чтения Excel: " + ОписаниеОшибки());
КонецПопытки;
```
4. Работа с SMTP для отправки писем
Отправка писем из 1С осуществляется через протокол SMTP. В отличие от IMAP, здесь чаще возникают проблемы с спам-фильтрами, особенно если письма отправляются с корпоративного домена без правильно настроенных SPF, DKIM и DMARC-записей.
Минимальные настройки для SMTP:
Пример кода для отправки письма с вложением:
Почта = Новый Почта;
Сообщение = Новый СообщениеЭлектроннойПочты;
Сообщение.Адресат = "client@example.com";
Сообщение.Тема = "Счет на оплату №123 от 01.06.2026";
Сообщение.Текст = "Добрый день! Прилагаем счет на оплату.";
Сообщение.Вложения.Добавить("C:\Счета\счет_123.pdf");
Почта.Отправить(Сообщение, "smtp.yandex.ru", 465, "user@domain.ru", "пароль", Истина);
Для массовой рассылки писем из 1С (например, акций или уведомлений) используйте фоновые задания, чтобы не блокировать интерфейс программы. В типовой конфигурации 1С:Управление торговлей для этого есть обработка МассоваяРассылка.epf.
5. Интеграция с Microsoft Office 365 и Exchange
Для работы с Office 365 или Exchange Server стандартные механизмы 1С не подходят — потребуется использовать Microsoft Graph API или EWS (Exchange Web Services). Это связано с тем, что Microsoft отключает поддержку базовой аутентификации (логин/пароль) в пользу OAuth 2.0.
Алгоритм настройки:
- Зарегистрируйте приложение в Azure AD (портale.azure.com) с правами
Mail.Read,Mail.Send. - Получите
Client IDиClient Secret. - Используйте HTTP-сервис в 1С для авторизации и получения токена:
АдресАвторизации = "https://login.microsoftonline.com/ТЕНАНТ_ID/oauth2/v2.0/token";
Запрос = Новый HTTPЗапрос(АдресАвторизации);
Запрос.УстановитьТекст("grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=https://graph.microsoft.com/.default");
Ответ = Новый HTTPСоединение(АдресАвторизации);
Ответ.ОтправитьДляОбработки(Запрос);
Токен = JSON.Прочитать(Ответ.ПолучитьТекст()).access_token;
Graph API для работы с почтой, например:Адрес = "https://graph.microsoft.com/v1.0/me/messages";
Запрос = Новый HTTPЗапрос(Адрес);
Запрос.УстановитьЗаголовок("Authorization", "Bearer " + Токен);
Ответ = Новый HTTPСоединение(Адрес);
Ответ.ОтправитьДляОбработки(Запрос);
Письма = JSON.Прочитать(Ответ.ПолучитьТекст());
Для упрощения работы с Graph API можно использовать готовые библиотеки, такие как 1C-GraphAPI (доступна на GitHub). Она инкапсулирует логику авторизации и предоставляет удобные методы для работы с почтой, календарями и контактами.
Обратите внимание:
⚠️ Внимание: Настройки прав доступа в Azure AD могут изменяться. Перед настройкой проверьте актуальные требования в официальной документации Microsoft. Например, с 2026 года для некоторых операций требуетсяMail.ReadWriteвместоMail.Read.
6. Обработка ошибок и оптимизация производительности
При интенсивной работе с почтой в 1С могут возникать зависания интерфейса или памяти. Чтобы избежать проблем:
- 🔄 Используйте фоновые задания для проверки почты (например, через
Планировщикв 1С). - 🔄 Ограничивайте количество загружаемых писем за один сеанс (например, не более 50 писем за раз).
- 🔄 Настройте логирование ошибок в отдельный файл или журнал регистрации.
- 🔄 Для больших вложений (более 10 МБ) используйте потоковую загрузку, чтобы не перегружать память.
Типичные ошибки и их решения:
| Ситуация | Причина | Решение |
|---|---|---|
| Письма загружаются очень медленно | Большой объём вложений или медленный сервер | Настройте фильтр по дате (например, загружать письма не старше 7 дней) |
| 1С "подвисает" при проверке почты | Блокировка основного потока | Перенесите обработку почты в фоновое задание или используйте АсинхронныеВызовСервера |
| Письма дублируются в базе | Ошибка в логике сохранения или сбой синхронизации | Добавьте проверку на существование письма по Message-ID перед сохранением |
| Не приходят уведомления о новых письмах | Не настроен триггер или фоновое задание | Проверьте расписание в Планировщике заданий 1С |
7. Альтернативные способы интеграции почты
Если стандартные механизмы 1С не подходят (например, для работы с API Яндекс.Почты или Gmail API), рассмотрите альтернативные варианты:
1. Внешние обработки и расширения
- 📥 1C:EDT + REST API — создание кастомизированного решения с использованием HTTP-сервисов.
- 📥 Аддон "Почта Pro" (от фирмы "1С-Рарус") — расширенный функционал для работы с почтой, включая OAuth 2.0.
- 📥 OneScript.Mail — библиотека для гибкой работы с почтовыми протоколами.
2. Облачные сервисы
- ☁️ 1С:Линк — интеграция с почтой через облачный коннектор.
- ☁️ Make (ex-Integromat) — автоматизация обмена данными между 1С и почтовыми сервисами.
- ☁️ Zapier — простые сценарии для небольших компаний (например, сохранение писем в 1С из Gmail).
3. Прямая работа с API почтовых сервисов
Для максимальной гибкости можно написать обработку, которая взаимодействует с API почтового сервиса напрямую. Например, для Yandex API:
Адрес = "https://api3.normal.yandex.net/1.0/oauth/token";
Запрос = Новый HTTPЗапрос(Адрес);
Запрос.УстановитьТекст("grant_type=refresh_token&refresh_token=REFRESH_TOKEN&client_id=CLIENT_ID&client_secret=CLIENT_SECRET");
Ответ = Новый HTTPСоединение(Адрес);
Ответ.ОтправитьДляОбработки(Запрос);
Токен = JSON.Прочитать(Ответ.ПолучитьТекст()).access_token;
8. Безопасность при работе с почтой в 1С
Интеграция почты с 1С требует особого внимания к безопасности, так как в базе могут храниться:
- 🔐 Логины и пароли от почтовых ящиков.
- 🔐 Конфиденциальные вложения (договоры, счета, перс. данные).
- 🔐 История переписки с клиентами.
Рекомендации по защите:
- 🔒 Храните пароли в зашифрованном виде (используйте
ХранилищеПараметровили 1С:Хранилище настроек). - 🔒 Настройте двухфакторную аутентификацию для почтовых ящиков, интегрированных с 1С.
- 🔒 Ограничьте права доступа к справочнику
Профили почты(только администраторы). - 🔒 Регулярно обновляйте 1С:Предприятие и OpenSSL (актуально для версий ниже 8.3.20).
Пример безопасного хранения пароля:
Хранилище = Новый ХранилищеПараметровСеанса("ПочтовыеНастройки");
Хранилище.УстановитьПараметр("SMTP_Пароль", ЗашифроватьСтрокуВнутр(Пароль, "пароль_для_шифрования"));
⚠️ Внимание: Если вы используете Gmail или Yandex с интеграцией в 1С, обязательно настройте пароли приложений вместо основного пароля от ящика. Это позволит отзывать доступ к 1С без смены основного пароля.
FAQ: Частые вопросы по работе с почтой в 1С
Как настроить получение почты в 1С:Бухгалтерии 3.0?
В типовой конфигурации 1С:Бухгалтерия 3.0 нет встроенного функционала для получения почты. Вам потребуется:
- Подключить внешнюю обработку (например,
ПолучениеПочты.epfиз дистрибутива 1С). - Либо доработать конфигурацию, добавив объекты
ПрофилиПочтыиИнтернетПочтаиз других конфигураций (например, 1С:Документооборот). - Настроить фоновое задание для периодической проверки почты.
Готовое решение можно найти в базе решений ИТС (поиск по запросу "интеграция почты бухгалтерия").
Почему 1С не видит новые письма на IMAP-сервере?
Причины могут быть следующими:
- 🔹 Письма попадают в папку
Спамили другую, а не вINBOX. - 🔹 В настройках профиля указан неверный префикс папок (например, для Yandex нужно указать
INBOX.перед именем папки). - 🔹 На сервере включена фильтрация по IP, и адрес вашего сервера 1С заблокирован.
- 🔹 В 1С настроен фильтр по дате, и новые письма не попадают в выборку.
Проверьте настройки через сторонний клиент (например, Outlook или Thunderbird), чтобы убедиться, что письма действительно приходят на сервер.
Можно ли отправлять письма с вложениями больше 10 МБ?
Да, но есть нюансы:
- 📎 Большинство почтовых сервисов ограничивают размер вложений (например, Gmail — 25 МБ, Yandex — 30 МБ).
- 📎 В 1С при отправке больших файлов может возникать ошибка
Недостаточно памяти. В этом случае: - Разбейте файл на части (архивы по 5-10 МБ).
- Используйте облачное хранилище (например, загрузите файл в Яндекс.Диск и отправьте ссылку).
- Настройте потоковую отправку через
HTTPЗапрос(требуется доработка).
Как автоматизировать ответы на письма в 1С?
Для автоматических ответов можно использовать:
- Шаблоны писем: создайте шаблоны в справочнике
Шаблоны писеми настройте правила отправки. - Бизнес-процессы: в 1С:Документооборот настройте маршруты согласования с уведомлениями по email.
- Скрипты на языке 1С: например, при поступлении письма с темой "Запрос баланса" автоматически отправлять ответ с выпиской:
Если НРег(Письмо.Тема) Содержит "запрос баланса" Тогда
Ответ = Новый СообщениеЭлектроннойПочты;
Ответ.Адресат = Письмо.Отправитель;
Ответ.Тема = "Выписка по вашему запросу";
Ответ.Текст = ПолучитьВыпискуПоКлиенту(Письмо.Отправитель);
Ответ.Вложения.Добавить(ПолучитьФайлВыписки());
Почта.Отправить(Ответ);
КонецЕсли;
Какие есть ограничения при работе с почтой в облачной 1С?
В 1С:Fresh и других облачных решениях:
- 🌥 Нет прямого доступа к
HTTPСоединение(запрещены внешние запросы). - 🌥 Для работы с почтой нужно использовать внешние сервисы (например, 1С:Линк или Make).
- 🌥 Ограничен функционал
ФоновыеЗадания(нельзя настроить произвольное расписание). - 🌥 Для SMTP/IMAP требуется белый IP-адрес (в некоторых тарифах не предоставляется).
Рекомендуем уточнять актуальные ограничения у вашего провайдера облачных услуг 1С.