1с письмо в html формате
1С Предприятие на данный момент умеет взаимодействовать с разными программными продуктами и в силу этих обстоятельств программисту 1С приходится разбираться в различных языках. Сейчас любой уважающий себя программист должен уметь сформировать и прочитать файл Excel или Word из 1С, должен уметь работать с файлами Open Office, что куда интереснее. Но этими навыками уже никого не удивишь. А как насчет взаимодействия с html? Конечно нечасто программисту 1С приходится писать сайты, но задачи, связанные с html, попадаются и много времени уходит на то, чтобы разобраться. Данная статья поможет вам сэкономить это время.
Наверняка многим доводилось писать простые сайты, вставлять туда картинки и все это делать с помощью html-редактора. В 90-х можно было рисовать дурацкие сайты и считаться крутым дизайнером-программистом, и еще умудряться продавать эти сайты неискушенным бизнесменам. На данный момент все сильно изменилось и требования к страницам стали куда серьезнее, поэтому знаний html на вышеописанном уровне недостаточно. Тем более, что сейчас все уважающие себя компании используют правильно оформленные рассылки с красивым и удобным дизайном, и будет просто стыдно выделиться на этом фоне в негативном свете. В этой статье мы расскажем, как сделать e-mail рассылку средствами 1С так, чтобы минимум времени потратить на поиски информации и получить хороший результат.
Все начинается с поиска макета для рассылки. Раз рассылкой занимается программист 1С, это значит, заказчик экономит. Соответственно макет должен быть бесплатным. Макет должен быть правильно написан. В связи с большим разнообразием почтовых клиентов, браузеров и устройств важно, чтобы везде макет отображался одинаково и без искажений. Вот несколько надежных правил для поиска, следуя которым вы не прогадаете:
- Нужно искать макеты, в которых структура страницы формируется таблицами, причем без использования блоков DIV, так как поддержка блочных элементов реализована далеко не во всех почтовых клиентах.
- Структура письма должна быть построена на таблице с шириной 100% и выравниванием по центру, внутри которой будет находиться основное содержание письма. Также необходимо избегать большой вложенности таблиц.
- Макет не должен быть сложным. Не следует пичкать макет большим количеством таблиц и изображений. Лучше увидеть на экране простой макет, который отображается правильно, чем груду картинок и таблиц, наезжающих и перекрывающих друг друга.
- В дополнение к предыдущему пункту: часто почтовые клиенты по умолчанию загружают страницу без картинок, поэтому макет должен быть читаемым в любых условиях, а если письмо состоит из одних картинок, то мы можем получить рамки от этих картинок.
- Также, в силу развития мобильных технологий, желательно, чтобы он умел адаптироваться под разные размеры экранов. В поиске следует искать «Адаптивные макетыhtmlдляe-mailпочты»
- Стиль css не должен быть отдельным файлом, так как почтовые клиенты просто игнорируют ссылки на стили в коде html. Большинство макетов используют внешние стили, но, к счастью, стиль css несложно указать в теле письма. Это делается заменой строки
…текст файла css…
- Для тегов также не нужно использовать внешние стили, необходимо указывать стили в строке
Стили не должны быть сокращенными. Неправильно: «border: solid 1px grey;». Правильно: «border-style:solid; border-width:1px; border-color:grey;».
- Необходимо использовать наиболее распространенные стили из перечисленных ниже:
- Ссылки должны быть абсолютными и не более 65 символов. Если число символов больше, то ссылку необходимо сократить с помощью специальных сервисов.
Если у вас нет строгих требований, то вы можете сэкономить время на поисках и использовать его. Также при выборе макета помните, что макет редактируется. Можно изменить цвета, изображения, пропорции таблиц на свой вкус.
Дизайном должен заниматься дизайнер. Это непреложное правило и не дай Бог его нарушить. Человек с более-менее посредственным чувством визуального вкуса получит негативное первое впечатление о вашей рассылке. А в силу глубокой неосознанности происходящего в своем сознании и нежелания признавать себя хоть в чем-то неправым (это и есть эффект первого впечатления, который работает во всех сферах), человек, не успев понять, о чем письмо, будет бессознательно считать его неинтересным, а если он не испытывает особой нужды в предлагаемом продукте или услуге, то письмо, ничтоже сумняшеся, будет закрыто.
Но еще большим злом будет использование скаченных из интернета шаблонов в их общеизвестном виде. Тут из двух зол нужно выбрать меньшее: дизайн. И в этом могут помочь некоторые полезные инструменты.
Также можно воспользоваться приемом любого дизайнера: поискать вдохновение оформления на просторах интернета. Никто же не запретит вам слизать удачные примеры. Но это тема бесконечная и тут можно заморачиваться долго, главное — не переборщить. И уж точно тут лучше оставить черный текст на белом фоне с одной картинкой, чем невпопад напичкать макет переизбытком всего, чего можно.
Информацию можно добавлять нехитрыми %ПеременнымиВПроцентах%, подставлять в переменную можно необязательно текст и цифры, это также может быть html-код. Например, в html-макете может храниться вот такой код:
%ПеременнаяВПроцентах%
А вместо %ПеременнаяВПроцентах% мы можем подставлять необходимое количество раз:
Также мы можем использовать вместо простого текста картинку:
Рекомендуем смело экспериментировать с параметрами в style="…". Например, параметром border-radius можно «скруглить» углы изображения.
К примеру, для того, чтобы разместить изображение и текст горизонтально, необходимо использовать таблицы:
Ну и последнее, что можно сказать по поводу оформления макета — это использование тегов для выделения текста:
полужирный курсив подчеркнутый большой
Макет можно хранить как на диске, так и в конфигурации. Если макет будет лежать на диске, то необходимо проследить, чтобы путь к макету был доступен с сервера, и чтобы пользователи не могли случайно его удалить, переместить, изменить и т.п. Если вы не доверяете подобным решениям и ваша рассылка не будет изменяться, то макет вполне можно хранит в конфигурации, например, в общих макетах. Для этого необходимо при создании макета выбрать тип «HTML документ», и скопировать туда код страницы во вкладку «Текст».
Первый, самый простой, – отправлять письмо на ящик почты, с которого производится отправка, а на самом ящике настроить правило обработки почты таким образом, чтобы если адрес «от кого» совпадает с адресом этой почты, то помечать письмо прочитанным и перемещать в папку «Отправленные».
Второй способ — программный. Тут нужно использовать протокол IMAP, который позволяет работать с папками на почте. Для этого необходимо подключаться к почте по этому протоколу:
Ну и на всякий случай упомянем, что если вы хотите отправлять отдельное письмо каждому вашему клиенту (например, для того, чтобы указать в этом письме индивидуальный подарочный код, принадлежащий конкретному человеку), то адрес письма необходимо указать не в слепых копиях, а в получателях, и циклом перебирать список получателей и на каждого отправлять отдельное письмо.
А если вы хотите отправлять одно письмо на всех, то в «получателе» необходимо указать адрес вашей компании. Его будут видеть все, кто получит рассылку. А адреса клиентов необходимо указывать в слепых копиях для того, чтобы получатели не могли видеть адреса друг друга. Так как список адресов в слепых копиях вы не сможете увидеть, то его лучше записать в журнал регистрации или в отдельный регистр сведений.
(код найден на просторах интернета)
Если ЦиклПоСтроке(EMailСтрока,ПравильныеСимволы,0) Тогда // определяем тип адреса
КорректныйEmail = ЦиклПоСтроке(EMailСтрока,ПравильныеСимволы,1); // проверка латиница
КорректныйEmail = ЦиклПоСтроке(EMailСтрока,ПравильныеСимволыКирилица+ЦифрыСимволы+ОбъязательныеСимволы,0); // проверка кирилица
Если КорректныйEmail Тогда
КорректныйEmail = ЦиклПоСтроке(ОбъязательныеСимволы,EMailСтрока,2); // проверка на объязательные спецсимволы
Если КорректныйEmail Тогда // проверка на объязательные спецсимволы, количество "@" не должно быть больше 1-й
Если СтрЧислоВхождений(EMailСтрока,"@") > 1 Тогда
Ом.СообщитьПользователю("Электронный почтовый адрес не может содержать "+СтрЧислоВхождений(EMailСтрока,"@")+" символа ""@"".");
Если КорректныйEmail Тогда
Если НайтиСобаку > 0 Тогда
КорректныйEmail = ЦиклПоСтроке(ЗапрещенныеСимволы,Сред(EMailСтрока, НайтиСобаку-1,1),5); // проверка корректных символов до @
Если КорректныйEmail Тогда
КорректныйEmail = ЦиклПоСтроке(ЗапрещенныеСимволы,Сред(EMailСтрока, НайтиСобаку+1,1),4); // проверка корректных символов после @
Если КорректныйEmail Тогда
КорректныйEmail = ЦиклПоСтроке(ЗапрещенныеСимволы,Лев(EMailСтрока,1),6); // проверка первого символова
Если КорректныйEmail Тогда
Для Сч = 1 по СтрДлина(ЗапрещенныеСимволы) Цикл // проверка на задвоение
ТекСимв = Сред(ЗапрещенныеСимволы, Сч, 1);
Если Найти(EMailСтрока,ДваСимвола) Тогда
Ом.СообщитьПользователю("Электронный почтовый адрес не может содержать """+ДваСимвола+""" символ(а).");
Если КорректныйEmail Тогда
Если Найти(EMailСтрока,"._") Тогда
Если Найти(EMailСтрока,".-") Тогда
Если Найти(EMailСтрока,"-.") Тогда
Если Найти(EMailСтрока,"-.") Тогда
Если НЕ ПустаяСтрока(СимволОшибки) Тогда
Ом.СообщитьПользователю("Электронный почтовый адрес не может содержать """+СимволОшибки+""" символ.");
Если КорректныйEmail Тогда
Для Сч = 1 по СтрДлина(EMailСтрока) Цикл // получаем доменное имя
ТекСимв = Сред(EMailСтрока, Сч, 1);
Если ТекСимв = "." Тогда
Если НайтиТочку = ЧислоВхождений Тогда
Если ПустаяСтрока(ДоменноеИмя) Тогда
Ом.СообщитьПользователю("Не удалось получить доменное имя электронного адреса.");
КорректныйEmail = ЦиклПоСтроке(ДоменноеИмя,?(АдресКирилица,"рф",ПравильныеСимволыЛатиница),3); // проверка доменного имени
Если КорректныйEmail И АдресКирилица Тогда
Если Найти(ДоменноеИмя,"рф") > 0 Тогда
КорректныйEmail = СтрДлина(ДоменноеИмя) = 2;
Для Сч = 1 по СтрДлина(СтрокаЦикла) Цикл
ТекСимв = Сред(СтрокаЦикла, Сч, 1);
Если Найти(СимволыПроверки, ТекСимв) = 0 Тогда
Если ТипПроверки > 0 Тогда
Если Найти(СимволыПроверки, ТекСимв) <> 0 Тогда
Если ТипПроверки > 0 Тогда
Если Тип = 1 Тогда
ТекстОшбки = "Не корректный символ";
ИначеЕсли Тип = 2 Тогда
ТекстОшбки = "Не обнаружен объязательный символ";
ИначеЕсли Тип = 3 Тогда
ТекстОшбки = "Не корректно указано доменное имя, не корректный символ";
ИначеЕсли Тип = 4 Тогда
ТекстОшбки = "Электронный почтовый адрес не может содержать """+ОшибочныйСимвол+""" после символа ""@""";
ИначеЕсли Тип = 5 Тогда
ТекстОшбки = "Электронный почтовый адрес не может содержать """+ОшибочныйСимвол+""" до символа ""@""";
ИначеЕсли Тип = 6 Тогда
ТекстОшбки = "Электронный почтовый адрес не может начинатся с символа """+ОшибочныйСимвол+"""";
Другой момент ― это частота рассылки. Можно решить, что чем чаще рассылка, тем больше продажи и тем лучше, но здесь все не так просто, равно как и со слишком редкой рассылкой. Слава Богу, в интернете достаточно информации об исследованиях на эту тему, которая позволит найти золотую середину.
В целом, удобно было бы сделать рассылку отдельным документом, который в движениях может сохранять адреса отправки, тему рассылки и т.п. А текст рассылки сделать в табличной части ― таким образом мы сможем контролировать число блоков в письме и их содержание (текст, изображение или текст с изображением). Также в документе можно сделать вкладку с полем html-документа для просмотра рассылки.
На этом все, удачных рассылок!
Автор:
Исмаилов Ильяс, разрабочик компании Neti
Подписывайтесь на канал
«Полезный 1С»
В телеграм канале — наш практический опыт, бизнес-кейсы и способы повышения эффективности компании, которые мы опробовали внутри группы Neti.
Подкиньте пожалуйста пример отправки письма прямо из 1С, нужно чтобы шапка была фирменная, т.е. есть шаблон в формате html, мы туда дописываем только тело письма и отправляем.
Находил примеры с простым текстом, а вот html.
HTML - это и есть простой текст. В сети куча справочников по нему. Пишешь шапку на html и отправляешь как обычный текст. Только советую разобраться с кодом и писать его в обычном блокноте. Тот же Word кучу лишнего втыкает, что увеличивает трафик. Для меня, например, это очень важно.
Нет, может не так выразился, у меня задача несколько сложнее, а может и проще.
Есть некий шаблон на html, как и где его сделали не принципиально, скажем он содержит в себе какой-то фон, логотипы к примеру.
Мне просто нужно к нему скажем где-то в центре добавить свой текст.
Только вопрос, как быть с картинками?
Т.е. делаю шаблон, картинку добавляю в базу, в шаблоне я её прекрасно вижу. Далее указываю что письмо и есть мой шаблон, при просмотре и отправке картинки нет. :evil:
Если конечно я включаю редактирование и еще раз указываю нахождение картинки где-то скажем на диске, то она появляется и уходит письмо вместе с ней.
Как быть? Сохранять картинку на диск и лезть в код чтобы прописать к ней путь? Как-то не красиво.
Как вариант, можно при написании письма выбирать путь к картинке. Более того, для шаблона сделать возможность исправления путей картинок. Чтобы если картинку перенесли, то можно было указать другой путь.
Однако есть еще вариант. Например в ЗиУП, фотографии ФизЛиц можно сохранять в файл. Это наводит на мысль, что картинки так же можно сохранять. Воспользовавшись этой возможностью, можно при отправке письма, программно сохранить картинку во временной папке и прописать к ней путь.
Снова вернулся к этой теме.
Тогда проблему решил сохранением на диск локально картинки, сейчас с нуля бьюсь уже неделю не пойму что не так.
Начал делать с нуля в новых условиях
1) добавил картинку в общие картинки, в конфигураторе в документе HTML вставил картинку из конфигурации, при просмотре её прекрасно вижу, при отправке, при вызове метода ОбработатьТексты(), вылетает ошибка:
Каталог не обнаружен '\mdpicture\ida1cd3670-67d6-4fac-af6c-6e5f795dab8c\00000000-0000-0000-0000-000000000000'
2) сохранил картинку на локальный диск (работаю в толстом клиенте), вставил картинку в HTML уже из файла, указал локальный путь, в итоге ошибка поменялась
Каталог не обнаружен '\8eb4fad1-1fa6-403e-970f-2c12dbb43e23_files\logo.jpg'
Сейчас хотя бы видно куда он пытается попасть, но всё равно не понятно. Если глянуть свойства картинки из конфигуратора, то путь выглядит так "Письмо\logo.jpg". Пробовал через закладку Текст менять на D:\. тоже не может найти
Допустим, есть задача, сформировать программное электронное письмо шаблон и в него вставлять какой-то свободно изменяемый текст в зависимости от ситуации а-ля официальный бланк на бумаге. Разберём на примере поздравления с новым годом наших горячо любимых клиентов! УРА! И сделаем мы это без помощи дизайнеров и верстальщиков! УРА!
Допустим, у вас есть некий официальный или фирменный бланк в WORD (не реклама).
А если нет, то вы я думаю, легко его сможете в том же WORD создать. Для примера я создал:
Понял, что меня устраивает такой дизайн, делаю его пригодным для внутрипрограммного «парсинга». Т.е. раставляю метки, которые позже буду использовать.
Для себя нашел самый простой способ конвертировать его в HTML в том же WORDе. Просто сохраняем его в HTML и открываем с помощью браузера CHROME (не реклама).
А затем подготавливаем небольшую обработку. Чтобы легко и быстро конвертировать код HTML в строку 1С. Может можно иначе, но я решил так.
Создал внешнею обработку, на форме два реквизита оба строковые «Исходный» и «Конвертированный», одна команда «Конвертировать».
Код команды "Конвертировать":
Теперь мы готовы и возвращаемся в CHROME к нашей заготовке. Правой кнопкой по самому полю страницы вызываем контекстное меню и выбираем пункт «Просмотреть код страницы».
Копируем его весь, не парьтесь вы же ни верстальщик и ни дизайнер, по этому просто пока бездумно всё забираем (но конечно можете блеснуть знанием HTML и сверстать так как вам угодно, но мне это не интересно пока), вставляем в нашу свежеиспеченную обработку и конвертируем ;)
Всё текст готов для вставки в код.
2. Создаем рассыльщик с поддержкой HTML
Теперь займёмся написанием процедуры отправки почты. В примере создадим обработку, через которую будет производиться отправка почты.
Реквизиты все строкового типа: Адреса, Должность, ЗаголовокПисьма, Подпись, ТекстПисьма, ТемаПисьма и ФИО.
После проверки кода, конфигуратор выдаст ошибку: «Процедура или функция с указанным именем не определена (СформироватьТекстПисьма)». Вот и переходим к конечному пункту формированию самого письма.
Создаем новую функцию и одну текстовую переменную в ней для начала «Шаблон», которой присваиваем заранее скопированный из буфера конвертированной в обработке созданной нами выше текст, просто не задумывая с набор этих букв.
Нужно главное не забыть! Что у нас есть картинка, и её придётся ручками под редактировать в коде… Сейчас путь указан «src=""Информационно1.files/image001.jpg""». Где это 1С не поймёт, по этому я создал папочку и положил картинку в неё и разместил все для примера на диске С.
Получил новый путь и вставлю его в тег SRC. Выходит «src="" C:\public\logo.jpg""».
ВНИМАНИЕ! Если папка шара, то путь указывается с одним слешем типа «src="" \192.168.1.1.\Bid\kotov\logo.jpg», 1С и это съест нормально. Почему один не знаю, но так работает у меня проверено ;)
Вот теперь после присвоения переменной «Шаблон», будем её изменять и редактировать программно всего одной функцией СтрЗаменить и идти к успеху! Вы же помните наши метки, по ним и будем ориентироваться. Готовая функция:
Запускаем обработку, заполняем данными и отправляем поздравительный спам :)
Результат проверил на разных почтовых сервисах, программах и устройствах:
А вот в мобильной версии из меня не удачный верстальщик ;)
По этому смотрите сами, корректируйте и выстраивайте шаблон так в WORDе, чтобы он читабелен был везде ;)
Мы имеем возможность создать свой универсальный шаблон, в который можно выводить отчет, вставлять разные картинки от ситуации, конечно потребуется минимальное понимание HTML (для динамического формирования таблицы и её заполнения), но это позволит создавать рассылку или уведомления более привлекательными. А это хороший шаг в Email-маркетинге иметь привлекательное письмо.
Можно развить шаблон до формата редактирования его прямо в 1С используя одну из многочисленных обработок:
Но лично мне удобнее и проще показалось создать шаблон в ворде, чем ковыряться в html-редакторе.
Удачного кодинга! С наступающим Новым Годом!
ПС (добавим таблицу значений в официальное письмо):
При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:
объект "Почта" и объект "Интернет почта", каждый из объектов имеет свои достоинства.
Почта - предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии MAPI.
Интернет почта - объект открывает возможности по доступу непосредственно к почтовым ящикам и учетным записям находящимися на почтовом сервере, использование и работа данного объекта не зависит от установленных в системе почтовых клиентов, даже если почтовый клиент установлен в системе "ИнтернетПочта" будет работать параллельно с ним, объект использует интернет-протоколы SMTP, POP3.
Для работы с объектом Почта необходимо наличие установленного на компьютере почтового клиента с описанными учетными записями.
Для подключения к почтовому клиенту у объекта есть метод "Подключиться".
Код 1C v 8.х
Первый параметр - имя профиля, к примеру, если в системе установлен MS Outlook, то как правило его профиль называется Outlook. Следовательно при подключении строка выглядела бы так:
Код 1C v 8.х
Второй параметр отвечает за пароль к учетной записи.
//Выбираем все письма, со всеми вложениями.
Код 1C v 8.х
(иногда при взаимодействии с Outlook 2003 возникает проблема, при которой 1С 8 просто аварийно завершает работу с ошибкой, именно на данной строке кода, это лечится установкой пакета обновления SP2 для MS Office 2003).
Перед подключением к почтовому серверу, для объекта ИнтернетПочта необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод "Подключиться".
При переборе вложений, данные полученные из письма сохраняются в реквизит типа ХранилищеЗначения, заранее созданного справочника "СправочникВложения" в конфигураторе, т.к. данные первоначально сохраняются на диск, а затем загружаются в справочник, то, после загрузки в соответствующий реквизит справочника данные можно удалить. Не рекомендуется хранить данные типа ХранилищеЗначения в Табличных частях справочников, т.к. при больших объемах данных это затормаживает работу конфигурации.
Удобно подключить автополучение/автоотправку почты командой "ПодключитьОбработчикОжидания(,)". Первый параметр в команде отвечает за наименование вызываемой процедуры, и второй, период ожидания процедуры в секундах, обычно обработчик ожидания вставляется в глобальный модуль системы (например, в процедуру ПриНачалеРаботыСистемы()) и указывает на процедуру с пометкой Экспорт.
Например, можно создать процедуру ПроверитьПочту, в которую вставить загрузку писем из почтового ящика и вставить ее в следующую строку:
После использования нескольких или сразу всех способов работы с электронной почтой, образуется полноценный почтовый клиент с возможностью хранения и обработки писем с вложениями на базе 1С предприятие 8.0.
Если УдалитьСоединение <> Неопределено Тогда
ПараметрыОтправки . Вставить ( "Соединение" , УдалитьСоединение );
КонецЕсли;
Если Не ПустаяСтрока ( УдалитьПротоколПочты ) Тогда
ПараметрыОтправки . Вставить ( "ПротоколПочты" , УдалитьПротоколПочты );
КонецЕсли;
Если ТипЗнч ( УчетнаяЗапись ) <> Тип ( "СправочникСсылка.УчетныеЗаписиЭлектроннойПочты" )
Или НЕ ЗначениеЗаполнено ( УчетнаяЗапись ) Тогда
ВызватьИсключение НСтр ( "ru = 'Учетная запись не заполнена или заполнена неправильно.'" );
КонецЕсли;
Если ПараметрыОтправки = Неопределено Тогда
ВызватьИсключение НСтр ( "ru = 'Не заданы параметры отправки.'" );
КонецЕсли;
ТипЗнчКому = ?( ПараметрыОтправки . Свойство ( "Кому" ), ТипЗнч ( ПараметрыОтправки . Кому ), Неопределено);
ТипЗнчКопии = ?( ПараметрыОтправки . Свойство ( "Копии" ), ТипЗнч ( ПараметрыОтправки . Копии ), Неопределено);
СкрытыеКопии = ОбщегоНазначенияКлиентСервер . СвойствоСтруктуры ( ПараметрыОтправки , "СкрытыеКопии" );
Если ТипЗнчКому = Неопределено И ТипЗнчКопии = Неопределено И СкрытыеКопии = Неопределено Тогда
ВызватьИсключение НСтр ( "ru = 'Не указано ни одного получателя.'" );
КонецЕсли;
Если ТипЗнчКому = Тип ( "Строка" ) Тогда
ПараметрыОтправки . Кому = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . Кому );
ИначеЕсли ТипЗнчКому <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "Кому" , Новый Массив );
КонецЕсли;
Если ТипЗнчКопии = Тип ( "Строка" ) Тогда
ПараметрыОтправки . Копии = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . Копии );
ИначеЕсли ТипЗнчКопии <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "Копии" , Новый Массив );
КонецЕсли;
Если ТипЗнч ( СкрытыеКопии ) = Тип ( "Строка" ) Тогда
ПараметрыОтправки . СкрытыеКопии = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( СкрытыеКопии );
ИначеЕсли ТипЗнч ( СкрытыеКопии ) <> Тип ( "Массив" ) Тогда
ПараметрыОтправки . Вставить ( "СкрытыеКопии" , Новый Массив );
КонецЕсли;
Если ПараметрыОтправки . Свойство ( "АдресОтвета" ) И ТипЗнч ( ПараметрыОтправки . АдресОтвета ) = Тип ( "Строка" ) Тогда
ПараметрыОтправки . АдресОтвета = ОбщегоНазначенияКлиентСервер . РазобратьСтрокуСПочтовымиАдресами ( ПараметрыОтправки . АдресОтвета );
КонецЕсли;
Если ПараметрыОтправки . ОшибочныеПолучатели . Количество () > 0 Тогда
ТекстОшибки = НСтр ( "ru = 'Следующие почтовые адреса не были приняты почтовым сервером:'" );
Для Каждого ОшибочныйПолучатель Из ПараметрыОтправки . ОшибочныеПолучатели Цикл
ТекстОшибки = ТекстОшибки + Символы . ПС + СтроковыеФункцииКлиентСервер . ПодставитьПараметрыВСтроку ( "%1: %2" ,
ОшибочныйПолучатель . Ключ , ОшибочныйПолучатель . Значение );
КонецЦикла;
ВызватьИсключение ТекстОшибки ;
КонецЕсли;
Читайте также: