Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Использование ссылки из запроса

Использование ссылки из запроса
Я
   4007
 
01.10.21 - 09:01
Имею фрагмент программы
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| Справочник.Номенклатура.Ссылка как ССЫЛКА
| из Справочник.Номенклатура
| ГДЕ (КОДМАТ = &КодМат) ";
Запрос.УстановитьПараметр("КодМат","111");

Выб=Запрос.Выполнить().Выбрать().Следующий();
Если Выб = Ложь тогда
  Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден");
  ФлагОШИБКА = Истина ;
  Продолжить;
Конецесли;

// при попытке выполнить эту строку сообщение "Значение не является значением объектного типа (Ссылка)"
Мат = Выб.Ссылка ;

Где грабли?
   DimVad
 
1 - 01.10.21 - 09:04
(0) А Вы не пробовали открыть этот запрос конструктором ?
   ДенисЧ
 
2 - 01.10.21 - 09:05
Если Выб = Ложь тогда
 сообщить()
иначе
  ном = выб.Ссылка;
КонецЕсли;

И проверь русские-английские буквы в ссылке.

ЗЫ, и да, не НАДО КРИЧАТЬ НА 1с. Она этого не любит.
   pechkin
 
3 - 01.10.21 - 09:06
Выб это булево.
Не надо все в 1 строку писать
   Kassern
 
4 - 01.10.21 - 09:09
(0) кто же вас так учил результат запроса обходить?
Выборка=Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
 Материал=Выборка.Ссылка;
КонецЕсли;
   Малыш Джон
 
5 - 01.10.21 - 09:50
(0)>>Где грабли?

так в (0) же :)
   Ненавижу 1С
 
6 - 01.10.21 - 10:20
Если Выб = Ложь тогда//здесь вы предполагаете, что значение логического типа


Мат = Выб.Ссылка ;//а здесь, что это выборка


//так работать не будет!!!
   lubitelxml
 
7 - 01.10.21 - 10:25
Первый раз такую жесть вижу при составление запроса "Справочник.Номенклатура.Ссылка как ССЫЛКА"
   fisher
 
8 - 01.10.21 - 10:27
(7) Почему жесть? Синоним как синоним. ЕМНИП, без этого дефолтный синоним будет НоменклатураСсылка
   VladZ
 
9 - 01.10.21 - 10:28
(0) Городить какую-то жесть, только для того, чтобы найти элемент по коду?

Ты хотя бы сюда заглядывай: https://helpme1c.ru/spravochniki-v-yazyke-1s-8-v-primerax
Половина вопросов сразу отпадет.
   lubitelxml
 
10 - 01.10.21 - 10:29
(8) почему не написать просто "Ссылка" без алиаса? Все норм будет. Меня смутило вот это - "Справочник.Номенклатура"
   fisher
 
11 - 01.10.21 - 10:30
Ну а по сабжу - в (6) ответ. В переменную "Выб" записали булево, а потом пытаетесь работать как с выборкой. К вопросу о корректных именах переменных.
   fisher
 
12 - 01.10.21 - 10:32
(10) А! Ну, видно же что новичок и бест-практисес не впитал еще.
   djsns
 
13 - 01.10.21 - 15:52
Запрос.Текст="ВЫБРАТЬ
| СпрНом.Ссылка как ССЫЛКА
| из Справочник.Номенклатура КАК Спрном
...
   Rovan
 
14 - 01.10.21 - 16:20
Выб=Запрос.Выполнить().Выбрать();
Если Выб.Следующий() = Ложь тогда

...
Иначе
  Вот ваша ссылка, сударь = Выб.Ссылка
КонецЕсли
   Kassern
 
15 - 01.10.21 - 16:21
(14) я для кого в (4)  старался?)
   1Сергей
 
16 - 01.10.21 - 16:24
Правильный ответ (4)
   Мультук
 
17 - 01.10.21 - 16:26
(15)

У тебя "иначе" не было :-)

P.S.
Интересно крики "фу-фу то же сравнивает булево с булевым и пишет ЕСЛИ НекаяФункция() = Ложь ТОГДА " будут ?

Список тем форума
 
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.