Как настроить отправку писем, SMS и уведомлений в 1С

· 9 мин

Содержание

Чтобы 1С отправляла письма, нужна учётная запись почты: в типовых конфигурациях на БСП это Администрирование → Органайзер, группа «Почта». SMS уходят через платного оператора-шлюза, который настраивается там же в блоке отправки SMS. А сообщения и уведомления внутри программы — это обсуждения и всплывающие оповещения пользователям.

Три разных канала, три разных механизма. Почта и SMS — наружу, клиентам и контрагентам. Уведомления — внутри базы, коллегам. Ниже разберём каждый: где настроить, как отправить вручную и из кода, как поставить рассылку на расписание и что делать, когда письмо «не уходит».

Сначала определитесь, какой канал вам нужен — от этого зависит, что настраивать.

Какой канал выбрать под задачу

Кому и зачем нужно отправить сообщение?

Дальше — по каждому каналу отдельно.

Настройка почты по SMTP в 1С 8.3

Откройте Администрирование → Органайзер и включите группу «Почта». После этого станут доступны два пункта: настройка системной учётной записи (от неё 1С шлёт служебные письма — рассылки, уведомления о задачах) и список учётных записей электронной почты для конкретных пользователей.

В карточке учётной записи заполните:

  • 📧 Адрес и имя отправителя — то, что увидит получатель;
  • 🖥️ Сервер исходящей почты (SMTP) — например, smtp.yandex.ru, smtp.mail.ru, smtp.gmail.com;
  • 🔌 Порт и тип шифрования — зависят от сервера (см. таблицу);
  • 👤 Пользователь и пароль — логин почтового ящика;
  • 📥 при необходимости — параметры входящей почты (IMAP/POP3), если планируете ещё и получать письма.

Порт и шифрование — главная причина, по которой почта не подключается. Ориентируйтесь на таблицу:

ШифрованиеПорт SMTPЧто выбрать в 1С
SSL465«Использовать безопасное соединение (SSL)»
STARTTLS587«Использовать безопасное соединение» без явного SSL
без шифрования25не выбирать шифрование (почти все провайдеры запрещают)

У Яндекс.Почты, Mail.ru и Gmail обычный пароль от ящика в сторонних программах не работает. Нужно включить доступ по протоколу и завести пароль приложения в настройках безопасности почты — именно его вписывают в поле «Пароль» в 1С.

После заполнения нажмите проверку соединения прямо в карточке. Если тест прошёл — письма можно отправлять из любого документа командой отправки по почте (конверт в командной панели печатной формы или списка).

Проверка перед первой отправкой
Выполнено: 0 / 5

Отправка писем из кода: пример для разработчика

Если нужно слать письма из обработки или по событию документа, пользуйтесь объектами платформы ИнтернетПочтовыйПрофиль, ИнтернетПочта и ИнтернетПочтовоеСообщение. Профиль хранит параметры подключения, объект почты держит соединение, сообщение — само письмо.

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервера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. Зарегистрируйтесь у оператора рассылок и пополните баланс.
  2. Согласуйте с оператором имя отправителя — буквенную подпись регистрируют заранее, часто через оператора связи.
  3. В 1С выберите этого провайдера из списка и впишите выданные логин/ключ.
  4. Отправьте тестовое 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) и расписание. Дальше рассылка уходит сама через настроенную системную учётную запись почты.

Если нужна своя логика, напишите код отправки в процедуре и повесьте её на регламентное задание:

  • в файловой базе задания выполняются, только когда открыт сеанс; для круглосуточной рассылки нужен клиент-серверный вариант или запущенный сеанс;
  • расписание (раз в час, по будням, в определённое время) задаётся в свойствах задания в Администрирование → Обслуживание → Регламентные и фоновые задания;
  • каждую отправку логируйте, чтобы отличать «не было адресатов» от «почта упала».

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

Частые ошибки при отправке

Диагностика: выберите симптом

Частые вопросы

Можно ли отправлять письма с нескольких ящиков одновременно?
Да. Заведите несколько учётных записей электронной почты, а в документах или рассылках указывайте, от какой из них отправлять. Системная учётная запись при этом остаётся отдельно для служебных писем.
Нужен ли интернет на сервере для отправки почты и SMS?
Да. И письма по SMTP, и SMS через шлюз, и Telegram уходят по интернету. В клиент-серверной базе за соединение отвечает сервер 1С, поэтому доступ к портам провайдера (465/587) открывают именно на нём, а не на компьютере пользователя.
Почему письмо уходит из моего сеанса, а по расписанию — нет?
В файловой базе регламентные задания работают только при открытом сеансе. Либо держите открытый сеанс, либо переведите базу в клиент-серверный режим, где задания выполняет сервер.
Сохраняются ли отправленные письма внутри 1С?
В типовых на БСП с подсистемой почты — да, они попадают в журнал исходящих. При прямой отправке платформенными объектами из кода 1С письмо нигде не хранит — сохраняйте копию сами, если это нужно.
Можно ли приложить к письму печатную форму документа?
Да. В форме печати есть команда отправки по почте: 1С сформирует вложение (обычно PDF) и подставит получателя из карточки контрагента, если там указан адрес.