Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 мая 2024, 11:42

Ошибка - Значение не является значение объектного типа(ПолучитьРодителя)

Автор fruitella, 21 апр 2023, 15:10

0 Пользователей и 1 гость просматривают эту тему.

fruitella

Добрый день!

Подскажите в связи с чем может возникать данная ошибка? Гугл дает несколько вариантов:
1. Некорректная ссылка
2. Некорректный тип данных, который вызывается у объекта Родитель
3. Пытался продебагать, разбил обращение к ссылкам с выводом в консоль. Ввожу в дебагере, где вычислить значения данный кусок - Элементы.ДеревоТоваров1.ТекущиеДанные - выдает все ок, но при вызове ПолучитьРодителя(); появляется эта ошибка:
Ошибка - Значение не является значение объектного типа(ПолучитьРодителя) в модуле Документ.Форма.Форма1.Форма.ФормаДокумента.Форма

Если не сложно, подскажите как еще провалиться внутрь метода, пробую через f11, что-то не хочет или я что-то не так делаю

&НаКлиенте
Процедура ДеревоТоваров1ПриАктивизацииЯчейки(Элемент)

Попытка
//Родитель = Элементы.ДеревоТоваров1.ТекущиеДанные.ПолучитьРодителя(); //Значение не является значением объектного типа(ПолучитьРодителя)

Сообщить("Создаем объект");
Родитель = Элементы.ДеревоТоваров1.ТекущиеДанные;
Сообщить("Обращаемся к схеме - статус ок");
           
Сообщить("Попытка вызвать метод ПолучитьРодителя у объекта Родитель");
Родитель.ПолучитьРодителя();

Исключение
Сообщить("Ошибка во время вызова функции");
Возврат;
КонецПопытки;

МассивПоказыватьКнопки = Новый Массив;
МассивПоказыватьКнопки.Добавить("Наименование");
МассивПоказыватьКнопки.Добавить("ПоставщикКПоказу");

Если МассивПоказыватьКнопки.Найти(СтрЗаменить(Элементы.ДеревоТоваров1.ТекущийЭлемент.Имя, "ДеревоТоваров1", "")) = Неопределено Тогда
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаВыбора = Неопределено;
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаОчистки = Неопределено;
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаОткрытия = Неопределено;
Иначе
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаВыбора = Истина;
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаОчистки = Истина;
Элементы.ДеревоТоваров1.ТекущийЭлемент.КнопкаОткрытия = Истина;
КонецЕсли;

ТекущаяСтрока = Элементы.ДеревоТоваров1.ТекущиеДанные;
Если ТекущаяСтрока <> Неопределено Тогда
Элементы.ДеревоТоваров1ЕдиницаИзмерения.Доступность = ТекущаяСтрока.Номенклатура = ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка");
Если Элементы.ДеревоТоваров1.ТекущиеДанные.ЕдиницаИзмерения = Неопределено Тогда
Элементы.ДеревоТоваров1.ТекущиеДанные.ЕдиницаИзмерения = "";
КонецЕсли;
КонецЕсли;

Если Родитель = Неопределено Тогда

МассивДоступныхКолонок = Новый Массив;
МассивДоступныхКолонок.Добавить("Наименование");
МассивДоступныхКолонок.Добавить("Комментарий");
МассивДоступныхКолонок.Добавить("КоличествоУпаковок");
МассивДоступныхКолонок.Добавить("Цена");
МассивДоступныхКолонок.Добавить("Сумма");
МассивДоступныхКолонок.Добавить("БазоваяЦена");
МассивДоступныхКолонок.Добавить("БазоваяСумма");
МассивДоступныхКолонок.Добавить("Статус");
МассивДоступныхКолонок.Добавить("ЕдиницаИзмерения");
МассивДоступныхКолонок.Добавить("ПроцентРучнойСкидки");
МассивДоступныхКолонок.Добавить("СуммаРучнойСкидки");

Если МассивДоступныхКолонок.Найти(СтрЗаменить(Элементы.ДеревоТоваров1.ТекущийЭлемент.Имя, "ДеревоТоваров1", "")) = Неопределено Тогда
Элементы.ДеревоТоваров1.ТекущийЭлемент.ТолькоПросмотр = Истина;
Иначе
Если СтрЗаменить(Элементы.ДеревоТоваров1.ТекущийЭлемент.Имя, "ДеревоТоваров1", "") = "Наименование" Тогда
КонецЕсли;
Элементы.ДеревоТоваров1.ТекущийЭлемент.ТолькоПросмотр = Ложь;
КонецЕсли;

Иначе

МассивНедоступныхКолонок = Новый Массив;
МассивНедоступныхКолонок.Добавить("ПотребностьID");
МассивНедоступныхКолонок.Добавить("ТоварID");
МассивНедоступныхКолонок.Добавить("Добавлена");
МассивНедоступныхКолонок.Добавить("ТипПоставщика");
МассивНедоступныхКолонок.Добавить("Артикул");

Если МассивНедоступныхКолонок.Найти(СтрЗаменить(Элементы.ДеревоТоваров1.ТекущийЭлемент.Имя, "ДеревоТоваров1", "")) = Неопределено Тогда
Элементы.ДеревоТоваров1.ТекущийЭлемент.ТолькоПросмотр = Ложь;
Иначе
Элементы.ДеревоТоваров1.ТекущийЭлемент.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;

КонецПроцедуры
.

Afinogen

Родитель.ПолучитьРодителя();

функцию  как процедуру вызываете

ТекРодитель = Родитель.ПолучитьРодителя();

так попробуйте

antoneus

Цитата: fruitella от 21 апр 2023, 15:10Элементы.ДеревоТоваров1.ТекущиеДанные - выдает все ок

А что именно выдает? Тип какой? В текущих данных может быть и Неопределено.

fruitella

antoneus, Так, уже стало немножко лучше.
Сделал как порекомендовали выше, ТекРодитель = Родитель.ПолучитьРодителя();

Я не верно сказал в первом сообщении, если вбить Элементы.ДеревоТоваров1 то получаю большой список типов данных. А если так Элементы.ДеревоТоваров1.ТекущиеДанные - то ничего.

П.с. Ошибка все также осталась, после открытия вкладки "Дерево товаров" в пользовательcкой версии, то сразу выбрасывается ошибка как я указал ранее и подсвечивает соответственно теперь поле ТекРодитель = Родитель.ПолучитьРодителя();
 

antoneus

А после открытия вкладки "Дерево товаров" дерево пустое?

fruitella


antoneus

А событие срабатывает. А текущих данных - нет. Поэтому:

Родитель = Элементы.ДеревоТоваров1.ТекущиеДанные;
Если Родитель <> Неопределено Тогда
    ТекРодитель = Родитель.ПолучитьРодителя()
КонецЕсли;

fruitella

antoneus, Спасибо, теперь ошибка пропала  :zebzdr: . Просьба не закрывать тему, уточню в пн. у коллег по корректности.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск