Как настроить отправку писем, SMS и уведомлений в 1С
Содержание
Чтобы 1С отправляла письма, нужна учётная запись почты: в типовых конфигурациях на БСП это Администрирование → Органайзер, группа «Почта». SMS уходят через платного оператора-шлюза, который настраивается там же в блоке отправки SMS. А сообщения и уведомления внутри программы — это обсуждения и всплывающие оповещения пользователям.
Три разных канала, три разных механизма. Почта и SMS — наружу, клиентам и контрагентам. Уведомления — внутри базы, коллегам. Ниже разберём каждый: где настроить, как отправить вручную и из кода, как поставить рассылку на расписание и что делать, когда письмо «не уходит».
Сначала определитесь, какой канал вам нужен — от этого зависит, что настраивать.
Какой канал выбрать под задачу
Дальше — по каждому каналу отдельно.
Настройка почты по SMTP в 1С 8.3
Откройте Администрирование → Органайзер и включите группу «Почта». После этого станут доступны два пункта: настройка системной учётной записи (от неё 1С шлёт служебные письма — рассылки, уведомления о задачах) и список учётных записей электронной почты для конкретных пользователей.
В карточке учётной записи заполните:
- 📧 Адрес и имя отправителя — то, что увидит получатель;
- 🖥️ Сервер исходящей почты (SMTP) — например,
smtp.yandex.ru,smtp.mail.ru,smtp.gmail.com; - 🔌 Порт и тип шифрования — зависят от сервера (см. таблицу);
- 👤 Пользователь и пароль — логин почтового ящика;
- 📥 при необходимости — параметры входящей почты (IMAP/POP3), если планируете ещё и получать письма.
Порт и шифрование — главная причина, по которой почта не подключается. Ориентируйтесь на таблицу:
| Шифрование | Порт SMTP | Что выбрать в 1С |
|---|---|---|
| SSL | 465 | «Использовать безопасное соединение (SSL)» |
| STARTTLS | 587 | «Использовать безопасное соединение» без явного SSL |
| без шифрования | 25 | не выбирать шифрование (почти все провайдеры запрещают) |
У Яндекс.Почты, Mail.ru и Gmail обычный пароль от ящика в сторонних программах не работает. Нужно включить доступ по протоколу и завести пароль приложения в настройках безопасности почты — именно его вписывают в поле «Пароль» в 1С.
После заполнения нажмите проверку соединения прямо в карточке. Если тест прошёл — письма можно отправлять из любого документа командой отправки по почте (конверт в командной панели печатной формы или списка).
Отправка писем из кода: пример для разработчика
Если нужно слать письма из обработки или по событию документа, пользуйтесь объектами платформы ИнтернетПочтовыйПрофиль, ИнтернетПочта и ИнтернетПочтовоеСообщение. Профиль хранит параметры подключения, объект почты держит соединение, сообщение — само письмо.
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 465;
Профиль.Пользователь = "robot@example.ru";
Профиль.Пароль = "парольПриложения";
Профиль.ИспользоватьSSLSMTP = Истина;
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Тема = "Акт сверки за квартал";
Письмо.Отправитель = "robot@example.ru";
Письмо.Получатели.Добавить("client@example.ru");
ТекстПисьма = Письмо.Тексты.Добавить(
"Здравствуйте! Во вложении акт сверки.",
ТипТекстаПочтовогоСообщения.ПростойТекст);
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль);
Почта.Послать(Письмо);
Исключение
Сообщить("Письмо не отправлено: " + ОписаниеОшибки());
Иначе
Сообщить("Письмо отправлено");
КонецПопытки;
Почта.Отключиться();
Несколько моментов, которые экономят отладку:
- 💡 Для HTML-письма вместо
ПростойТекстукажитеТипТекстаПочтовогоСообщения.HTMLи сформируйте разметку в тексте. - 💡 Вложение добавляется в коллекцию
Письмо.Вложения.Добавить(ДвоичныеДанные, "akt.pdf"). - 💡 Весь блок отправки оборачивайте в
Попытка … Исключение: при обрыве сети или неверном пароле методПослатьвызовет исключение, и без обработки процедура аварийно завершится. - 💡 Копию и скрытую копию задают отдельными коллекциями —
Письмо.КопияПолучатели.Добавить(…)иПисьмо.СкрытаяКопияПолучатели.Добавить(…). Для ответа на нужный адрес заполнитеПисьмо.ОбратныйАдрес.
Одно соединение выдерживает несколько писем подряд: подключились один раз, в цикле вызвали Послать для каждого сообщения и только в конце — Отключиться. Открывать и закрывать соединение на каждое письмо медленнее и чаще упирается в лимиты провайдера на число сессий.
В типовых на БСП есть готовая подсистема работы с почтой — тогда отправку удобнее делать её методами, а не напрямую платформенными объектами: учётные записи, подписи и журнал писем уже встроены.
Подключение SMS-рассылок через оператора
SMS 1С сама не отправляет — она передаёт текст оператору-шлюзу по интернету, а тот доставляет сообщение на телефон. Поэтому сначала нужен договор с оператором рассылок.
Настройка — в том же Администрирование → Органайзер, блок отправки SMS. На БСП поддерживается список готовых провайдеров (СМС-центр, SMS.RU, Девино, P1SMS и другие). Выбираете своего, вводите логин, пароль (или API-ключ) и имя отправителя — ту подпись, что увидит получатель вместо номера.
Порядок подключения:
- Зарегистрируйтесь у оператора рассылок и пополните баланс.
- Согласуйте с оператором имя отправителя — буквенную подпись регистрируют заранее, часто через оператора связи.
- В 1С выберите этого провайдера из списка и впишите выданные логин/ключ.
- Отправьте тестовое SMS на свой номер и проверьте баланс.
Имя отправителя нельзя задать произвольно. Пока оператор не зарегистрировал вашу подпись, сообщения либо не уходят, либо приходят с чужого номера. Массовые рекламные рассылки дополнительно требуют согласия абонентов.
Стоимость — ориентировочно от 2 до 4 рублей за одно SMS в зависимости от оператора и объёма; длинное сообщение (более 70 символов кириллицей) тарифицируется как несколько коротких. Точные цены смотрите в личном кабинете оператора.
Статус доставки оператор возвращает не сразу: SMS проходит стадии «принято», «отправлено», «доставлено». Если сообщение важное, проверяйте финальный статус в кабинете оператора или через его API — факт отправки из 1С ещё не означает, что абонент его получил. Транслитерацией латиницей вместо кириллицы можно уложить текст в один сегмент и сэкономить, но читается он хуже.
Для рассылки «одной кнопкой» по списку контрагентов удобнее механизм групповой отправки на БСП: он берёт телефоны из карточек и шлёт пачкой через настроенного провайдера.
Внутренние уведомления и сообщения пользователям
Сообщить что-то коллеге внутри базы можно двумя способами, и они не взаимозаменяемы.
Обсуждения (система взаимодействия) — это встроенный чат с привязкой к документам и справочникам. Включаются в Администрирование → Органайзер → Обсуждения. Для работы базу нужно подключить к сервису взаимодействия под учётной записью 1С — это разовая регистрация. После подключения у документов появляется панель обсуждения: можно написать коллеге, упомянуть его через @ и приложить файл. Сообщение придёт адресату, когда он откроет программу.
Всплывающее оповещение — короткое уведомление в углу экрана текущего пользователя. Разработчик выводит его из кода:
ПоказатьОповещениеПользователя(
"Документ проведён",
,
"Реализация № 15 от сегодня",
БиблиотекаКартинок.Информация);
Такое оповещение видит только тот, кто сейчас работает в сеансе, — для передачи сообщения другому пользователю оно не годится. Для этого используйте обсуждения или почту.
Ещё один внутренний инструмент — напоминания: пользователь ставит себе или задаче срок, и программа напомнит в нужный момент. Это не отправка сообщения другому человеку, а личный будильник внутри базы.
Telegram и мессенджеры как канал уведомлений
Готовой кнопки «отправить в Telegram» в типовых нет, но интеграция делается через бота и HTTP-запрос. Схема простая: вы создаёте бота, получаете токен, узнаёте идентификатор чата и шлёте текст методом Bot API.
Соединение = Новый HTTPСоединение("api.telegram.org", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL);
Ресурс = "/bot<ТОКЕН>/sendMessage?chat_id=<ID>&text=" + КодироватьСтроку("Заказ отгружен", СпособКодированияСтроки.КодировкаURL);
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);
Так удобно слать служебные уведомления своей команде: «поступила оплата», «упал обмен», «создан срочный заказ». Для Viber и WhatsApp прямого бесплатного API нет — рассылка идёт через платные сервисы-шлюзы, подключаемые по тому же принципу HTTP-запроса.
Идентификатор чата (chat_id) не нужно угадывать: напишите боту любое сообщение, а затем разово запросите у Bot API метод получения обновлений — в ответе придёт числовой идентификатор вашего чата. Для группы идентификатор отрицательный, его берут тем же способом после добавления бота в группу.
Токен бота — это доступ к отправке от его имени. Храните его в защищённом хранилище данных или в константе с ограничением прав, а не в открытом тексте модуля.
Автоматическая рассылка писем по расписанию
Отправку можно не запускать руками, а поставить на график. За это отвечают регламентные задания.
Для типовых отчётов на БСП есть готовый механизм «Рассылки отчётов» (в разделе печатных форм и обработок администрирования). В нём вы выбираете отчёты, список получателей, формат вложения (PDF, Excel) и расписание. Дальше рассылка уходит сама через настроенную системную учётную запись почты.
Если нужна своя логика, напишите код отправки в процедуре и повесьте её на регламентное задание:
- в файловой базе задания выполняются, только когда открыт сеанс; для круглосуточной рассылки нужен клиент-серверный вариант или запущенный сеанс;
- расписание (раз в час, по будням, в определённое время) задаётся в свойствах задания в
Администрирование → Обслуживание → Регламентные и фоновые задания; - каждую отправку логируйте, чтобы отличать «не было адресатов» от «почта упала».
Прежде чем ставить рассылку на автозапуск, прогоните её вручную на тестовом адресе. Ошибка в коде на расписании разошлёт десятки писем, пока вы спите.