1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП
8.3.6
Здравоохранение, медицина, стоматология
Имею фрагмент программы
:
// при попытке выполнить это присвоение ошибка "Значение не является значением объектного типа (ССЫЛКА)"
Мат = Выб.Ссылка.ПолучитьОбъект() ;
В чем грабли?
:
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| Справочник.Номенклатура.Ссылка как ССЫЛКА
| из Справочник.Номенклатура
| ГДЕ (КОДМАТ = &КодМат) ";
Запрос.УстановитьПараметр("КодМат","111");
// при попытке выполнить это присвоение ошибка "Значение не является значением объектного типа (ССЫЛКА)"
Мат = Выб.Ссылка.ПолучитьОбъект() ;
В чем грабли?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Народ простите Христа ради старого человека, Пропустил кусок.
На самом деле так:
В чем грабли?
На самом деле так:
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| Справочник.Номенклатура.Ссылка как ССЫЛКА
| из Справочник.Номенклатура
| ГДЕ (КОДМАТ = &КодМат) ";
Запрос.УстановитьПараметр("КодМат","111");
Выб=Запрос.Выполнить().Выбрать().Следующий();
Если Выб = Ложь тогда
Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден");
ФлагОШИБКА = Истина ;
Продолжить;
Конецесли;
// при попытке выполнить это присвоение ошибка "Значение не является значением объектного типа (ССЫЛКА)"
Мат = Выб.Ссылка.ПолучитьОбъект() ;
ПоказатьВ чем грабли?
попробуйте так
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| Ссылка
| из Справочник.Номенклатура
| ГДЕ КОДМАТ = &КодМат ";
Запрос.УстановитьПараметр("КодМат","111");
Выб=Запрос.Выполнить().Выбрать();
Если Выб.Следующий() Тогда
Мат = Выб.Ссылка;
Иначе
Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден");
ФлагОШИБКА = Истина ;
Мат = Неопределено;
КонецЕсли;
Возврат Мат; //ну или что там у вас
Показать
(7) Большое спасибо. Написал так
Запрос.УстановитьПараметр("КодМат",СокрЛП(КодМат));
Выб=Запрос.Выполнить().Выбрать();
Если Выб.Следующий() = Ложь тогда
Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден");
ФлагОШИБКА = Истина ;
Продолжить;
Конецесли;
Мат = Выб.Ссылка ;
и всё получилось.
Спасибо всем.
Запрос.УстановитьПараметр("КодМат",СокрЛП(КодМат));
Выб=Запрос.Выполнить().Выбрать();
Если Выб.Следующий() = Ложь тогда
Сообщить("КодМат="+КодМат+" "+Наим+" в 1С НОМЕНКЛАТУРА не найден");
ФлагОШИБКА = Истина ;
Продолжить;
Конецесли;
Мат = Выб.Ссылка ;
и всё получилось.
Спасибо всем.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот