![]() |
|
Использование ссылки из запроса | ☑ | ||
---|---|---|---|---|
0
4007
01.10.21
✎
09:01
|
Имею фрагмент программы
Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | Справочник.Номенклатура.Ссылка как ССЫЛКА | из Справочник.Номенклатура | ГДЕ (КОДМАТ = &КодМат) "; Запрос.УстановитьПараметр("КодМат","111"); Выб=Запрос.Выполнить().Выбрать().Следующий(); Если Выб = Ложь тогда Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден"); ФлагОШИБКА = Истина ; Продолжить; Конецесли; // при попытке выполнить эту строку сообщение "Значение не является значением объектного типа (Ссылка)" Мат = Выб.Ссылка ; Где грабли? |
|||
1
DimVad
01.10.21
✎
09:04
|
(0) А Вы не пробовали открыть этот запрос конструктором ?
|
|||
2
ДенисЧ
01.10.21
✎
09:05
|
Если Выб = Ложь тогда
сообщить() иначе ном = выб.Ссылка; КонецЕсли; И проверь русские-английские буквы в ссылке. ЗЫ, и да, не НАДО КРИЧАТЬ НА 1с. Она этого не любит. |
|||
3
pechkin
01.10.21
✎
09:06
|
Выб это булево.
Не надо все в 1 строку писать |
|||
4
Kassern
01.10.21
✎
09:09
|
(0) кто же вас так учил результат запроса обходить?
Выборка=Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Материал=Выборка.Ссылка; КонецЕсли; |
|||
5
Малыш Джон
01.10.21
✎
09:50
|
(0)>>Где грабли?
так в (0) же :) |
|||
6
Ненавижу 1С
гуру
01.10.21
✎
10:20
|
Если Выб = Ложь тогда //здесь вы предполагаете, что значение логического типа
Мат = Выб.Ссылка ; //а здесь, что это выборка //так работать не будет!!! |
|||
7
lubitelxml
01.10.21
✎
10:25
|
Первый раз такую жесть вижу при составление запроса "Справочник.Номенклатура.Ссылка как ССЫЛКА"
|
|||
8
fisher
01.10.21
✎
10:27
|
(7) Почему жесть? Синоним как синоним. ЕМНИП, без этого дефолтный синоним будет НоменклатураСсылка
|
|||
9
VladZ
01.10.21
✎
10:28
|
(0) Городить какую-то жесть, только для того, чтобы найти элемент по коду?
Ты хотя бы сюда заглядывай: https://helpme1c.ru/spravochniki-v-yazyke-1s-8-v-primerax Половина вопросов сразу отпадет. |
|||
10
lubitelxml
01.10.21
✎
10:29
|
(8) почему не написать просто "Ссылка" без алиаса? Все норм будет. Меня смутило вот это - "Справочник.Номенклатура"
|
|||
11
fisher
01.10.21
✎
10:30
|
Ну а по сабжу - в (6) ответ. В переменную "Выб" записали булево, а потом пытаетесь работать как с выборкой. К вопросу о корректных именах переменных.
|
|||
12
fisher
01.10.21
✎
10:32
|
(10) А! Ну, видно же что новичок и бест-практисес не впитал еще.
|
|||
13
djsns
01.10.21
✎
15:52
|
Запрос.Текст="ВЫБРАТЬ
| СпрНом.Ссылка как ССЫЛКА | из Справочник.Номенклатура КАК Спрном ... |
|||
14
Rovan
гуру
01.10.21
✎
16:20
|
Выб=Запрос.Выполнить().Выбрать();
Если Выб.Следующий() = Ложь тогда ... Иначе Вот ваша ссылка, сударь = Выб.Ссылка КонецЕсли |
|||
15
Kassern
01.10.21
✎
16:21
|
(14) я для кого в (4) старался?)
|
|||
16
1Сергей
01.10.21
✎
16:24
|
Правильный ответ (4)
|
|||
17
Мультук
гуру
01.10.21
✎
16:26
|
(15)
У тебя "иначе" не было :-) P.S. Интересно крики "фу-фу то же сравнивает булево с булевым и пишет ЕСЛИ НекаяФункция() = Ложь ТОГДА " будут ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |