Имя: Пароль:
1C
 
Почему такой запрос?
,
0 pro3ri
 
28.04.15
13:27
Добрый день!
http://savepic.ru/6895469.png
Это регистр сведений.

Делаю автоподстановку цен в форму документа

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    Элементы.Товары.ТекущиеДанные.Цена = ТоварыНоменклатураПриИзмененииНаСервере(Объект.ВидПрайсаНоменклатуры, Элементы.Товары.ТекущиеДанные.Номенклатура);
КонецПроцедуры

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

только в результате данного запроса 1 запись, а хочется обе, чтобы еще прайс прикрутить. что не так?
1 zak555
 
28.04.15
13:29
не ясен вопрос
2 pro3ri
 
28.04.15
13:30
структура метаданных
http://savepic.ru/6890348.png

(1) как сделать чтобы в результате запроса были обе пробирки?
3 zak555
 
28.04.15
13:32
(2) по строкам или столбцам ?
4 Dен
 
28.04.15
13:32
Запрос отбирает обе записи.
А ты используешь только одну, первую.
5 Defender aka LINN
 
28.04.15
13:32
(2) Выкинуть свой регистр сведений и сделать хороший, годный.
Аналогично поступить с запросом.
6 VitShvets
 
28.04.15
13:34
(4) +1. Т.к. у тебя 2 записи, то обход выборки надо делать в цикле, ну либо, костыльно так:
ВыборкаДетальныеЗаписи.Следующий();
Цена1 = Возврат ВыборкаДетальныеЗаписи.Цена;
ВыборкаДетальныеЗаписи.Следующий();
Цена2 = Возврат ВыборкаДетальныеЗаписи.Цена;
7 VitShvets
 
28.04.15
13:34
+(6) "Возврат" забыл потереть в строках.
8 Xapac
 
28.04.15
13:36
(0) мож у тебя 2 номенклатуры с одинаковым названием?
9 AntonH851
 
28.04.15
13:40
(0) Куда тебе нужно прайс прикрутить?
10 pro3ri
 
28.04.15
13:41
(4) http://savepic.ru/6886254.png
тут одна только
11 Xapac
 
28.04.15
13:42
(10) см(8)
12 pro3ri
 
28.04.15
13:43
(3) по строкам есте-но
(8) (11) никак нет
13 Xapac
 
28.04.15
13:45
(12)дтшник кидай)
14 GenAcid
 
28.04.15
13:45
Слушай (5), он не врет.
Говорят, разобраться что такое измерения, а что такое ресурсы - первый шаг на пути к программисту 1С.
15 AntonH851
 
28.04.15
13:47
(10) Вид прайса сделай измерением в твоем регистре
16 pro3ri
 
28.04.15
13:52
17 VitShvets
 
28.04.15
13:57
(14) (15) А точно, не обратил внимание, что вид прайса не измерение.
18 Xapac
 
28.04.15
13:57
https://yadi.sk/i/yTakITKggJL3n

вот тебе ответ. с тебя печенька
19 AntonH851
 
28.04.15
13:58
(16) Ты в (0) берешь СрезПоследних, при этом у тебя измерение единственное номенклатура, вот тебе запрос и возвращает единственную запись по пробирке
20 ЧеловекДуши
 
28.04.15
13:58
(12) Научись использовать Обработки, типо "Консоль запросов"
21 ЧеловекДуши
 
28.04.15
13:59
(15) Зачем?
ТС попросту не предсталяет, для чего Срез Первых и Срез Последних :)
22 ЧеловекДуши
 
28.04.15
13:59
+(19) +100
23 ЧеловекДуши
 
28.04.15
13:59
+(19) 100
24 ЧеловекДуши
 
28.04.15
14:00
+(21) И тем более не вкусе про Измерения и другие хитрости в 1С. ТС попросту Было кодер, новичок и Убийца БД (т.е. падаван) :)
25 pro3ri
 
28.04.15
14:07
(15) помогло. всем спасибо!