Как сохранить email-адрес в 1С:ЗУП 3 для удобного выбора при отправке писем?

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

В процессе работы с программой «1С:Зарплата и управление персоналом 3» (ЗУП) пользователи часто сталкиваются с необходимостью отправки электронных писем прямо из информационной базы. Это могут быть расчетные листки, кадровые уведомления, справки или регулярные аналитические отчеты. Логично, что для удобства отправки хочется заранее сохранить определенные адреса (например, адрес бухгалтерии управляющей компании, адрес технической поддержки или почту контролирующего аутсорсера) в системе, чтобы выбирать их буквально в два клика мышкой.

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

Выясним причину: почему простая константа не работает для подбора?

Рассмотрим ситуацию глубже. Допустим, мы создали константу АдресЭлектроннойПочтыДляРассылок с типом данных Строка. Мы можем без проблем записать туда значение вида support@company.com и даже прочитать его программно. Но как только пользователь открывает стандартную форму создания электронного письма в 1С и нажимает на кнопку подбора получателей в полях «Кому», «Копия» или «Скрытая копия», система ожидает увидеть структурированный список контактов.

Механизм отправки писем и рассылки отчетов в 1С:ЗУП 3 опирается на подсистемы БСП «Взаимодействия» и «Контактная информация». Список объектов, которые система распознает как легитимных получателей писем, жестко ограничен на уровне метаданных специальными определяемыми типами (например, ПолучателиПисем, ПолучательРассылки). По умолчанию в эти типы входят только конкретные справочники:

Если мы запишем email в простую строковую константу или создадим собственный изолированный справочник, стандартная почтовая форма БСП просто не сможет «увидеть» этот адрес для интерактивного выбора. Ниже мы разберем четыре практических варианта решения этой задачи: от самых простых (без изменения конфигурации) до профессиональных (с использованием расширения).

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

Это самый быстрый и распространенный способ обхода ограничений, который не требует привлечения программиста и внесения изменений в конфигурацию. Разберем этот процесс по шагам:

  1. Перейдем в раздел «Кадры» и откроем справочник «Физические лица».
  2. Для того чтобы служебные записи не путались с реальными сотрудниками предприятия, создадим отдельную группу (папку) и назовем ее, например, _Служебные адреса для рассылок. Символ подчеркивания в начале названия позволит папке всегда находиться вверху списка.
  3. Внутри этой папки создадим новый элемент справочника. В поле «Имя» укажем понятное описание получателя, например, Отдел кадров (уведомления) или Бухгалтерия УК.
  4. В карточке физического лица найдем раздел «Адреса, телефоны» и в поле «Email» внесем требуемый адрес электронной почты.
  5. Сохраним элемент.

Почему это работает? Справочник ФизическиеЛица по умолчанию входит во все определяемые типы получателей почты в БСП. Теперь при оформлении письма или настройке рассылки отчетов пользователь сможет нажать кнопку выбора, зайти в папку служебных адресов и легко выбрать нужный контакт мышкой.

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

Способ 2. Использование групп рассылки на почтовом сервере

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

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

  1. Создать на корпоративном почтовом сервере единый почтовый ящик-распределитель (так называемую группу рассылки), например: hr-alerts@company.com.
  2. В настройках этого ящика на сервере указать список конечных адресов сотрудников, которые должны получать эти письма (например, пять кадровиков и один руководитель филиала).
  3. В 1С:ЗУП 3 создать всего одно служебное физическое лицо (по методике из Способа 1) и привязать к нему этот групповой адрес hr-alerts@company.com.

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

Способ 3. Добавление нового вида контактной информации

Что делать, если нам нужно хранить специальный email-адрес для рассылок у уже существующих в базе физических лиц или пользователей, но стандартное поле «Email» уже занято их личным или основным рабочим адресом? Рассмотрим, как решить эту проблему штатными средствами настройки контактной информации:

  1. Перейдем в раздел «Администрирование», далее выберем пункт «Общие настройки».
  2. Раскроем группу «Контактная информация» и перейдем по ссылке «Виды контактной информации».
  3. Найдем в списке группу Контактная информация справочника "Физические лица".
  4. Нажмем кнопку «Создать». В открывшейся форме укажем наименование, например: Email для рассылки расчетных листков. В поле «Тип» обязательно выберем значение Адрес электронной почты.
  5. Сохраним настройки.

После этого у всех физических лиц в базе появится дополнительное поле для ввода второго адреса электронной почты. Подсистема взаимодействий БСП автоматически просканирует все доступные виды контактной информации данного типа и позволит выбирать их при отправке корреспонденции.

Способ 4. Программная реализация собственного справочника через Расширение конфигурации

Если вы хотите получить максимально «чистое» и профессиональное решение, исключающее появление «виртуальных» людей в справочнике физических лиц, задачу следует решить программным путем. Чтобы не снимать типовую конфигурацию ЗУП 3 с поддержки, реализуем эту логику с помощью расширения конфигурации.

Проанализируем шаги, которые необходимо выполнить разработчику:

Шаг 1. Создание справочника. В расширении конфигурации создадим новый справочник, назовем его, например, АдресаДляРассылок. Добавим в него табличную часть КонтактнаяИнформация со стандартной структурой БСП для хранения контактных данных.

Шаг 2. Интеграция с подсистемой контактной информации. В модуле менеджера нашего нового справочника пропишем код регистрации в подсистеме контактной информации БСП. Это позволит пользователям вводить email-адрес прямо в карточке элемента справочника в удобном стандартном интерфейсе.

Пример кода для модуля менеджера справочника АдресаДляРассылок:


Процедура ОпределитьНастройкиКонтактнойИнформации(Настройки) Экспорт
	Настройки.Вставить("ИспользоватьКонтактнуюИнформацию", Истина);
КонецПроцедуры

Шаг 3. Регистрация в определяемых типах. Теперь нам нужно сделать так, чтобы стандартная почтовая форма «увидела» наш справочник. Для этого в расширении добавим наш справочник АдресаДляРассылок в состав следующих определяемых типов:

После применения расширения в вашей системе появится полностью изолированный, удобный справочник для хранения любых технологических и служебных email-адресов. Он не будет пересекаться с кадровым учетом физических лиц, но при этом будет полноценно поддерживаться всеми стандартными механизмами отправки писем, подбора контактов и рассылки отчетов 1С.

← На главную