Почему не работает стандартная рассылка расчетных листков в 1С:ЗУП и как решить эту проблему?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно разберем, почему стандартный механизм отправки расчетных листков может давать сбои, проанализируем технические причины ошибок и рассмотрим эффективные практические способы их устранения — от программной доработки кода до тонкой настройки почтовой инфраструктуры.

Основные причины сбоев при отправке расчетных листков

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

  1. Ограничения почтовых серверов (лимиты на спам). Публичные и даже многие корпоративные SMTP-серверы имеют жесткие лимиты на количество отправляемых писем в секунду, минуту или сутки. При превышении порога сервер временно блокирует отправителя или обрывает соединение.
  2. Падение рабочего процесса сервера 1С. Формирование сотен тяжелых файлов (обычно в формате PDF) требует значительных ресурсов оперативной памяти. Если лимиты памяти в кластере 1С настроены слишком строго, процесс rphost завершается аварийно, прерывая рассылку.
  3. Проблемы авторизации и безопасности. Современные почтовые сервисы (Yandex, Mail.ru, Gmail) давно отказались от авторизации по стандартным паролям от учетных записей для внешних приложений, что требует генерации специальных токенов.

Давайте по шагам разберем каждое решение, которое поможет сделать отправку стабильной и безотказной.

Решение 1. Обход лимитов почтового сервера с помощью программной паузы

Если ваши администраторы не могут изменить настройки лимитов на почтовом сервере (например, почта компании размещена на публичном сервисе типа Яндекс или Mail.ru), самым надежным способом предотвратить блокировки является принудительное замедление процесса отправки. Без добавления паузы 1С пытается отправить сотни писем практически мгновенно, из-за чего почтовый сервер мгновенно распознает активность как спам-атаку.

Для реализации задержки между отправками писем можно внести небольшое изменение в код общего модуля, отвечающего за рассылку. Посмотрим на пример реализации паузы в серверном коде с использованием системной утилиты операционной системы через COM-объект WScript.Shell:


// Пример реализации задержки отправки писем в цикле
Задержка = 6; // Интервал в секундах (например, для обеспечения отправки не более 10 писем в минуту)
СтрокаЗапроса = "ping -n 1 -w " + Формат(1000 * Задержка, "ЧГ=0") + " 127.255.255.255"; 

WshShell = Новый COMОбъект("WScript.Shell"); 
WshShell.Run(СтрокаЗапроса, 0, -1); // Метод выполняет команду ping с ожиданием завершения процесса (-1)

Важное замечание: Использование команды ping для организации задержки является классическим и наиболее щадящим приемом для производительности сервера. В отличие от пустых циклов вида Пока... КонецЦикла, данный метод не загружает процессор (CPU) сервера 1С на 100%, так как управление выполнением на время задержки передается операционной системе.

Если вы хотите избежать использования внешних COM-объектов (что особенно актуально при работе сервера 1С под управлением операционной системы Linux), в современных версиях платформы 1С v8.3 можно использовать более элегантный платформенный механизм ожидания, запустив фоновое задание с паузой, либо воспользоваться встроенным методом:


// Безопасная пауза на стороне сервера без использования COM-объектов
Систему.ПрерватьРаботу(Ложь); // Если применимо в контексте, но чаще используется создание кратковременного фонового задания

Проанализируем ситуацию: внедрение задержки в 5–6 секунд между отправками позволит распределить нагрузку. Например, база из 500 сотрудников будет обработана и отправлена примерно за 40-50 минут в фоновом режиме ночью, абсолютно не мешая пользователям и не вызывая подозрений у спам-фильтров почтовика.

Решение 2. Настройка лимитов на стороне почтового сервера

Если ваша компания использует собственный локальный почтовый сервер (например, Microsoft Exchange, CommuniGate Pro или Postfix), программное изменение кода 1С является избыточным. Правильным подходом будет тонкая настройка самого почтового релея.

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

Попросите системного администратора выполнить следующие действия:

После проведения этих настроек письма будут отправляться мгновенно без необходимости внедрения искусственных задержек в код программы.

Решение 3. Тонкая настройка авторизации (Пароли приложений)

Очень часто рассылка расчетных листков перестает работать из-за ошибок авторизации (например, «Неверный логин или пароль» или «SMTP AUTH failed»), хотя сам пароль введен верно. Это происходит потому, что крупные почтовые провайдеры заблокировали доступ по стандартным паролям для защиты учетных записей.

Разберем по шагам, как это исправить:

  1. Войдите в личный кабинет почтового ящика, с которого осуществляется рассылка (например, на Яндексе), через веб-браузер.
  2. Перейдите в раздел Безопасность или Настройки доступа.
  3. Найдите пункт "Пароли приложений" (или "Доступ внешних программ по SMTP").
  4. Создайте новый пароль, выберите тип приложения "Почта" и укажите понятное имя (например, "1С:ЗУП Рассылка").
  5. Скопируйте сгенерированный системой уникальный 16-значный код.
  6. Откройте 1С:ЗУП, перейдите в настройки системной учетной записи почты и вставьте этот скопированный код в поле "Пароль" вместо вашего стандартного пароля.

Решение 4. Предотвращение падения фоновых заданий 1С

В процессе массовой генерации расчетных листков пользователи нередко сталкиваются с ошибкой: «Аварийно завершился рабочий процесс фонового задания». Это происходит из-за утечки памяти или резкого скачка потребления ресурсов сервером 1С при одновременном формировании сотен файлов формата PDF.

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

Решение 5. Безопасность персональных данных и шифрование вложений

Расчетный листок содержит конфиденциальные персональные данные сотрудника (ФИО, оклады, начисления, удержания). Пересылка таких данных по открытым каналам связи в виде незащищенных PDF-файлов нарушает требования Федерального закона № 152-ФЗ «О персональных данных».

Для обеспечения безопасности в настройках рассылки расчетных листков в 1С:ЗУП обязательно активируйте функцию архивации вложений в ZIP-архив с установкой пароля. В качестве пароля рекомендуется задавать уникальные для каждого сотрудника данные, например:

Это гарантирует, что даже в случае ошибочной отправки письма на чужой почтовый ящик постороннее лицо не сможет получить доступ к конфиденциальным сведениям о заработной плате сотрудника.

Современная альтернатива: Переход на «1С:Кабинет сотрудника»

Если администрирование почтовых серверов, постоянная борьба со спам-фильтрами и доработки конфигурации отнимают слишком много времени, рассмотрите переход на современное решение от фирмы 1С — сервис «1С:Кабинет сотрудника». В качестве другого удобного бесконтактного варианта можно применить инструмент для выгрузки расчетных листков в Сбербанк Онлайн.

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

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

← На главную