![]() |
|
Отправка почты при проведении | ☑ | ||
---|---|---|---|---|
0
Cockswain
03.09.10
✎
12:09
|
Нужно организовать отправку сообщения при проведении документа.Где и как мне это сделать?Я так полагая это нужно делать в модуле объекта в Процедура ОбработкаПроведения?
|
|||
1
Ненавижу 1С
гуру
03.09.10
✎
12:09
|
(0) лучше это не делать при проведении
|
|||
2
mikecool
03.09.10
✎
12:10
|
(0) в подписке на событие
|
|||
3
Defender aka LINN
03.09.10
✎
12:10
|
(2) И там тоже лучше не делать.
|
|||
4
Cockswain
03.09.10
✎
12:15
|
Я имею ввиду как провелся документ то данные документа сразу высылаются на указанную почту.
|
|||
5
Defender aka LINN
03.09.10
✎
12:17
|
(4) Рекомендую сделать легкоотключаемый механизм, ибо получателю это уже на 2-ю неделю надоест.
|
|||
6
shuhard
03.09.10
✎
12:19
|
(5) угу
при первом же тайм-ауте по 25 порту это надоест отправителю |
|||
7
hhhh
03.09.10
✎
12:21
|
ну надоест. И что они, напишут заявления?
|
|||
8
Defender aka LINN
03.09.10
✎
12:22
|
(6) Если сделать, как (0) и (2) хотят, то вообще всем надоест.
|
|||
9
shuhard
03.09.10
✎
12:30
|
(8) конечно
посему почта должна отправляться асинхронно и пакетно |
|||
10
mikecool
03.09.10
✎
12:33
|
(8,9) от телепаты... мож там одна накладная в день и то - событие
|
|||
11
Defender aka LINN
03.09.10
✎
12:35
|
(9) Ну, мы на это и пытаемся намекнуть, а ты всю интригу испортил :)
|
|||
12
Нуф-Нуф
03.09.10
✎
12:36
|
мне уже надоело
|
|||
13
Cockswain
03.09.10
✎
12:46
|
А вообще в Процедура ОбработкаПроведения я там могу же организовать отправку(глПослать) чтобы отправлялось сообщение с информацией со строкой таблицы документа.То есть документ провелся и тут же отправилось.
|
|||
14
Defender aka LINN
03.09.10
✎
12:51
|
(13) Ну, делай. Как знать, может все хорошо закончится - тебя за это уволят и мы тебя больше не увидим.
|
|||
15
shuhard
03.09.10
✎
13:00
|
(13) и при каждом перепроведении документов и восстановлении последовательности полетит письмо
|
|||
16
zGainer
03.09.10
✎
13:02
|
(13) Можешь, потом все услышишь:)
|
|||
17
Irbis
03.09.10
✎
13:05
|
глПослать можно и без всякой процедуры организовать. И идут, голубчики, далеко и с песней.
|
|||
18
Cockswain
03.09.10
✎
13:08
|
(16)Ну а где мне это писать?Объяните вообще как мне все это дело организовать?Просто есть док ЗаказКлиента нужно чтобы как только заполнится документ и проведется происходила отправка строк табличного поля на ящик?
|
|||
19
Смешной 1С
03.09.10
✎
13:12
|
(18) А ящик для всех один на который слать? Или он в данных о клиенте храниться?
|
|||
20
Cockswain
03.09.10
✎
13:16
|
(19)ОДин
|
|||
21
Смешной 1С
03.09.10
✎
13:21
|
(20) Это замечательно что один адрес!)
Если тебе сказали делать при проведении, делай там - в модуле объекта в Процедура ОбработкаПроведения. Там вызывай функцию что-то типа такого: Функция ОтправкаПоПочте(ТемаПисьма, ТекстПисьма) Экспорт АдресСервераSMTP="mail.***.ru"; ПортSMTP=25; ПользовательSMTP="***"; //учетка с которой будешь отправлять ПарольSMTP="***"; УведомитьОДоставке= Ложь; ИПП=Новый ИнтернетПочтовыйПрофиль; ИПП.АдресСервераSMTP=АдресСервераSMTP; ИПП.ПортSMTP=ПортSMTP; ИПП.ПользовательSMTP=ПользовательSMTP; ИПП.ПарольSMTP=ПарольSMTP; Письмо=Новый ИнтернетПочтовоеСообщение; Письмо.Получатели.Добавить("***@***.ru"); //адрес получателя Письмо.Тема= ТемаПисьма; Письмо.Отправитель = "***@***.ru"; Письмо.Тексты.Добавить(ТекстПисьма); Письмо.УведомитьОДоставке=УведомитьОДоставке; Почта=Новый ИнтернетПочта; Почта.Подключиться(ИПП); Почта.Послать(Письмо); Почта.Отключиться(); КонецФункции ТекстПисьма - это строка. Поэтому твои строки нужно поочередно добавлять. ТекстПисьма = ТекстПисьма + ТабличнаяЧасть.ТОвары ... + Символы.ПС; Как-то вот так... |
|||
22
zGainer
03.09.10
✎
13:24
|
(21) При отправке скорее всего понадобится:
ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login; ну и: ПочтовыйПрофиль.ВремяОжидания = ВремяОжидания; |
|||
23
Смешной 1С
03.09.10
✎
13:26
|
(22) У меня работает (21)
|
|||
24
FoXSkr
03.09.10
✎
13:29
|
Только лучше при отправке сделай так:
Попытка Почта.Послать(Письмо); Исключение Сообщить("Бла бла бла"); КонецПопытки; А лучше бы действительно сначало бы формировал какой нибудь список для отправки а потом в задании в 23 часа бы отправил бы все махом. |
|||
25
Смешной 1С
03.09.10
✎
13:31
|
+(24) И лучше в файл формировать это все дело: в XML или в Excel
|
|||
26
zGainer
03.09.10
✎
13:31
|
(25) В XML, потом ZIP.
|
|||
27
Cockswain
03.09.10
✎
13:56
|
(21)Это все хорошо.Но нужно сделать по анлогии с ЗакрытиеЗАявки.Только тут отправляется сообщение и клиенту и ЭлАдрес = "hfnhf@vnsj.ru".Не могу понять как это сделать?
Для Каждого строкатаблицы из Услуги Цикл Если строкатаблицы.Уведомить Тогда Если Не ПустаяСтрока( строкатаблицы.СообщениеКлиенту ) Тогда СК = "Здравствуйте, уважаемый пользователь компании "+TrimAll(Контрагент.Наименование)+". |<br>По Вашему вопросу от "+строкатаблицы.ДатаПостановки+": <br><b>"+ строкатаблицы.Содержание+"</b> |<br>Сделано следующее: <br><b>"+строкаТаблицы.СообщениеКлиенту+" |</b><br>С уважением, коллектив F1Pro"+" |<br><b>73734634</b>"; ОтборРегистра = ПолучитьОтборДляАдресаОтправкиПисем(Контрагент); Ресурсы = РегистрыСведений.КонтактнаяИнформация.Получить(ОтборРегистра); ЭлАдрес = Ресурсы.Представление; Если НЕ ЗначениеЗаполнено(ЭлАдрес) Тогда Предупреждение("У контрагента не обнаружен электронный адрес для обмена документами! Выгрузка невозможна!"); Возврат; КонецЕсли; строкатаблицы.Уведомлен = глПослать(TrimAll(Контрагент.Наименование)+": "+TrimAll(строкатаблицы.Работа.Наименование),СК,ЭлАдрес); Если строкатаблицы.Уведомлен Тогда строкатаблицы.Уведомить = Ложь; КонецЕсли; Иначе сообщить("Не указано сообщение клиенту в строке "+строкатаблицы.НомерСтроки+"!!!"); Отказ = Истина; возврат; КонецЕсли; Иначе СК = "Здравствуйте, уважаемый пользователь компании "+TrimAll(Контрагент.Наименование)+". |<br>По Вашему вопросу от "+строкатаблицы.ДатаПостановки+": <br><b>"+ строкатаблицы.Содержание+"</b> |<br>Сделано следующее: <br><b>"+строкаТаблицы.СообщениеКлиенту+" |</b><br>С уважением, коллектив F1Pro"+" |<br><b>73734634</b>"; ОтборРегистра = ПолучитьОтборДляАдресаОтправкиПисем(Контрагент); Ресурсы = РегистрыСведений.КонтактнаяИнформация.Получить(ОтборРегистра); ЭлАдрес = "hfnhf@vnsj.ru"; //Если НЕ ЗначениеЗаполнено(ЭлАдрес) Тогда // Предупреждение("У контрагента не обнаружен электронный адрес для обмена документами! Выгрузка невозможна!"); // Возврат; //КонецЕсли; строкатаблицы.Уведомлен = глПослать(TrimAll(Контрагент.Наименование)+": "+TrimAll(строкатаблицы.Работа.Наименование),СК,ЭлАдрес); //Если строкатаблицы.Уведомлен Тогда // строкатаблицы.Уведомить = Ложь; //КонецЕсли; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |