В типовой конфигурации 1С:Зарплата и управление персоналом 3.х (ЗУП) встроен мощный механизм рассылки отчетов, который часто используется для отправки расчетных листков сотрудникам. Однако на практике крупные компании сталкиваются со специфической задачей: необходимо отправлять расчетные листки не лично каждому работнику, а руководителям подразделений или ответственным лицам (например, мастерам участков или администраторам филиалов). При этом важно, чтобы ответственный менеджер получал не десятки или сотни отдельных писем, а одно письмо с прикрепленными PDF-файлами расчетных листков всех сотрудников его подразделения.
При попытке настроить такую рассылку стандартными средствами конфигурации пользователи сталкиваются с жестким ограничением системы и ошибкой: "В настройках отчета 'Расчетный листок' не указан отбор по получателю рассылки" или "Отчет запрещено рассылать без отбора по физическому лицу". В этой статье мы подробно разберем, почему возникает это ограничение, как его технически обойти, а также рассмотрим важные юридические нюансы групповой рассылки конфиденциальных данных.
Разработчики фирмы 1С намеренно внедрили механизм защиты персональных данных в логику работы системы. Информация о заработной плате, начислениях и удержаниях относится к конфиденциальным сведениям. Чтобы исключить случайную отправку расчетного листка одного сотрудника другому, в общем модуле конфигурации прописана обязательная проверка на персонализацию отчета.
Проанализируем ситуацию на уровне кода. Проверка срабатывает в общем модуле ЗарплатаКадрыОтчеты в процедуре контроля параметров рассылки. Система анализирует настройки компоновки данных и, если имя отчета соответствует расчетному листку, требует обязательного наличия жесткого отбора по конкретному Физическому лицу (или Сотруднику), который должен совпадать с получателем рассылки. Если такого отбора нет — рассылка блокируется.
Если ваша база данных находится не на полной поддержке (допускает изменения) или вы используете механизм расширений, ограничение можно обойти. Для этого нам понадобится скорректировать проверку в общем модуле.
Разберем по шагам, где именно находится этот фрагмент кода и как его изменить. Нам нужен общий модуль ЗарплатаКадрыОтчеты, процедура проверки персонализации. В типовом коде этот блок выглядит следующим образом:
Если ТребоватьПерсонализацииОтчетаПриРассылке(ИнформацияОВарианте.ИмяОтчета, КлючВарианта(НастройкиКД))
И Не ОтчетПерсонализирован(НастройкиКД) Тогда
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Отчет ""%1"" запрещено рассылать без отбора по физическому лицу'"),
Строка(ИнформацияОВарианте.Вариант));
КонецЕсли;
Чтобы отключить блокировку и разрешить программе формировать неперсонифицированные рассылки расчетных листков, мы можем закомментировать строку присвоения ошибки или заменить жесткую ошибку на предупреждение в журнале регистрации. Рассмотрим пример комментирования кода:
Если ТребоватьПерсонализацииОтчетаПриРассылке(ИнформацияОВарианте.ИмяОтчета, КлючВарианта(НастройкиКД))
И Не ОтчетПерсонализирован(НастройкиКД) Тогда
// Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
// НСтр("ru = 'Отчет ""%1"" запрещено рассылать без отбора по физическому лицу'"),
// Строка(ИнформацияОВарианте.Вариант));
// Вместо блокировки выводим предупреждение в окно сообщений или журнал регистрации:
Сообщить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Внимание! Отчет ""%1"" рассылается без проверки отбора по физическому лицу!'"),
Строка(ИнформацияОВарианте.Вариант)));
КонецЕсли;
Важно: Прямое редактирование типовой конфигурации усложнит процесс последующих обновлений программы. Настоятельно рекомендуется реализовать данное изменение через расширение конфигурации. Для этого создайте новое расширение, добавьте в него общий модуль ЗарплатаКадрыОтчеты и переопределите соответствующий метод с помощью аннотации &Вместо или воспользуйтесь директивой &ИзменениеИКонтроль.
После того как ограничение в коде успешно отключено (или обойдено с помощью расширения), мы можем перейти к настройке самой рассылки непосредственно в пользовательском интерфейсе 1С:ЗУП. Нам потребуется настроить отправку отчета конкретным пользователям.
Выполним настройку по шагам:
Пользователи (или Физические лица в зависимости от настроек), и у них в карточке обязательно должен быть заполнен корректный адрес электронной почты.Adobe PDF (.pdf)). Система автоматически сформирует отчет по выбранным сотрудникам и прикрепит его к письму.Благодаря такой настройке ответственное лицо получит ровно одно письмо, содержащее сформированный общий отчет или отдельные файлы по выбранным сотрудникам, в зависимости от выбранного режима компоновки в настройках рассылки.
Решая техническую задачу по автоматизации работы бухгалтерии, ни в коем случае нельзя забывать о правовой стороне вопроса. Передача расчетных листков третьим лицам (даже если это руководители подразделений) по незащищенным каналам связи несет в себе огромные юридические риски для бизнеса.
Проанализируем ключевые правовые требования законодательства РФ:
Если вашей целью является полный уход от бумажных расчетных листков без нарушения требований законодательства и без необходимости доработки программы, рассмотрите внедрение специализированного сервиса "1С:Кабинет сотрудника".
Этот сервис решает задачу бесконтактной доставки документов максимально безопасно:
Таким образом, использование официального сервиса позволяет избежать технических "костылей" в коде 1С, существенно экономит время расчетчика и полностью защищает компанию от штрафных санкций проверяющих органов.