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

Табличный запрос к региструсведений

Табличный запрос к региструсведений
Я
   кабанчик
 
15.04.19 - 11:16
Здравствуйте, что за ошибка в запросе? Не выдаёт никакую цену из него.

Все данные передаются ( Контрагент, номенклатура ).

Нужно чтобы при выборе номенклатуры из списка, цена автоматически подставлялась в поле цена.

&НаСервере
Функция ТоварыНоменклатураПриИзмененииНаСервере(Номенклатура)//
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент.Ссылка);
    Сообщить("Номенклатура на сервере:" +Номенклатура);
    Сообщить("Контрагент на сервере:" +Объект.Контрагент.Ссылка);
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ЦеныПоставщиковСрезПоследних.Цена КАК Цена,
        |   ЦеныПоставщиковСрезПоследних.Номенклатура.ЦенаПокупки КАК НоменклатураЦенаПокупки,
        |   ЦеныПоставщиковСрезПоследних.Номенклатура.ЦенаПродажи КАК НоменклатураЦенаПродажи
        |ИЗ
        |   РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
        |ГДЕ
        |   ЦеныПоставщиковСрезПоследних.Контрагент = &Контрагент
        |   И ЦеныПоставщиковСрезПоследних.Номенклатура = &Номенклатура";  
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Сообщить(""+ВыборкаДетальныеЗаписи.Цена);
    Сообщить(""+ВыборкаДетальныеЗаписи.НоменклатураЦенаПокупки);
    Сообщить(""+ВыборкаДетальныеЗаписи.НоменклатураЦенаПродажи);
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        Возврат(ВыборкаДетальныеЗаписи.Цена);
    КонецЕсли;
КонецФункции

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    Стр = Элементы.Товары.ТекущиеДанные;
    Сообщить(""+Стр.Номенклатура);
    Стр.Цена = ТоварыНоменклатураПриИзмененииНаСервере(Стр.Номенклатура);
    Сообщить(""+Стр.Цена);
КонецПроцедуры

Пробовал так, тоже не показывает:

  Запрос.Текст =
        "ВЫБРАТЬ
        |   ЦеныПоставщиковСрезПоследних.Цена КАК Цена,
        |   ЦеныПоставщиковСрезПоследних.Номенклатура.ЦенаПокупки КАК НоменклатураЦенаПокупки,
        |   ЦеныПоставщиковСрезПоследних.Номенклатура.ЦенаПродажи КАК НоменклатураЦенаПродажи
        |ИЗ
        |   РегистрСведений.ЦеныПоставщиков.СрезПоследних(&Дата, Номенклатура = &Номенклатура) КАК ЦеныПоставщиковСрезПоследних";
 
 
   СтепаDS
 
1 - 15.04.19 - 11:18
(0) " Если ВыборкаДетальныеЗаписи.Следующий() Тогда 
        Возврат(ВыборкаДетальныеЗаписи.Цена); 
    КонецЕсли; "

Может тут проблема?
   VladZ
 
2 - 15.04.19 - 11:20
(0) А отладчик что говорит?
   СтепаDS
 
3 - 15.04.19 - 11:23
(2) Видимо, что рез запроса не пустой, но почему-то ничего не возвращает.
   кабанчик
 
4 - 15.04.19 - 11:38
(1) так даже я до условия вывожу что там есть, то ничего не выводит
Сообщить(""+ВыборкаДетальныеЗаписи.Цена);
Сообщить(""+ВыборкаДетальныеЗаписи.НоменклатураЦенаПокупки);
Сообщить(""+ВыборкаДетальныеЗаписи.НоменклатураЦенаПродажи);
   кабанчик
 
5 - 15.04.19 - 11:41
(2) а как его запустить?
   Salimbek
 
6 - 15.04.19 - 11:44
(4) Ты в свою Выборку заходишь только следующей строкой, поэтому ДО начала перебора твое "Сообщить" ничего не выдаст.
   СтепаDS
 
7 - 15.04.19 - 11:50
(5) а ты там кто?
   кабанчик
 
8 - 15.04.19 - 11:51
В отладчике пишет, что результат запроса = Неопределенно
   СтепаDS
 
9 - 15.04.19 - 11:52
(8) А выборка?
   СтепаDS
 
10 - 15.04.19 - 11:52
И чего-то в запросе не хватает...
   кабанчик
 
11 - 15.04.19 - 11:56
(10) выборка тоже пишет, что неопредленно
   СтепаDS
 
12 - 15.04.19 - 11:58
(11) Попробуй установить условия на виртуальную таблицу. И ответь на (7)
   кабанчик
 
13 - 15.04.19 - 11:58
Чего не хватает? Подскажите, а то уже дня 4 голову ломаю и не могу додуматься
   СтепаDS
 
14 - 15.04.19 - 11:59
(13) см (12)
   СтепаDS
 
15 - 15.04.19 - 12:03
(13) Ну, и да... а цены то есть в регистре? Глазками смотрел?

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