В процессе работы с программой «1С:Зарплата и управление персоналом 3» (ЗУП) пользователи часто сталкиваются с необходимостью отправки электронных писем прямо из информационной базы. Это могут быть расчетные листки, кадровые уведомления, справки или регулярные аналитические отчеты. Логично, что для удобства отправки хочется заранее сохранить определенные адреса (например, адрес бухгалтерии управляющей компании, адрес технической поддержки или почту контролирующего аутсорсера) в системе, чтобы выбирать их буквально в два клика мышкой.
Однако первая же идея разработчика или администратора — «создать обычную текстовую константу и записать адрес туда» — на практике разбивается об особенности архитектуры Библиотеки стандартных подсистем (БСП), на базе которой построена 1С:ЗУП 3. В этой статье мы подробно проанализируем, почему стандартная строковая константа не решает задачу интерактивного подбора адреса, и разберем наиболее эффективные и корректные способы решения этой проблемы.
Рассмотрим ситуацию глубже. Допустим, мы создали константу АдресЭлектроннойПочтыДляРассылок с типом данных Строка. Мы можем без проблем записать туда значение вида support@company.com и даже прочитать его программно. Но как только пользователь открывает стандартную форму создания электронного письма в 1С и нажимает на кнопку подбора получателей в полях «Кому», «Копия» или «Скрытая копия», система ожидает увидеть структурированный список контактов.
Механизм отправки писем и рассылки отчетов в 1С:ЗУП 3 опирается на подсистемы БСП «Взаимодействия» и «Контактная информация». Список объектов, которые система распознает как легитимных получателей писем, жестко ограничен на уровне метаданных специальными определяемыми типами (например, ПолучателиПисем, ПолучательРассылки). По умолчанию в эти типы входят только конкретные справочники:
Если мы запишем email в простую строковую константу или создадим собственный изолированный справочник, стандартная почтовая форма БСП просто не сможет «увидеть» этот адрес для интерактивного выбора. Ниже мы разберем четыре практических варианта решения этой задачи: от самых простых (без изменения конфигурации) до профессиональных (с использованием расширения).
Это самый быстрый и распространенный способ обхода ограничений, который не требует привлечения программиста и внесения изменений в конфигурацию. Разберем этот процесс по шагам:
_Служебные адреса для рассылок. Символ подчеркивания в начале названия позволит папке всегда находиться вверху списка.Отдел кадров (уведомления) или Бухгалтерия УК.Почему это работает? Справочник ФизическиеЛица по умолчанию входит во все определяемые типы получателей почты в БСП. Теперь при оформлении письма или настройке рассылки отчетов пользователь сможет нажать кнопку выбора, зайти в папку служебных адресов и легко выбрать нужный контакт мышкой.
Аналогично можно поступить и со справочником Пользователи, создав там служебного пользователя без прав доступа, но с заполненным адресом электронной почты. Однако использование справочника физических лиц считается более предпочтительным, так как это не засоряет список пользователей информационной базы.
Проанализируем ситуацию, когда состав получателей часто меняется или писем отправляется действительно много. Вместо того чтобы заводить в 1С множество служебных физических лиц и постоянно актуализировать их адреса, мы можем переложить эту задачу на корпоративный почтовый сервер.
Попросим системного администратора организации выполнить следующие действия:
hr-alerts@company.com.hr-alerts@company.com.При отправке почты из 1С письмо уйдет на один-единственный адрес группы рассылки, а почтовый сервер организации сам мгновенно перенаправит его всем конечным получателям. Это существенно снижает трудозатраты на администрирование базы 1С.
Что делать, если нам нужно хранить специальный email-адрес для рассылок у уже существующих в базе физических лиц или пользователей, но стандартное поле «Email» уже занято их личным или основным рабочим адресом? Рассмотрим, как решить эту проблему штатными средствами настройки контактной информации:
Контактная информация справочника "Физические лица".Email для рассылки расчетных листков. В поле «Тип» обязательно выберем значение Адрес электронной почты.После этого у всех физических лиц в базе появится дополнительное поле для ввода второго адреса электронной почты. Подсистема взаимодействий БСП автоматически просканирует все доступные виды контактной информации данного типа и позволит выбирать их при отправке корреспонденции.
Если вы хотите получить максимально «чистое» и профессиональное решение, исключающее появление «виртуальных» людей в справочнике физических лиц, задачу следует решить программным путем. Чтобы не снимать типовую конфигурацию ЗУП 3 с поддержки, реализуем эту логику с помощью расширения конфигурации.
Проанализируем шаги, которые необходимо выполнить разработчику:
Шаг 1. Создание справочника. В расширении конфигурации создадим новый справочник, назовем его, например, АдресаДляРассылок. Добавим в него табличную часть КонтактнаяИнформация со стандартной структурой БСП для хранения контактных данных.
Шаг 2. Интеграция с подсистемой контактной информации. В модуле менеджера нашего нового справочника пропишем код регистрации в подсистеме контактной информации БСП. Это позволит пользователям вводить email-адрес прямо в карточке элемента справочника в удобном стандартном интерфейсе.
Пример кода для модуля менеджера справочника АдресаДляРассылок:
Процедура ОпределитьНастройкиКонтактнойИнформации(Настройки) Экспорт
Настройки.Вставить("ИспользоватьКонтактнуюИнформацию", Истина);
КонецПроцедуры
Шаг 3. Регистрация в определяемых типах. Теперь нам нужно сделать так, чтобы стандартная почтовая форма «увидела» наш справочник. Для этого в расширении добавим наш справочник АдресаДляРассылок в состав следующих определяемых типов:
ПолучательРассылкиПолучателиПисемОбъектСКонтактнойИнформациейПосле применения расширения в вашей системе появится полностью изолированный, удобный справочник для хранения любых технологических и служебных email-адресов. Он не будет пересекаться с кадровым учетом физических лиц, но при этом будет полноценно поддерживаться всеми стандартными механизмами отправки писем, подбора контактов и рассылки отчетов 1С.