Имя: Пароль:
1C
 
Рассылка почтовых сообщений после выполнения действий
, ,
0 pin4er
 
25.12.15
10:48
Привет, с Пятницей товарищи!!!

столкнулся с интересным феноменом, при выполнении обработки в 1с из планировщика заданий:

как работает когда запускаеш сам в режиме предприятия туже обработку и под тем же пользователем:
1. переводит номенклатуру в определенный статус (не буду вдаваться в подробности) и перезаписывает.
2. Формирует эксель файл с обработанной номенклатурой.
3. отправляет на почту рассылку с прикреплёным файлом о измененной номенклатуре.
4. Закрывается сеанс 1с.
время выполнения: 2-4мин.


как это работает при запуске из планировщика заданий:
1. вызывается батник в 7 утра с командой:
"C:\Program Files (x86)\1cv82\8.2.19.130\bin\1cv8.exe" ENTERPRISE /F"D:\Торговля" /N"Админ" /P"123" /Execute "D:\Торговля\RunD3auto.epf"
2. открывается 1с
3. переводит номенклатуру в определенный статус (не буду вдаваться в подробности) и перезаписывает.
4. Формирует эксель файл с обработанной номенклатурой.
ПРОБЛЕМА в п.5
5. не делает рассылку!!!!!!!!
6. Закрывается сеанс 1с.
Время выполнения тоже от 2-4мин.

Кто может подсказать в чем проблема? кто сталкивался с такой ситуацией?

вот код отправки, куски сообщения уже комментил для проверки: руками запускаешь норм, а через планировщик все норм кроме рассылки.

Процедура ОтправитьEmail(Получатель, Тема="", ТекстПисьма="", ФайлВложений = Неопределено) Экспорт
    
    ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
    УчетнаяЗапись = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекущийПользователь, "ОсновнаяУчетнаяЗапись");
    Если Не ЗначениеЗаполнено(УчетнаяЗапись) Тогда
        Сообщить("У Вас не настроена учетная запись почты.");
        Возврат;
    КонецЕсли;
    ПрофильОтправки=УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(УчетнаяЗапись);
    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.ИмяОтправителя = СокрЛП("Рассылка Статусов");
    Письмо.Получатели.Добавить(Получатель);
    Письмо.Отправитель = УчетнаяЗапись.Наименование;
    Письмо.Тема = Тема;
    Письмо.Тексты.Добавить(ТекстПисьма,ТипТекстаПочтовогоСообщения.HTML);
    Если ЗначениеЗаполнено(ФайлВложений) Тогда
        Письмо.Вложения.Добавить(ФайлВложений);
    КонецЕсли;
    
    Почта = Новый ИнтернетПочта;
    ПодключениеУстановлено=Ложь;Инд=1;
    Пока не ПодключениеУстановлено
        и Инд<=5 Цикл
        Попытка
            Почта.Подключиться(ПрофильОтправки);
            ПодключениеУстановлено=Истина;
        Исключение
            Инд=Инд+1;
        КонецПопытки;
    КонецЦикла;
    //Если не ПодключениеУстановлено Тогда
    //    Сообщить("Электронное сообщение не отправлено: " + ОписаниеОшибки());
    //    Возврат;
    //КонецЕсли;
    СообщениеОтправлено=Ложь;Инд=1;
    Пока не СообщениеОтправлено
        и Инд<=5 Цикл
        Попытка
            Почта.Послать(Письмо);
            СообщениеОтправлено=Истина;
        Исключение
            Инд=Инд+1;
        КонецПопытки;
    КонецЦикла;
    Почта.Отключиться();        
    //Если не СообщениеОтправлено Тогда
    //    Сообщить("Электронное сообщение не отправлено: " + ОписаниеОшибки());
    //    Возврат;
    //КонецЕсли;
КонецПроцедуры
1 pin4er
 
25.12.15
11:33
хватит затариваться в магазинах, где все?)) ну или ап темы!))
2 Garykom
 
гуру
25.12.15
11:38
1. Лог
2. Лог
3. Лог
4. Лог
5. Ну ведите уже лог действий... кому вы там  "Сообщить("У Вас не настроена учетная запись почты.");" а?
6. Спамеры
7. Может просто почта в это время не работает?
3 pin4er
 
25.12.15
12:26
(2) как я уже писал, все отрабатывает, почтовая рассылка работает в первом пункте

почта настроена, иначе первое бы не отработало тоже

по второму все отрабатывает файл создается но не отправляеться...

я на свою и отправляю. Спам тут не причем.
4 tank68
 
25.12.15
12:27
ЛогСообщений = Новый ТекстовыйДокумент;
    СтрокаДата = ""+ТекущаяДата();
    СтрокаДата = СтрЗаменить(СтрокаДата,".","_");
    СтрокаДата = СтрЗаменить(СтрокаДата,":","-");  
    КаталогЛогФайлов ="G:\Sobytiya_obrabotchika\Log_vypolneniya";
    //КаталогЛогФайлов ="G:\1С_Архив\Импорт_физлиц\import_fl_"  + Формат(ТекущаяДата(), "ДФ=yyyy.MM.dd");
    КаталогНаДиске = Новый Файл(КаталогЛогФайлов);
    Если Не КаталогНаДиске.Существует() Тогда
        СоздатьКаталог(КаталогЛогФайлов);
    КонецЕсли;
    ИмяЛогФайла = КаталогЛогФайлов+"\Zagruzka_spravochnika_FL_"+СтрокаДата +".txt";
    ЛогСообщений.Вывод = ИспользованиеВывода.Разрешить;
    ВремяНачала = ТекущаяДата();
    ЛогСообщений.ДобавитьСтроку(""+ТекущаяДата()+" Начало выполнения");
    Сообщить(""+ТекущаяДата()+" Начало выполнения");
    
               /////Далее процедура которая дописывает лог

               ВремяОкончания = ТекущаяДата();
    ВремяВыполнения = ВремяОкончания - ВремяНачала;
    ВремяВыполненияМин = Цел(ВремяВыполнения/60);
    ВремяВыполненияСек = (ВремяВыполнения-ВремяВыполненияМин*60);
    ТекстВремяВыполнения = ("Обработка выполнялась с " + СокрЛП(ВремяНачала)+ " по "+СокрЛП(ВремяОкончания)+ " общее время выполнения "+ВремяВыполненияМин+" мин "+ВремяВыполненияСек+" сек ");
    
    ЛогСообщений.ДобавитьСтроку("///---///");
    ТекстСообщения7 = ("Обработано " + КоличествоВсего + " элементов, из них:" + Символы.ПС
    + Символы.Таб + КоличествоСотрудников + " сотрудников," + Символы.ПС
    + Символы.Таб + КоличествоУволенных + " уволенных," + Символы.ПС
    + Символы.Таб + КоличествоСтажеров + " стажеров"+ Символы.ПС
    +ТекстВремяВыполнения);    
    ТелоПисьма = ТелоПисьма + Символы.ПС+ТекстСообщения7;
    ЛогСообщений.ДобавитьСтроку(ТекстСообщения7);
    Сообщить("Завершено " + ТекущаяДата());
    ЛогСообщений.ДобавитьСтроку(""+ТекущаяДата()+" Окончание выполнения");
    ЛогСообщений.Записать(ИмяЛогФайла);
    
    ПочтаАдминистратору =  Новый ИнтернетПочта;
    ПрофильПочты = Новый ИнтернетПочтовыйПрофиль;
    ПрофильПочты.АдресСервераSMTP = "server";
    ПрофильПочты.ПортSMTP = 25;
    ПрофильПочты.Пользователь = "login";
    ПрофильПочты.Пароль = "pass";
    
    СообщениеАдминистратору = Новый ИнтернетПочтовоеСообщение;
    СообщениеАдминистратору.Тема  = "Импорт справочника физические лица "+ ТекущаяДата();
    СообщениеАдминистратору.Отправитель      = "отправитель";
    СообщениеАдминистратору.Получатели.Добавить("получатель");
    СообщениеАдминистратору.Получатели.Добавить("Кому ещё отправить");
    СообщениеАдминистратору.Вложения.Добавить(ИмяЛогФайла);
    СообщениеАдминистратору.Тексты.Добавить(ТелоПисьма);    
    ПочтаАдминистратору.Подключиться(ПрофильПочты);
    Попытка
        ПочтаАдминистратору.Послать(СообщениеАдминистратору);
    Исключение
    КонецПопытки;
    ПочтаАдминистратору.Отключиться();
5 tank68
 
25.12.15
12:28
(4) И таким образом у меня все ночные процедуры отрабатывают если файл не отправлен он все равно на диске лежит
6 pin4er
 
25.12.15
12:31
(5) да файл у меня тоже на диске лежит для архива, просто надо чтобы отправлялось...

а то так с утра зашел в почту и посмотрел, ага в этой номенклатуре есть изменения, значит допустим ее срочно надо распродаватать...
7 tank68
 
25.12.15
12:36
В Тексты добавь проверку на получилось или нет отправить записанный файл или же дублируй туда данные
СообщениеАдминистратору.Тексты.Добавить(ТелоПисьма);
8 pin4er
 
25.12.15
16:38
(7) Вообщем добавил, результат:

1. Если из 1с сам запускаю, все ок.
2. если руками запускаю батник, все ок.
3. Если запускаю из планировщика, та же фигня, отрабатывает, а рассылки нет.... печаль какая-то
9 Garykom
 
гуру
25.12.15
16:40
(8) Скажи... а если батник из планировщика?
10 Garykom
 
гуру
25.12.15
16:41
(9)+ в смысле задание то от чьего имени в планировщике?
11 Fragster
 
гуру
25.12.15
16:42
я бы создал документ электронное письмо исходящее, и дождался, пока он уйдет с помощью рег задания. заодно, если не уходит - можно потом посмотреть, что как.
12 Лефмихалыч
 
25.12.15
16:45
(11) +100500!
13 pin4er
 
25.12.15
16:47
(9) И так запускается батник из планировщика, с галочкой "Выполнять вне зависимости от регистрации пользователя"

(10) под админом, с полными правами как полагается
14 pin4er
 
25.12.15
16:49
(11) на досуге попробую, но думаю тут в чем то другая фишка...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.