Имя: Пароль:
1C
1C 7.7
v7: Прерывается выполнение процедуры (попытка-исключение)
0 1dvd
 
10.07.14
13:10
Некое задание выполняется ночью, основной функционал которой вынесен в отдельную процедуру и обёрнут в попытку-исключение.
Очень часто выполнение процедуры прерывается, не вызываются никакие исключения. Выявить причины не могу.

Попытка
    ВыгрузитьПродажи(ВыбНачПериода, ВыбКонПериода);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

Так и должно быть? Даже если кто-то прервал работу пользователя, разве не должно вываливаться в исключение в таком случае? Как можно отследить?
1 mikecool
 
10.07.14
13:11
"Даже если кто-то прервал работу пользователя, разве не должно вываливаться в исключение в таком случае?" - с хрена ли? а если убить процесс?
2 VladZ
 
10.07.14
13:14
(0) Для контроля работы фоновых заданий нужно, чтобы это задание писало логи. Тогда и причины выявишь.
3 Ёпрст
 
10.07.14
13:14
пишите логи, в сторонюю табличку или файло, быстро найдёте причину.
А так, мот тупо отваливается, из-за банальной нехватки памяти..если в ТЗ какую-нить выгружаете с 200-ми колонками
4 1dvd
 
10.07.14
13:15
(1) хорошо, исключения быть не должно.
Верно ли утверждение, что если прервана работа программы и выполнение кода не вызвало исключения, то причной может быть только внешнее прерывание работы программы?
5 mikecool
 
10.07.14
13:15
(4) нет
6 1dvd
 
10.07.14
13:16
(3) так и пишу в текстовичок. Только толку нет. выполняетя, выполняется, потом бац и всё прервано. почему, кем, из-за чего - не понятно
7 1dvd
 
10.07.14
13:17
(5) какие ещё могут быть причины?
8 VladZ
 
10.07.14
13:17
(6) Прерывается в одном и том же месте?
9 пипец
 
10.07.14
13:18
отрубается сеанс - ответ от сервера кирдык - комп заснул , еще стотыщмильонов причин
10 ДенисЧ
 
10.07.14
13:18
(7)
Если ЛунаПерешлаВЗнакВодолея() Тогда
  Возврат;
КонеЦЕсли;
11 1dvd
 
10.07.14
13:18
(8) нет, в разных местах и не систематически
12 mikecool
 
10.07.14
13:19
(10) это как?
13 1dvd
 
10.07.14
13:19
(10) тогда были бы записи в логах, которые идут после кода(0)
14 Ёпрст
 
10.07.14
13:21
(4) нет.
см (3) второе предложение..
+ 1с-ину завалить тупым кодом, даже в одну строчу, как 2 пальца
15 1dvd
 
10.07.14
13:22
(9) во!

Вопрос. Если 1С работает, а служба SQL зависла, вывалится в исключение, например, при выполнении черного запроса, или нет?
16 vinogradъ
 
10.07.14
13:22
(12) действительно, это ж не снеговик, как так можно в 7-ке
17 пипец
 
10.07.14
13:36
(15) вообще если скуль завис то ответ от сервера 0 по таймауту - какое исключение ? базы то нету
18 1dvd
 
10.07.14
13:36
(17) таймаут - это и есть исключение. не?
19 пипец
 
10.07.14
13:37
(18) нет ... с чего бы ?
20 пипец
 
10.07.14
13:38
соннект =0 код в 7-ке не отработает - не в чем отрабатывать...
21 пипец
 
10.07.14
13:39
в скуле ограничение по таймауту стоит ?
ЗЫ а если  еще и OLE работает - то ваще весело
22 1dvd
 
10.07.14
13:39
на кой ляд тогда нужна эта попытка? На ноль делить и руками вызывать только?
23 пипец
 
10.07.14
13:44
(22) попытка например - если объект заблокирован для записи ... или при  проверках на запись когда остатки проверяются
ЗЫ это НЕ внешнее событие ... ртфм ;))
24 VladZ
 
10.07.14
13:46
(22) А ты думал, что это "волшебная таблетка от всех болезней"?
25 пипец
 
10.07.14
13:48
26 1dvd
 
11.07.14
09:07
Вот восьмерка мне честно сказала, что потеряла связь с сервером. А семерка не может

11.07.2014 4:57:45 {Обработка.ЗагрузкаДанных.МодульОбъекта(626)}: Ошибка при вызове метода контекста (Записать): Ошибка обращения к серверу 1С:Предприятия.:  server_addr=tcp://SERVER:1560 descr=recv returns zero, disconnected line=1329 file=Src\DataExchangeTcpClientImpl.cpp
27 пипец
 
11.07.14
09:42
(26) патамучта васьмерка клиент сервер (через скуль) и у нее есть прослойка в виде сервера 1С , в 7-ке этого нет
ЗЫ 6.0 помнитса тоже в варианте - клиент серверная была - и чо теперь , она тоже должна была все сообщать ? :)))
28 пипец
 
11.07.14
09:43
(27)+ и не нужно путать мягкое с соленым ;))
29 КонецЦикла
 
11.07.14
10:06
Логи помогут, отладчик.
Тему переименовал...
30 КонецЦикла
 
11.07.14
10:07
Попытка - исключение ничего не даст в данном случаем, можно убрать
2 + 2 = 3.9999999999999999999999999999999...