Попытка Исключение КонецПопытки в функциях (7.7)

На главную страницу форума

Страницы: 1 |

23.10.2014 15:21:00 Обращения на текущей странице: -1-4-
* 0 * andrewalexk2 : странная фишка, в сабже в исключениях записываю элемент справочника...после записи читаю его наименование - 1с видит
захожу в справочник - нету...и передавал код записи элемента в процедуру и вставлял попытку и транзакцию...как языком...
никто такой баг не встречал?
23.10.2014 15:29:26
* 1 * Дуб : (0) код целиком посмотреть можно?
23.10.2014 15:29:49 Обращения на текущей странице: -3-
* 2 * andrewalexk2 : думаешь будет легче?
23.10.2014 15:30:56
* 3 * Дуб : (2) я пока вовсе не думаю. Чего-то ты недоговариваешь
23.10.2014 16:04:23
* 4 * andrewalexk2 : )
да нет никаких тайн
вот

Функция ПочтовыйСкрипт(smtpserver="",sendusername="",sendpassword="",to_,From="",Subject,TextBody,fn,fn2="",smtpport="",smtpauthenticate="",smtpusessl="",smtpconnectiontimeout="") Экспорт
fn_СЗ=СтрокуВСЗ(fn,"\");
Если fn_СЗ.РазмерСписка()>0 Тогда
fn0=fn_СЗ.ПолучитьЗначение(fn_СЗ.РазмерСписка());
КонецЕсли;
Если fn2<>"" Тогда
fn_СЗ=СтрокуВСЗ(fn2,"\");
Если fn_СЗ.РазмерСписка()>0 Тогда
fn20=fn_СЗ.ПолучитьЗначение(fn_СЗ.РазмерСписка());
КонецЕсли;
КонецЕсли;
//
ПроверитьЕстьЛиКаталог(КаталогИБ()+"mail\");
ПроверитьЕстьЛиКаталог(КаталогИБ()+"mail\sent\");
ПроверитьЕстьЛиКаталог(КаталогИБ()+"mail\outbox\");
Если smtpserver="" Тогда
smtpserver=СокрЛП(Константа.СМТПСервер);
КонецЕсли;
Если sendusername="" Тогда
sendusername=СокрЛП(Константа.СМТППользователь);
КонецЕсли;
Если From="" Тогда
From=СокрЛП(Константа.СМТПОтКого);
КонецЕсли;
Если smtpport="" Тогда
smtpport=Константа.СМТППорт;
КонецЕсли;
Если smtpauthenticate="" Тогда
smtpauthenticate=Число(Константа.СМТПАутентификация);
КонецЕсли;
Если smtpusessl="" Тогда
smtpusessl=Константа.СМТПССЛ;
КонецЕсли;
Если smtpconnectiontimeout="" Тогда
smtpconnectiontimeout=Константа.СМТПТаймАут;
КонецЕсли;
//
Если sendpassword="" Тогда
sendpassword=СМТППароль;
КонецЕсли;
//
Год=СТрока(ДатаГод(ТекущаяДата()));
Если глСМТП1.НайтиПоНаименованию(Год,1,1)=0 Тогда
глСМТП1.НоваяГруппа();
глСМТП1.Наименование=Формат(Год,"Ч(0)4");
глСМТП1.Записать();
КонецЕсли;
глСМТП2.ИспользоватьРодителя(глСМТП1.ТекущийЭлемент());
Месяц=Строка(Формат(ДатаМесяц(ТекущаяДата()),"Ч(0)2"));
Если глСМТП2.НайтиПоНаименованию(Месяц,1,1)=0 Тогда
глСМТП2.НоваяГруппа();
глСМТП2.Наименование=Формат(Месяц,"Ч(0)2");
глСМТП2.Записать();
КонецЕсли;
глСМТП3.ИспользоватьРодителя(глСМТП2.ТекущийЭлемент());
День=Строка(Формат(ДатаЧисло(ТекущаяДата()),"Ч(0)2"));
Если глСМТП3.НайтиПоНаименованию(День,1,1)=0 Тогда
глСМТП3.НоваяГруппа();
глСМТП3.Наименование=Формат(День,"Ч(0)2");
глСМТП3.Записать();
КонецЕсли;
глСМТП.ИспользоватьРодителя(глСМТП3.ТекущийЭлемент());
глСМТП.Новый();
глСМТП.СМТПСервер = smtpserver;
глСМТП.СМТППорт = smtpport;
глСМТП.СМТППользователь = sendusername;
глСМТП.СМТПОтКого = From;
глСМТП.СМТПССЛ = smtpusessl;
глСМТП.СМТПАутентификация = smtpauthenticate;
глСМТП.СМТПТаймАут = smtpconnectiontimeout;
глСМТП.СМТПКому = to_;
глСМТП.СМТПТема = Subject;
глСМТП.СМТПТело = TextBody;
глСМТП.Наименование=""+ТекущаяДата()+" "+ТекущееВремя();
//
try //
ScrptCtrl=СоздатьОбъект("MSscriptControl.scriptControl");
ScrptCtrl.Language="vbscript";
vbscode="Function sendmessage()
|Dim objMsg
|Dim Config
|Set objMsg = CreateObject(""CDO.Message"")
|Set Config = CreateObject(""CDO.Configuration"")
|Set Config = objMsg.Configuration
|Config(""http://schemas.microsoft.com/cdo/configuration/sendusing"") = 2
|Config(""http://schemas.microsoft.com/cdo/configuration/smtpserver"") = """+smtpserver+"""
|Config(""http://schemas.microsoft.com/cdo/configuration/smtpserverport"") = """+smtpport+""" '=25
|Config(""http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"") = """+smtpauthenticate+""" '=1
|Config(""http://schemas.microsoft.com/cdo/configuration/sendusername"") = """+sendusername+""" 'ящик отправителя
|Config(""http://schemas.microsoft.com/cdo/configuration/sendpassword"") = """+sendpassword+""" 'пароль на ящик
//|Config(""http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"") = 1 ' = 1 (базовая аутентификация), = 0 (без аутентификации/анонимно), = 2 (аутентификация NTLM)
|Config(""http://schemas.microsoft.com/cdo/configuration/smtpusessl"") = """+smtpusessl+""" '0
|Config(""http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"") = """+smtpconnectiontimeout+""" '=60
|Config.Fields.Update
|With objMsg
|.To = """+to_+""" 'ящик(и) получателя(-ей)
|.From = """+From+"""
|.Subject = """+Subject+"""
|.TextBody = """+TextBody+"""
|.AddAttachment """+fn+"""
|";
Если fn2<>"" Тогда
vbscode=vbscode+"
|.AddAttachment """+fn2+"""
|";
КонецЕсли;
vbscode=vbscode+"
|End With
|objMsg.Send
|End Function
|";
Если НазваниеНабораПрав()="Администратор" Тогда
message(vbscode);
КонецЕсли;
ScrptCtrl.AddCode(vbscode);
ScrptCtrl.Run("sendmessage");
месс=""+currenttime()+" Отправлено письмо для: "+trimall(to_)+". Прикреплен файл "+fn+?(fn2="",""," и "+fn2);
message(месс);
глСМТП.Статус = "ОК";
ФС.ПереименоватьФайл(fn,КаталогИБ()+"mail\sent\"+fn0,1);
Если ФС.СуществуетФайл(КаталогИБ()+"mail\sent\"+fn0)=1 Тогда
глСМТП.СМТПВложение=КаталогИБ()+"mail\sent\"+fn0;
КонецЕсли;
Если ФС.СуществуетФайл(fn2)=1 Тогда
ФС.ПереименоватьФайл(fn2,КаталогИБ()+"mail\sent\"+fn20,1);
Если ФС.СуществуетФайл(КаталогИБ()+"mail\sent\"+fn20)=1 Тогда
глСМТП.СМТПВложение1=КаталогИБ()+"mail\sent\"+fn20;
КонецЕсли;
КонецЕсли;
глСМТП.Записать();
Возврат 1
except
месс=ОписаниеОшибки();
message(месс,"!");
глСМТП.Новый();
глСМТП.СМТПСервер = smtpserver;
глСМТП.СМТППорт = smtpport;
глСМТП.СМТППользователь = sendusername;
глСМТП.СМТПОтКого = From;
глСМТП.СМТПССЛ = smtpusessl;
глСМТП.СМТПАутентификация = smtpauthenticate;
глСМТП.СМТПТаймАут = smtpconnectiontimeout;
глСМТП.СМТПКому = to_;
глСМТП.СМТПТема = Subject;
глСМТП.СМТПТело = TextBody;
глСМТП.Наименование=""+ТекущаяДата()+" "+ТекущееВремя();
глСМТП.Статус = месс;
ФС.ПереименоватьФайл(fn,КаталогИБ()+"mail\inbox\"+fn0,1);
Если ФС.СуществуетФайл(КаталогИБ()+"mail\inbox\"+fn0)=1 Тогда
глСМТП.СМТПВложение=КаталогИБ()+"mail\inbox\"+fn0;
КонецЕсли;
Если ФС.СуществуетФайл(fn2)=1 Тогда
ФС.ПереименоватьФайл(fn2,КаталогИБ()+"mail\inbox\"+fn20,1);
Если ФС.СуществуетФайл(КаталогИБ()+"mail\inbox\"+fn20)=1 Тогда
глСМТП.СМТПВложение1=КаталогИБ()+"mail\inbox\"+fn20;
КонецЕсли;
КонецЕсли;
глСМТП.Записать();
Возврат 0
endtry;
КонецФункции
23.10.2014 16:06:35
* 5 * andrewalexk2 : и получается удобно - вместо использования мапи и почтовых клиентов просто отправляем из регионов отчеты через московский смтп сервер
с ссл пока не ясно но в принципе руководство готово без смтп
и вместо логов - справочник с инфой и ссылкой на файлы вложений для контроля
и даже неотправленные можно переотправить кликом...было бы...если бы не этот глюк
23.10.2014 16:06:53
* 6 * andrewalexk2 : *готово без ссл
23.10.2014 16:10:24
* 7 * Дуб : иптить…
23.10.2014 16:11:30
* 8 * Дуб : Это там, где глСМТП?
23.10.2014 16:22:08
* 9 * andrewalexk2 : глобальная переменная
если уходит то есть после try - все пишется
если после except - пишется но не остается в бд
дуб знает почему
23.10.2014 16:25:35
* 10 * Дуб : Шайтанама.
Должно писаться.
А отладчиком на "Возврат 0" вставал, или где?
23.10.2014 16:31:53
* 11 * andrewalexk2 : да отладчик тоже глючит иногда
я вставил
////
сообщить(глсмтп.текущийЭлемент());
глСМТП.Записать();
сообщить(глсмтп.текущийЭлемент());
Возврат 0
///
без транзацкий
пишет скотина как будто есть в базе
а потом хуякс
и нет
23.10.2014 16:38:08
* 12 * Дуб : Должно быть.
ТИИ базы, или что там в семёрке было..
23.10.2014 16:44:28 Обращения на текущей странице: -14-
* 13 * andrewalexk2 : тоже так думал
неа
не помогло
тут скорее кривая работа механизма исключений с глобальным контекстом но как это обойти непонятно
23.10.2014 16:47:09
* 14 * Дуб : (13) тады ой. Тады надо гуру ждать, призывая их камланиями и мухоморами.
23.10.2014 17:00:01 Обращения на текущей странице: -16-
* 15 * andrewalexk2 : или плюнуть на механизм исходящих
23.10.2014 17:03:35 Обращения на текущей странице: -17-
* 16 * Дуб : (15) это не наш метод!
23.10.2014 17:05:30
* 17 * XLife : (16) точно... ты бы насрал!
23.10.2014 17:07:57 Обращения на текущей странице: -19-
* 18 * andrewalexk2 : )
зы
да сам не хочу...так было бы красиво...заходишь в письма...и переотправляешь..все как у взрослых
23.10.2014 17:43:26 Обращения на текущей странице: -20-21-
* 19 * Дуб : (18) это уже качественно-иной уровень! Это, можно сказать, одновременно уретра и мозжечок всего предприятия!
23.10.2014 19:03:16
* 20 * XLife : (19) ты зачем свой рентген в сеть выложил? мозжечок и урерта...

23.10.2014 20:40:03
* 21 * andrewalexk2 : (19) увы, эта библиотека только на смтп да нам и не надо иное

Страницы: 1 |

На главную страницу форума

  Зарегистрироваться

Дубовый форум ©