В любой компании, использующей 1С:Предприятие, рано или поздно возникает задача оповестить сотрудников о важных событиях: изменении графиков, новых задачах, ошибках в документах или плановых работах. Но как правильно организовать отправку сообщений, чтобы они дошли до адресатов, не потерялись в потоке уведомлений и не нарушили права доступа?

Эта статья покрывает все актуальные способы отправки сообщений в 1С 8.3 — от встроенных механизмов платформы до кастомизированных решений с использованием кода. Мы разберём:

  • 📢 Системные уведомления — как настроить автоматические оповещения о событиях в базе
  • 👥 Персональные сообщения — отправка конкретным пользователям или группам
  • 📧 Email-рассылки — интеграция с почтовыми клиентами напрямую из 1С
  • 🤖 Автоматизация через регламентные задания — как запланировать отправку на будущее
  • 🛠️ Кастомизация через код — примеры скриптов для гибких сценариев

Особое внимание уделим правам доступа — без правильной настройки роли пользователи просто не увидят ваши сообщения, даже если они технически отправлены. А в конце статьи вы найдёте FAQ с ответами на типичные ошибки и нюансы работы с разными версиями платформы.

📊 Какой способ оповещений вы используете чаще всего?
Системные уведомления 1С
Email-рассылки
Сообщения в чате (Telegram/Slack)
Регламентные задания
Другой

1. Системные уведомления 1С: как работают встроенные механизмы

Платформа 1С:Предприятие 8.3 имеет встроенный механизм уведомлений, который срабатывает при определённых событиях: создание документа, изменение статуса, ошибки обработки и т.д. Эти сообщения появляются в правом нижнем углу интерфейса пользователя и не требуют дополнительной настройки почты или внешних сервисов.

Чтобы включить системные уведомления:

  1. Откройте Администрирование → Настройки пользователей и прав → Уведомления.
  2. Установите флажки для событий, о которых нужно оповещать (например, Новый документ "Заявка на отпуск").
  3. Нажмите Сохранить и закрыть.

Важно: системные уведомления видны только тем пользователям, у которых есть права на просмотр объекта, вызвавшего событие. Например, если менеджер создаёт заказ, а бухгалтер не имеет доступа к разделу "Продажи", он не увидит оповещение о новом заказе.

💡

Чтобы проверить, доходят ли уведомления до пользователя, временно назначьте ему роль "Администратор" и выполните тестовое действие (например, создайте тестовый документ).

Тип события Пример уведомления Кому отправляется
Создание документа "Создан новый заказ №123 от клиента ООО 'Ромашка'" Пользователи с правом просмотра заказов
Изменение статуса "Заявка на отпуск Иванова И.И. одобрена" Автор заявки и утверждающие лица
Ошибка обработки "Не удалось провести документ 'Поступление товаров №456': недостаточно места на складе" Пользователь, инициировавший действие
⚠️ Внимание: В 1С:Управление торговлей 11 и 1С:ERP 2 логика уведомлений может отличаться от стандартной конфигурации. Например, в ERP уведомления о задачах привязаны к модулю "Управление взаимоотношениями с клиентами" (CRM) и требуют отдельной настройки.

2. Персональные сообщения: как отправить конкретному пользователю

Если нужно отправить сообщение одному или нескольким конкретным пользователям (например, напоминание о дедлайне или просьбу проверить данные), используйте механизм Пользовательские сообщения. Он доступен в большинстве типовых конфигураций, включая 1С:Бухгалтерию 3.0 и 1С:Зарплата и управление персоналом 3.1.

Инструкция по отправке:

  1. Перейдите в Администрирование → Обмен данными и отчёты → Пользовательские сообщения.
  2. Нажмите Создать и выберите получателя из справочника пользователей.
  3. В поле Текст сообщения введите текст (можно использовать HTML-разметку для форматирования).
  4. Укажите срок действия сообщения (по умолчанию — 7 дней).
  5. Сохраните и отправьте.

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

Пользователь активен в справочнике|У пользователя есть роль для просмотра сообщений|Текст не содержит конфиденциальных данных|Указан корректный срок действия-->

3. Email-рассылки из 1С: настройка и отправка

Для оповещений, которые должны дойти до пользователя вне 1С (например, на корпоративную или личную почту), используйте встроенный механизм email-рассылок. Это актуально для:

  • 📩 Отправки отчётов по расписанию (например, ежедневная выручка)
  • 🔔 Уведомлений о критичных событиях (ошибки интеграции, превышение лимитов)
  • 📅 Напоминаний о мероприятиях (совещания, обучение)

Чтобы настроить отправку email:

  1. Перейдите в Администрирование → Организации и настройки → Настройки почты.
  2. Добавьте почтовый профиль (укажите SMTP-сервер, порт, логин/пароль). Для Yandex или Mail.ru может потребоваться включить разрешение для "ненадёжных приложений".
  3. В модуле, где нужно отправить письмо, используйте код:
    Почта = Новый Почта;
    

    Почта.АдресОтправителя = "noreply@вашакомпания.ru";

    Почта.ТекстПисьма = "Уважаемый пользователь, ...";

    Почта.Отправить("user@example.com", "Тема письма");

Для массовых рассылок (например, всем менеджерам отдела) удобно использовать групповые обработки. В типовых конфигурациях есть готовые отчёты, например, Рассылка писем контрагентам в 1С:УТ 11.

⚠️ Внимание: При отправке писем с вложениями (например, PDF-отчётов) проверьте ограничения вашего SMTP-сервера. Некоторые провайдеры блокируют письма размером более 10 МБ или с определёнными типами файлов (например, .exe).

4. Регламентные задания: автоматизация отправки сообщений

Если сообщения нужно отправлять регулярно (например, каждый понедельник в 9:00 или в последний день месяца), используйте Регламентные задания. Этот механизм позволяет запланировать выполнение кода по расписанию без участия пользователя.

Пример настройки регламентного задания для отправки напоминания о дедлайне:

  1. Откройте Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте новое задание с типом Выполнение кода.
  3. В поле Расписание укажите частоту (например, Ежедневно в 14:00).
  4. В поле Код вставьте скрипт:
    // Получаем список пользователей, которым нужно отправить напоминание
    

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ Пользователи.Ссылка КАК Пользователь

    ИЗ Справочник.Пользователи КАК Пользователи

    ГДЕ Пользователи.Подразделение = &Подразделение";

    Запрос.УстановитьПараметр("Подразделение", Справочники.Подразделения.НайтиПоНаименованию("Отдел продаж"));

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    Пока Выборка.Следующий() Цикл

    Сообщение = Новый СообщениеПользователю;

    Сообщение.Пользователь = Выборка.Пользователь;

    Сообщение.Текст = "Напоминаем, что сегодня последний день для сдачи отчётов по продажам!";

    Сообщение.Отправить();

    КонецЦикла;

  5. Сохраните и запустите задание.

Регламентные задания выполняются на сервере 1С, поэтому пользователям не нужно быть онлайн. Однако для работы механизма требуется, чтобы агент сервера 1С был запущен (в кластерных установках — на рабочем сервере).

Что делать, если регламентное задание не срабатывает?

Проверьте:

1. Статус агента сервера 1С (должен быть "Активен").

2. Права пользователя, от имени которого выполняется задание (должны включать роль "Администрирование").

3. Логи сервера на наличие ошибок (через Администрирование → Журнал регистрации).

4. Настройки расписания — возможно, указано неверное время или временная зона.

5. Продвинутые сценарии: отправка сообщений через код

Для нестандартных задач (например, отправка сообщений при выполнении определённых условий или интеграция с внешними системами) потребуется написать собственный код. Рассмотрим несколько практических примеров.

Пример 1: Оповещение при превышении кредитного лимита

Допустим, нужно уведомлять менеджера, если клиент превысил кредитный лимит. Код для обработчика события ПередЗаписью в документе "Реализация товаров":

Процедура ПередЗаписью(Отказ, РежимЗаписи)

Если Клиент.КредитныйЛимит < СуммаДокумента Тогда

ТекстСообщения = СтрШаблон("Клиент %1 превысил кредитный лимит на %2 руб.",

Клиент.Наименование,

СуммаДокумента - Клиент.КредитныйЛимит);

Сообщение = Новый СообщениеПользователю;

Сообщение.Пользователь = Пользователи.НайтиПоИмени("Иванов"); // Менеджер

Сообщение.Текст = ТекстСообщения;

Сообщение.Отправить();

// Альтернативно: отправить email

Почта = Новый Почта;

Почта.Отправить("ivanov@company.ru", "Превышение кредитного лимита", ТекстСообщения);

КонецЕсли;

КонецПроцедуры

Пример 2: Массовая рассылка по условию

Чтобы отправить сообщение всем пользователям, у которых есть непроводённые документы:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ Документы.Автор КАК Пользователь

ИЗ Документ.РеализацияТоваровУслуг КАК Документы

ГДЕ Документы.Проводён = ЛОЖЬ

И Документы.Дата >= НачалоДня(ТекущаяДата())";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Пользователь = Выборка.Пользователь.ПолучитьОбъект();

Сообщение = Новый СообщениеПользователю;

Сообщение.Пользователь = Пользователь;

Сообщение.Текст = "У вас есть непроводённые документы за сегодня! Проверьте раздел 'Продажи'.";

Сообщение.Отправить();

КонецЦикла;

Для работы с кодом потребуются права на изменение конфигурации или использование внешних обработок. Если вы не уверены в своих навыках программирования, тестируйте скрипты на копии базы.

1. Права доступа (используйте ПроверкаПравДоступа()).

2. Обработку ошибок (оборачивайте отправку в Попытка...Исключение).

3. Логирование (записывайте события в ЖурналРегистрации для отладки).-->

6. Интеграция с внешними системами: Telegram, Slack, SMS

Если ваша команда активно использует Telegram, Slack или другие мессенджеры, можно настроить отправку уведомлений напрямую в чаты. Для этого потребуется:

  1. Создать бота в мессенджере (например, через @BotFather в Telegram).
  2. Получить API-токен и ID чата.
  3. Использовать HTTP-запросы из 1С для отправки сообщений.

Пример кода для отправки сообщения в Telegram:

Функция ОтправитьВTelegram(Текст, Токен, ChatID)

URL = "https://api.telegram.org/bot" + Токен + "/sendMessage?chat_id=" + ChatID + "&text=" + Текст;

HTTPСоединение = Новый HTTPСоединение(URL);

HTTPЗапрос = Новый HTTPЗапрос();

Ответ = HTTPСоединение.Получить(HTTPЗапрос);

Возврат Ответ.КодСостояния = 200;

КонецФункции

// Использование:

Токен = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"; // Замените на свой токен

ChatID = "-100123456789"; // ID группы или чата

ОтправитьВTelegram("Внимание! В базе 1С обнаружены ошибки проводки.", Токен, ChatID);

Аналогично можно интегрироваться с Slack (через Incoming Webhooks) или SMS-шлюзами (например, SMS.RU, TurboSMS). Главное — убедиться, что:

  • 🔒 Токены и ключи API хранятся в Константах или Справочниках, а не в коде.
  • 📡 Есть резервный канал оповещений (например, если Telegram заблокирован, отправляйте SMS).
  • 📝 Ведётся журнал отправленных сообщений для отчётности.
⚠️ Внимание: При использовании внешних API учитывайте ограничения на количество запросов (например, в бесплатном тарифе Telegram бот может отправлять не более 30 сообщений в секунду). Для массовых рассылок используйте пакетную отправку или задержите запросы с помощью Подождать().

7. Права доступа: почему пользователи не видят ваши сообщения

Одна из самых распространённых проблем при отправке сообщений в 1С — пользователи их не получают, хотя технически рассылка прошла успешно. В 90% случаев причина кроется в неправильно настроенных правах.

Что проверять:

  1. Роли пользователя: Убедитесь, что у получателя есть роль, позволяющая просматривать сообщения (например, Пользователь с полными правами или кастомизированная роль с правом Чтение сообщений).
  2. Настройки уведомлений: В некоторых конфигурациях (например, 1С:Документооборот) уведомления привязаны к бизнес-процессам. Проверьте, включены ли они для пользователя.
  3. Фильтры: В списке сообщений может быть установлен фильтр по дате или типу, из-за которого новые уведомления не отображаются.
  4. Личные настройки: Пользователь мог отключить всплывающие уведомления в своём профиле (проверьте Настройки → Личные → Уведомления).

Чтобы диагностировать проблему:

  1. Зайдите в систему под учётной записью пользователя, который не получает сообщения.
  2. Попробуйте отправить тестовое уведомление самому себе.
  3. Проверьте Журнал регистрации на наличие ошибок при отправке.
💡

Если сообщение отправлено, но не дошло до пользователя, сначала проверьте права на Справочник.ПользовательскиеСообщения. Часто администраторы забывают дать доступ к этому объекту метаданных.

8. Типичные ошибки и как их избежать

Даже опытные администраторы 1С сталкиваются с проблемами при настройке оповещений. Вот самые распространённые ошибки и способы их решения:

Ошибка Причина Решение
Сообщения не отправляются Не запущен агент сервера 1С Проверьте статус кластера в Администрирование → Кластеры серверов 1С
Письма уходят в спам Не настроена SPF/DKIM для домена Настройте записи в DNS или используйте корпоративный SMTP с авторизацией
Всплывающие уведомления не показываются Отключены в настройках браузера Добавьте адрес 1С в исключения блокировщика всплывающих окон
Ошибка "Нет прав на отправку" Недостаточные права у пользователя, от имени которого отправляется сообщение Назначьте роль Администратор или создайте кастомизированную роль

Если вы используете облачную версию 1С (например, 1С:Fresh), учитывайте её ограничения:

  • 🚫 Нет доступа к регламентным заданиям (заменяются "фоновыми задачами").
  • 🔄 Ограничен функционал для работы с файловой системой (вложения в письма только через временные файлы).
  • 📧 Почта отправляется через встроенный SMTP-сервис 1С, настройки которого нельзя изменить.

Для облачных решений рекомендуем использовать внешние обработки с интеграцией через API или настраивать оповещения через 1С:Директ (если доступен в вашем тарифе).

FAQ: Ответы на частые вопросы

Можно ли отправить сообщение пользователю, который не в сети?

Да. Системные уведомления и пользовательские сообщения сохраняются в базе и будут показаны при следующем входе. Email и внешние уведомления (Telegram/SMS) отправляются сразу, независимо от статуса пользователя в 1С.

Как отправить сообщение с вложением (например, отчёт в Excel)?

Для email-рассылок используйте метод Почта.Вложения.Добавить():

Почта = Новый Почта;

Почта.Вложения.Добавить("C:\Отчёты\Выручка.xlsx");

Почта.Отправить("user@example.com", "Отчёт по выручке", "Во вложении отчёт за текущий месяц.");

Для системных уведомлений вложения не поддерживаются — прикрепите файл к документу и дайте на него ссылку в тексте сообщения.

Почему в журнале регистрации видно, что сообщение отправлено, но пользователь его не получил?

Вероятные причины:

  1. Пользователь не имеет прав на просмотр сообщений (проверьте роль Чтение пользовательских сообщений).
  2. Сообщение отправлено от имени пользователя, у которого нет прав на создание уведомлений.
  3. В личных настройках пользователя отключены уведомления (проверьте Настройки → Личные → Уведомления).
  4. Если это email — письмо могло попасть в спам или быть заблокированным корпоративным почтовым фильтром.

Как отправить сообщение всем пользователям определенного подразделения?

Используйте запрос для выборки пользователей по подразделению, затем отправляйте сообщения в цикле:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ Пользователи.Ссылка КАК Пользователь

ИЗ Справочник.Пользователи КАК Пользователи

ГДЕ Пользователи.Подразделение = &Подразделение";

Запрос.УстановитьПараметр("Подразделение", Справочники.Подразделения.НайтиПоНаименованию("Бухгалтерия"));

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Сообщение = Новый СообщениеПользователю;

Сообщение.Пользователь = Выборка.Пользователь;

Сообщение.Текст = "Уважаемые коллеги из бухгалтерии, завтра плановая остановка сервера 1С с 20:00 до 22:00.";

Сообщение.Отправить();

КонецЦикла;

Можно ли отложить отправку сообщения на определённое время?

Да, для этого используйте Регламентные задания (см. раздел 4) или внешние сервисы (например, отправляйте данные в Telegram-бота с задержкой через sleep() в коде бота). В самой 1С нет механизма "отложенной отправки" для пользовательских сообщений.