Имя: Пароль:
1C
1С v8
Ошибка при вызове метода контекста ПолучитьОбъект()
,
0 REDANGER
 
11.08.17
10:25
Всем добрый день! Пытаюсь определить является ли ссылка пустой, если нет то ПолучитьОбъект:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
Если НЕ Ссылка.ГрафикТО.Пустая() Тогда    
    Граф = Ссылка.ГрафикТО.Ссылка.ПолучитьОбъект();
Для каждого Элемент Из Граф.ТехОбсл Цикл
    Если Элемент.Маршрут = Ссылка.Маршрут Тогда
        Элемент.ТО = Истина;
        Элемент.Акт = Ссылка;
        Граф.Записать();
    КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры

Вообще задача следующая: есть документы ГрафикТО и АктТО; в ТЧ документа ГрафикТО имеются реквизиты: ТО (Булево) и Акт (ДокументСсылка.АктТО). Нужно чтобы при проведении документа АктТО, в ТЧ документа ГрафикТО, скажем так, фиксировался факт проведения Акта.

Но это не совсем получается...использовал ТочкуОстанова, начал проверять:
строка "Ссылка.ГрафикТО.Пустая()" выдает: Значение (Истина), Тип (Булево);
строка Ссылка.ГрафикТО.Ссылка.ПолучитьОбъект() выдает: Значение: (см. тему поста)

Скажите как быть в данной ситуации?
1 h-sp
 
11.08.17
10:29
во первых

Граф = Ссылка.ГрафикТО.ПолучитьОбъект();
2 YFedor
 
11.08.17
10:31
(0) если битая ссылка, то она не пустая и ПолучитьОбъект тоже выдаст ошибку
3 h-sp
 
11.08.17
10:41
(0)        Граф.Записать();


после цикла поставь
4 REDANGER
 
11.08.17
10:56
(1)(3) К сожалению, ничего не изменилось
5 REDANGER
 
11.08.17
10:57
(2) да не должна бы..я и с имеющимися пробовал и новые документы создавал - эффект один
6 h-sp
 
11.08.17
11:15
(5) значит в модуле объекта документа  ГрафикТО какая-то хрень написана. Найдите автора этого модуля.
7 AsadRoman
 
11.08.17
11:26
(0) А где процедурка-то выполняется?
8 REDANGER
 
11.08.17
11:48
(7) в модуле объекта АктаТО
9 h-sp
 
11.08.17
11:50
(8) ну покажите самый низ модуля объекта этого графика, там никакой туфты нет?
10 REDANGER
 
11.08.17
12:00
(9) модульобъекта графикаТО вообще пустой у меня
11 Вафель
 
11.08.17
12:10
А где сама ошибка то???
12 REDANGER
 
11.08.17
12:12
вообще фактически он ошибку не выдает, но и при проведении АктаТО в ТЧ документа ГрафикТО он не заполняет соответствующие колонки, в них как было пусто так и есть
13 Радим1987
 
11.08.17
12:15
Граф.ТехОбсл это таблица значений?
14 Радим1987
 
11.08.17
12:19

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
Если НЕ Ссылка.ГрафикТО.Пустая() Тогда    
    Граф = Ссылка.ГрафикТО.ПолучитьОбъект();

Для каждого Элемент Из Граф.ТехОбсл Цикл
    Если Элемент.Маршрут = Ссылка.Маршрут Тогда
        Элемент.ТО = Истина;
        Элемент.Акт = Ссылка;        
    КонецЕсли;
КонецЦикла;
Граф.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецПроцедуры
15 h-sp
 
11.08.17
12:32
(12) чего же ты нас за нос водишь тогда?
16 REDANGER
 
11.08.17
12:42
(13) это табличная часть документа ГрафикТО
(14) не помогает
(15) да нет желания за нос водить, хочется разобраться в чем причина, сорри если с первого раза неверно поставил вопрос. Ошибку он выдает в том случае если сделать так:

Если (без НЕ) Ссылка.ГрафикТО.Пустая() Тогда    
    Граф = Ссылка.ГрафикТО.ПолучитьОбъект();

тогда да ругается что: Ошибка при вызове метода контекста ПолучитьОбъект() и также пишет: Элемент не выбран
17 Радим1987
 
11.08.17
12:48
(14) ошибочка
Граф = Ссылка.ПолучитьОбъект();


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
Если НЕ Ссылка.ГрафикТО.Пустая() Тогда    
    Граф = Ссылка.ПолучитьОбъект();

Если не Граф.ТехОбсл.Пустая() тогда
Для каждого Элемент Из Граф.ТехОбсл Цикл
    Если Элемент.Маршрут = Ссылка.Маршрут Тогда
        Элемент.ТО = Истина;
        Элемент.Акт = Ссылка;        
    КонецЕсли;
КонецЦикла;
КонецЕсли;
Граф.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецПроцедуры

18 h-sp
 
11.08.17
12:54
(17) что-то вы заработались.
Основная теорема систематики: Новые системы плодят новые проблемы.