Имя: Пароль:
1C
1С v8
обращение
0 Vasus55
 
26.01.12
14:16
у меня такой вопрос как можно обойти такой нюанс???
есть табличное поле в него выгружены данные запроса с документов, при нажатии на кнопку с помощью ТекущиеДанные нахожу выбранный документ и удаляю из базы, но как только дело доходит до последней строки выскаивает ошибка, но при этом документ все равно удаляется из базы
Значение не является значением объектного типа (Организация)
орган=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Организация;
как можно переловить эту ошибку???
1 Vasus55
 
26.01.12
14:16
может быть вопрос глупый, но все таки...
2 Wobland
 
26.01.12
14:23
о чём заголовок? а удалять непосредственно - зло
3 le_
 
26.01.12
14:24
Вероятно, ошибка возникает уже после того, как удаляется последняя строка и ТекущиеДанные становится равным Неопределено. А у Неопределено нет организации.

Добавь условие:
Если ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные <> Неопределено Тогда
   орган = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Организация;
КонецЕсли;
4 Vasus55
 
26.01.12
14:24
(2) может быть как то по другому можно обращаться к табличному полю в моем случае?
5 Wobland
 
26.01.12
14:26
(4) смысл этого присвоения поясни плз
6 Vasus55
 
26.01.12
14:28
потом поэтому реквизиту осуществляю поиск по документам!
7 Wobland
 
26.01.12
14:30
а делать присвоение _до_ не догадался? пытаешься присвоить NULL^W то, чего нет
8 Vasus55
 
26.01.12
14:30
(3) все равно та жа самая ошибка((
9 Wobland
 
26.01.12
14:30
и вообще, имхается мне, что эта организация совсем не только в текущих данных живёт. и вообще, пахнет какой-то ересью это всё
10 Vasus55
 
26.01.12
14:32
ну вот код, только сильно не бейте...
// удаляем документ из базы
 Если ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные <> Неопределено Тогда
строка=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Организация;
ТекстВопроса = "Удалить клиента из базы?!";
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ОК);

Если Ответ = КодВозвратаДиалога.ОК Тогда
док=Документы.ОбслуживаемыеКлиенты.НайтиПоРеквизиту("Контрагент",строка);
док.ПолучитьОбъект().Удалить();
КонецЕсли;

// удаляем с ТП данные
ТабличноеПоле1.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока);
ЭлементыФормы.ТабличноеПоле1.ОбновитьСтроки();
   
ТабличноеПоле3.Очистить();
ТабличноеПоле4.Очистить();

// удаляем соотвествующий элемент справочника
спр=Справочники.Организации;
НайденныйЭлемент=спр.НайтиПоНаименованию(строка);
ОбъектСправ=НайденныйЭлемент.ПолучитьОбъект();
ОбъектСправ.Удалить();
КонецЕсли;
11 le_
 
26.01.12
14:33
(10) Мне для статистики: ты программист, менеджер, бухгалтер, админ или так, мимо проходил?
12 Wobland
 
26.01.12
14:34
док=Документы.ОбслуживаемыеКлиенты.НайтиПоРеквизиту("Контрагент",строка);
док.ПолучитьОбъект().Удалить();

сколько документов по контрагенту останется после этого?
13 Wobland
 
26.01.12
14:35
что думаешь делать, когда поиск не найдёт?
14 Vasus55
 
26.01.12
14:40
(11) ну то что либо так.. просто  мне это интересно и хочу научиться...
15 Vasus55
 
26.01.12
14:43
(12)у меня по каждому контрагенту всегда только один документ создается, он мне какую строку я выбрал тот документ и удаляет...
16 Wobland
 
26.01.12
14:43
(14) учись: УстановитьПометкуУдаления()
17 Vasus55
 
26.01.12
14:43
(13) не соображу....((
18 Wobland
 
26.01.12
14:44
(15) всегда? ограничения программные или организационные? во втором случае - не аргумент.
19 Vasus55
 
26.01.12
14:47
(18)1)ну сколько пробывал удалять всегда было все верно
и вся проблема в этих текущих данных((((
20 Vasus55
 
26.01.12
14:48
(18) как бы вы в моем случае поступили?
21 Wobland
 
26.01.12
14:50
(20) пробовал бы с буквой О писал. задачу опиши или постучись в аську, я ухожу
22 Vasus55
 
26.01.12
15:04
(21)добавляюся!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан