59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
1
1C 8.x

Не работает исключение

27.06.2016, 07:11. Показов 2004. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Столкнулся с такой проблемкой-есть обработка которая получает данные с внеших источников и записывает в ТЗ(после указания даты). Проблем нет, данные получаются, но! Если выбрать дату на которой данных нету, и то 1С вываливается с ошибкой, ругается что в таблице данных нету. Включил в конфигураторе "остновку по ошибке" и показывает на строку начала цикла
1C
1
Для Каждого Элемент Из МояПерем.TableResult.diffgram.Table.Tables Цикл
Вопрос: можно ли в исключение засунуть цикл? Пробовал, но 1с "незамечает" исключение и всё равно вываливается с ошибкой
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2016, 07:11
Ответы с готовыми решениями:

Не работает исключение
Ещё раз всем привет. Написал задачку для проверки throw. Но у меня не получается. Задача...

Не работает одно исключение ввода
Скажем так, это часть проги, должна проверять ввод значений, чтоб они были не нулевые, это условие...

Вылетает исключение и не работает программа
Всем привет! Битый час уже не могу понять почему вылетает исключение и не работает программа. ...

Не работает программа, вылетает исключение
в 39 строчке выскакивает ошибка "Вызвано исключение по адресу 0x002F22E7 в Проект3.exe: 0xC0000005:...

13
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
27.06.2016, 10:08 2
Цитата Сообщение от Briolin Посмотреть сообщение
Пробовал
Давай код.
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
27.06.2016, 11:09  [ТС] 3
SHIFT_969,

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Попытка
Для Каждого Элемент Из Новости.NewsResult.diffgram.NewsInfo.News Цикл 
            
        НоваяСтрокаТЗ = ТаблицаНовостей.Добавить();
        НоваяСтрокаТЗ.IDДокумента = Элемент.Doc_id;
        НоваяСтрокаТЗ.ДатаДокумента = Элемент.DocDate;
        НоваяСтрокаТЗ.Заголовок  = Элемент.Title;
        НоваяСтрокаТЗ.URLДокумента  = Элемент.Url;
 
    КонецЦикла;
Исключение
    Сообщить("На выбранную дату записей нет");
КонецПопытки;
Добавлено через 8 минут
1C
1
2
{Обработка.ПолучениеДанных.Форма.ПолучениеНовостейСервера.Форма(38)}: Поле объекта не обнаружено (NewsInfo)
    Для Каждого Элемент Из Новости.NewsResult.diffgram.NewsInfo.News Цикл
0
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
27.06.2016, 11:56 4
1C
1
2
3
4
Попытка
НовостиЭлементы = Новости.NewsResult.diffgram.NewsInfo.News; 
Для Каждого Элемент Из НовостиЭлементы Цикл
//....
А если так?
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
28.06.2016, 06:32  [ТС] 5
SHIFT_969, всё равно вываливается с ошибкой, но сообщение отобразила 1с вот это:
1C
1
Сообщить("На выбранную дату записей нет");
Добавлено через 18 часов 22 минуты
Тема актуальна...
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
28.06.2016, 14:52 6
Briolin, Напиши в конце
1C
1
Сообщить(Элемент.Doc_id)
хотя бы будет понятно на каком элементе вываливается, если на первом же свалится
то после каждой строки пиши сообщить и что ты там присваиваешь
1C
1
2
3
4
НоваяСтрокаТЗ.IDДокумента = Элемент.Doc_id;
        НоваяСтрокаТЗ.ДатаДокумента = Элемент.DocDate;
        НоваяСтрокаТЗ.Заголовок  = Элемент.Title;
        НоваяСтрокаТЗ.URLДокумента  = Элемент.Url;
методом исключения
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
29.06.2016, 08:12  [ТС] 7
Phil, непонял, ты так предлагаешь что бы я написал:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Попытка
    НовостиЭлементы = Новости.NewsResult.diffgram.NewsInfo.News; 
       Для Каждого Элемент Из НовостиЭлементы Цикл
        НоваяСтрокаТЗ = ТаблицаНовостей.Добавить();
        НоваяСтрокаТЗ.IDДокумента = Элемент.Doc_id;
        
        НоваяСтрокаТЗ.ДатаДокумента = Элемент.DocDate;
        НоваяСтрокаТЗ.Заголовок  = Элемент.Title;
        НоваяСтрокаТЗ.URLДокумента  = Элемент.Url;
 
    КонецЦикла;
    Исключение
   Сообщить(Элемент.Doc_id);
КонецПопытки;
КонецПроцедуры
????
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
29.06.2016, 10:09 8
Лучший ответ Сообщение было отмечено Briolin как решение

Решение

Briolin,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Попытка
    НовостиЭлементы = Новости.NewsResult.diffgram.NewsInfo.News; 
       Для Каждого Элемент Из НовостиЭлементы Цикл
        НоваяСтрокаТЗ = ТаблицаНовостей.Добавить();
        НоваяСтрокаТЗ.IDДокумента = Элемент.Doc_id;
        
        НоваяСтрокаТЗ.ДатаДокумента = Элемент.DocDate;
        НоваяСтрокаТЗ.Заголовок  = Элемент.Title;
        НоваяСтрокаТЗ.URLДокумента  = Элемент.Url;
     Сообщить(Элемент.Doc_id);
    КонецЦикла;
    Исключение
  
КонецПопытки;
КонецПроцедуры
чтобы узнать на каком элементе вываливается по ошибке
1
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
29.06.2016, 11:58 9
ТС, тебе программа черным по белому говорит
1C
1
Поле объекта не обнаружено (NewsInfo)
, не Новости.NewsResult.diffgram.NewsInfo.News, а Новости.NewsResult.diffgram.NewsInfo.News
PS У тебя в цикл не входит, что тут непонятного.

Добавлено через 3 минуты
Цитата Сообщение от Briolin Посмотреть сообщение
Вопрос: можно ли в исключение засунуть цикл? Пробовал, но 1с "незамечает" исключение и всё равно вываливается с ошибкой
Зачем тебе вообще исключения, посмотри какое значение принимает NewsInfo когда нет новостей (скорей всего неопределено или null) и проверяй его перед циклом.
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
29.06.2016, 20:27  [ТС] 10
Цитата Сообщение от Volexovich Посмотреть сообщение
Зачем тебе вообще исключения, посмотри какое значение принимает NewsInfo когда нет новостей (скорей всего неопределено или null) и проверяй его перед циклом.
Я поставил точку останова на строке
1C
1
Для Каждого Элемент Из Новости.NewsInfoResult.diffgram.NewsInfo.News Цикл
Потом выбираю "вычислить выражение" и вижу что Новости.NewsInfoResult.diffgram.NewsInfo значение "Объект XDTO". Это тогда когда новости есть.
Потом я перезапускаю 1С , выбираю дату на которой нету новостей, вычисляю выражение и вижу значение- "Ожидается выражение". Это даже не null уже
0
Модератор
Эксперт 1С
3783 / 2963 / 589
Регистрация: 10.03.2011
Сообщений: 11,665
Записей в блоге: 1
29.06.2016, 21:01 11
Briolin, а какой тип объекта у diffgram Новости.NewsInfoResult.diffgram ???
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
30.06.2016, 09:27  [ТС] 12
Dethmontt, тоже Объект XDTO. Даже если новостей нет
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
30.06.2016, 09:27 13
К чему такие сложности?
Выясни тип у Новости.NewsInfoResult.diffgram.NewsInfo при наличии новостей и проверяй на этот тип перед анализом массива новостей, а может вообще где то в объекте NewsInfoResult присутствует поле указывающее на количество новостей, изучи объект по подробней.
0
Модератор
Эксперт 1С
3783 / 2963 / 589
Регистрация: 10.03.2011
Сообщений: 11,665
Записей в блоге: 1
30.06.2016, 11:43 14
Цитата Сообщение от Volexovich Посмотреть сообщение
а может вообще где то в объекте NewsInfoResult присутствует поле указывающее на количество новостей, изучи объект по подробней.
Полностью поддерживаю
0
30.06.2016, 11:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2016, 11:43
Помогаю со студенческими работами здесь

Почему не работает исключение целых слов?
Здравствуйте! Помогите, пожалуйста. # Строка $string = ' word132432 twt24234 wetew323432 '; ...

Необработанное исключение по адресу на х86, на х64 работает норм
ParWin = new Wnd (WS_EX_ACCEPTFILES, "FRM_TEXTEDIT", "Flat Assembler", WS_OVERLAPPEDWINDOW,...

Цикл работает не так как я хочу. Исключение IndexOutOfRangeException
Программа должна после каждого считывания строки записывать ее в ячейку массива и прибавлять к...

Исключение работает не корректно: при вводе размера массива -2 не срабатывает catch (bad_alloc)
#include <iostream> #include <vector> #include <new> #include <stdexcept> using namespace std;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru