Отправка электронных писем напрямую из 1С — это базовый сценарий автоматизации, который активно используется в большинстве торговых и сервисных компаний. Однако на практике администраторы и программисты часто сталкиваются со странным поведением системы: у одного пользователя (например, администратора) письмо по шаблону улетает за 1 секунду, а у другого (например, нового менеджера по продажам) та же самая операция на том же компьютере и под той же почтовой учетной записью занимает от 15 до 30 секунд. Особенно сильно эта задержка проявляется при работе через веб-клиент в браузере.
В этой статье мы подробно разберем, с чем связано такое поведение платформы 1С:Предприятие 8.3 и конфигураций на базе Библиотеки стандартных подсистем (БСП), таких как «Управление торговлей 11», «ERP» или «Комплексная автоматизация». Мы проанализируем неочевидные системные факторы — от расчета ключей доступа RLS до нюансов работы с почтовыми серверами и временными каталогами операционной системы.
Прежде чем менять программный код или настройки прав, нам необходимо точно выяснить, на каком этапе происходит задержка. Для этого мы рекомендуем использовать встроенный инструмент платформы — Замер производительности в Конфигураторе.
Выполним следующие шаги для диагностики:
В полученной таблице замера проанализируем колонки «Время» и «% времени». Обратите особое внимание на следующие системные вызовы и функции:
УправлениеДоступомБСП, ПраваДоступаСлужебный), то проблема гарантированно кроется в механизме RLS (ограничение прав на уровне записей).Подключиться() или Отправить() интернет-почтового профиля, то дело в сетевых настройках, авторизации или таймаутах почтового сервера.ПолучитьИмяВременногоФайла, Записать()), то стоит проверить дисковую подсистему и антивирусное ПО.В современных конфигурациях 1С, использующих БСП, права доступа на уровне записей (RLS) рассчитываются в так называемом «производительном режиме». Вместо динамического наложения сложных условий на каждый SQL-запрос система использует предварительно рассчитанные ключи доступа, которые хранятся в специальных регистрах сведений:
РегистрСведений.ОбновлениеКлючейДоступаКДаннымРегистрСведений.ОбновлениеКлючейДоступаПользователейПочему система зависает у новых пользователей? При первом входе в систему нового сотрудника (или при изменении его ролей) для него еще не сформированы готовые ключи доступа в базе данных. Когда такой пользователь пытается выполнить операцию, связанную с записью объектов (создание документа взаимодействия, отправка письма, запись присоединенного файла), платформа начинает генерировать эти ключи динамически в режиме реального времени. Этот процесс выполняется синхронно, блокируя интерфейс программы на 15–30 секунд.
У старых пользователей этот расчет уже завершен ранее, поэтому у них отправка происходит мгновенно.
Как решить проблему с RLS по шагам:
При формировании писем по шаблонам система часто обращается к общим модулям БСП, отвечающим за работу с файлами и внешними ресурсами (например, модуль ПолучениеФайловИзИнтернетаСлужебный). В этот момент платформа может пытаться выполнить HTTP-запрос к серверам обновлений 1С (например, к домену downloads.v8.1c.ru) для проверки актуальности схем метаданных или классификаторов.
Если у нового пользователя на уровне операционной системы Windows, брандмауэра или корпоративного прокси-сервера закрыт доступ во внешнюю сеть для процесса 1cv8.exe, то этот запрос будет «висеть» до истечения таймаута TCP-соединения (обычно это занимает от 15 до 21 секунды). Только после этого система выдаст ошибку таймаута во внутренний лог и продолжит работу, используя локально закешированные данные.
Решение проблемы:
Если вы используете публичные почтовые сервисы (Yandex, Mail.ru, Gmail), необходимо учитывать их жесткую политику безопасности в отношении внешних приложений. Использование стандартного пароля от почтового ящика в настройках учетной записи 1С часто приводит к искусственным задержкам (так называемый метод Tarpitting, когда почтовый сервер намеренно замедляет ответы подозрительным клиентам).
Рассмотрим правильный алгоритм настройки системной учетной записи:
smtp.yandex.ru465Проанализируем пример кода для программной отправки сообщения напрямую через API, минуя механизмы отложенной отправки:
// Создание профиля подключения к почтовому серверу
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьЗащищенноеСоединениеSMTP = Истина;
Профиль.ПользовательSMTP = "sales@company.ru";
Профиль.ПарольSMTP = "abcd-efgh-ijkl-mnop"; // Пароль приложения
// Формирование письма
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Отправитель.Адрес = "sales@company.ru";
Письмо.Тема = "Заказ клиента";
Письмо.Получатели.Добавить("client@email.com");
Текст = Письмо.Тексты.Добавить();
Текст.Текст = "Добрый день! Во вложении ваш заказ.";
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
// Непосредственная отправка
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль);
Почта.Отправить(Письмо);
Почта.Отключиться();
Сообщить("Письмо успешно отправлено напрямую!");
Исключение
ЗаписьЖурналаРегистрации("ОтправкаПочты", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
Почта.Отключиться();
КонецПопытки;
При отправке печатных форм документов (например, счета на оплату или расходной накладной в формате PDF/Excel) 1С сначала выполняет конвертацию табличного документа во временный файл на локальном диске компьютера в папке пользователя %TEMP%.
У новых пользователей операционной системы этот каталог может быть пустым или только что созданным. Местный антивирус (например, Windows Defender или Kaspersky) при первом обращении процесса 1cv8.exe к вновь создаваемым файлам во временной папке нового пользователя запускает процедуру глубокого сканирования файловых потоков в реальном времени. Это блокирует чтение файла платформой 1С, приводя к существенному подвисанию интерфейса.
Как исправить ситуацию:
C:\Users\*\AppData\Local\Temp\) в список исключений локального антивирусного сканера.1cv8.exe, 1cv8c.exe) в список доверенных приложений антивируса с отключением проверки сетевого трафика и файловой активности.В конфигурациях «Управление торговлей», «ERP» и «Комплексная автоматизация» предусмотрен встроенный механизм фоновой отправки писем. При нажатии кнопки «Отправить» письмо физически не уходит сразу во внешнюю сеть, а записывается в специальную очередь (документ «Электронное письмо исходящее» в статусе «К отправке»). Отправку осуществляет регламентное задание по расписанию.
Убедимся, что у пользователя, у которого письмо уходит «за 1 секунду», не настроена автоматическая мгновенная отправка в обход очереди. Проверим настройки: