Имя: Пароль:
1C
 
Отправка почты при проведении
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(строкатаблицы.Работа.Наименование),СК,ЭлАдрес);
                //Если строкатаблицы.Уведомлен Тогда
               //      строкатаблицы.Уведомить = Ложь;
                //КонецЕсли;

        КонецЕсли;
    КонецЦикла;