Массовая рассылка расчетных листков по электронной почте напрямую из программы 1С:Зарплата и Управление Персоналом 3.1 — крайне удобный инструмент, позволяющий существенно сэкономить время бухгалтера. Однако на практике пользователи часто сталкиваются с неприятным симптомом: программа выполняет рассылку, письма доходят до адресатов, но у значительной части сотрудников (иногда до половины списка) внутри писем отсутствует сам расчетный листок (вложение в формате PDF или ZIP). При этом повторная точечная отправка по тем же адресатам проходит успешно.
Давайте подробно разберем, почему возникает эта проблема, какие скрытые механизмы платформы 1С:Предприятие 8.3 и почтовых серверов задействованы в этом процессе, и как настроить систему для стабильной работы.
---
Проанализируем техническую сторону процесса массовой генерации писем. При запуске рассылки на 400 и более сотрудников сервер 1С работает в высокоинтенсивном многопоточном режиме. Процесс происходит по следующему алгоритму:
AppData\Local\Temp пользователя, от имени которого запущен серверный процесс 1С) генерируется файл расчетного листка.В чем заключается сбой: Из-за колоссальной скорости выполнения этих операций операционная система (особенно на серверах под управлением Windows с медленными жесткими дисками HDD) не успевает снять блокировку совместного доступа (file lock) с только что созданного файла в папке Temp. Платформа пытается прикрепить заблокированный файл к письму, получает отказ от ОС, но из-за наличия в коде конфигурации защитных блоков Попытка — Исключение не прерывает процесс аварийно, а просто отправляет «пустое» письмо без вложения. При этом в Журнале регистрации ошибок может не зафиксироваться.
Как решить проблему с временными файлами:
1С на быстрый твердотельный накопитель (SSD/NVMe).Temp службы 1С в режиме реального времени. Постоянное сканирование антивирусом — главная причина удержания файловых замков.Temp.---
Рассмотрим ситуацию со стороны почтовых служб. Если вы используете для рассылки публичные или полукорпоративные почтовые сервисы (такие как Яндекс.Почта, Mail.ru, Gmail), то отправка сотен писем с вложениями за короткий промежуток времени гарантированно расценивается спам-фильтрами как подозрительная активность.
Почтовые серверы применяют алгоритмы ограничения частоты запросов (Rate Limiting). При превышении лимита сервер не всегда полностью блокирует учетную запись — он может «срезать» MIME-части входящего потока писем (то есть удалять вложения) или временно возвращать ошибку сопряжения, из-за которой 1С пропускает шаг добавления файла.
Рекомендации по настройке почтового домена:
---
В оригинальном сообщении на форуме звучит важный вопрос: «А в ЗУП есть настройка паузы? Где её найти?»
Выясним этот момент. В типовой конфигурации 1С:ЗУП 3.1, использующей Библиотеку стандартных подсистем (БСП), нет стандартной настройки для регулирования паузы или ограничения скорости отправки писем. Система всегда отправляет пакет писем с максимально возможной скоростью.
Чтобы обойти это ограничение и не провоцировать спам-фильтры почтовых систем, мы можем пойти двумя путями:
Путь А. Организационный (дробление рассылки на порции)
Вместо того чтобы отправлять расчетные листки сразу всему штату (например, 400 или 1000 человек), разделите сотрудников на группы. Это можно сделать, настроив рассылку по конкретным подразделениям или филиалам. Отправляйте каждую группу поочередно с интервалом в 10–15 минут. Это существенно снизит пиковую нагрузку как на ваш сервер 1С, так и на принимающий почтовый сервер.
Путь Б. Программный (внедрение искусственной паузы через расширение)
Программист 1С может создать небольшое расширение конфигурации, которое будет перехватывать процедуру отправки писем в общем модуле работы с электронной почтой и принудительно вызывать задержку. Посмотрим на пример кода, реализующего такую паузу:
&Вместо("ОтправитьПочтовоеСообщение")
Процедура Ист_ОтправитьПочтовоеСообщение(ПараметрыОтправки, РезультатОтправки)
// Вызываем оригинальный метод отправки письма
ПродолжитьВызов(ПараметрыОтправки, РезультатОтправки);
// Реализуем задержку в 5 секунд после отправки каждого письма
ВремяОжидания = ТекущаяДата() + 5;
Пока ТекущаяДата() < ВремяОжидания Цикл
// Пустой цикл ожидания (для клиент-серверного варианта)
КонецЦикла;
КонецПроцедуры
Применение такой доработки гарантирует, что почтовый сервер не заблокирует сессию из-за слишком частых запросов.
---
Если серверное приложение 1С:Предприятие функционирует под управлением ОС Linux, то проблема с «пустыми» вложениями или файлами нулевого размера может крыться в механизме рендеринга табличных документов.
При конвертации расчетного листка в формат PDF платформа обращается к системным шрифтам. Если на Linux-сервере не установлен пакет стандартных шрифтов Microsoft (таких как Arial, Times New Roman), движок генерации PDF выдает сбой. В результате формируется поврежденный или абсолютно пустой файл, который прикрепляется к письму.
Как решить проблему со шрифтами на Linux:
Необходимо установить пакет шрифтов TrueType. Для дистрибутивов Ubuntu/Debian выполните в терминале сервера команду:
sudo apt-get install ttf-mscorefonts-installer
После установки обязательно перезапустите службу сервера 1С:Предприятие, чтобы изменения вступили в силу.
---
Иногда почтовые клиенты на стороне получателя (особенно мобильные приложения) некорректно обрабатывают кириллические имена прикрепленных файлов. Вложение может отображаться как поврежденное или исчезать вовсе.
Как настроить рассылку в 1С:ЗУП 3.1 правильно:
---
Рассматривая проблему безопасности и стабильности, нельзя не упомянуть позицию самой фирмы 1С. Отправка расчетных листков по открытым каналам электронной почты (e-mail) напрямую нарушает требования Федерального закона № 152-ФЗ «О персональных данных», так как эти каналы не зашифрованы, и информация о доходах сотрудников может быть перехвачена.
Для решения этой проблемы и полного избавления от капризов почтовых серверов мы рекомендуем рассмотреть внедрение сервиса 1С:Кабинет сотрудника. При этом подходе:
1С.Подведем итог: для устранения проблемы пропадающих вложений при массовой рассылке начните с настройки транслитерации и ZIP-архивации, оптимизируйте размер порций отправки (дробление по 50-100 человек) и проверьте настройки прав доступа и антивируса к временным каталогам вашего сервера.