Имя: Пароль:
1C
1С v8
последние 3 цены из регистра ЦеныНоменклатуры
0 fadeik86
 
13.08.12
03:45
Есть такой запрос. Нужно получить последние 3 цены из регистра ЦеныНоменклатуры и вычислить сред. цену (функцию среднее в запросе я потом допишу), но не могу одного понять когда я делаю выборку Рез = Запрос.Выполнить().Выбрать();
, потом обход по группировкам пишу Сообщить(Рез.Цена). Ни какой цены нет, подскажите как получить последние три цены из регистра и вычислить среднее
"ВЫБРАТЬ
                  |    Номенклатура.Ссылка
                  |ПОМЕСТИТЬ Товары
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    Номенклатура.Ссылка
                  |;
             |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    Товары.Ссылка КАК Номенклатура,
                  |    ЦеныНоменклатуры.Цена КАК Цена
                  |ИЗ
                  |    Товары КАК Товары
                  |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 3
                  |            ЦеныНоменклатуры.Номенклатура КАК Номенклатура,

                  |            ЦеныНоменклатуры.Цена КАК Цена
                  |        ИЗ
                  |            РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                  |        
                  |        УПОРЯДОЧИТЬ ПО
                  |            ЦеныНоменклатуры.Период УБЫВ) КАК ЦеныНоменклатуры
                  |        ПО Товары.Номенклатура = ЦеныНоменклатуры.Номенклатура

      Рез = Запрос.Выполнить().Выбрать();
                  Пока рез.Следующий()
                     
                      Сообщить(Рез.Номенклатура);
                      Сообщить(Рез.Цена);
                     
                     
                     
                  КонецЦикла;
1 GROOVY
 
13.08.12
03:53
Так видать для какойто номенклатуры (или группы) нет данных о ценах. Что там вычислять?
2 fadeik86
 
13.08.12
04:03
я зашел в РегистрыСведений - ЦеныНоменклатуры там заданы цены для всех товаров, по крайней мере для товаров, которые он выводит есть цена
3 SeraFim
 
13.08.12
04:28
Ээээ... ВЫБРАТЬ Номенклатура.Ссылка
А соединение по: Товары.Номенклатура
нету такого поля во временной таблице Товары
4 fadeik86
 
13.08.12
04:34
ага вижу, просто старый запрос скопировал
"ВЫБРАТЬ
   |    Номенклатура.Ссылка
   |ПОМЕСТИТЬ Товары
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |
   |СГРУППИРОВАТЬ ПО
   |    Номенклатура.Ссылка
   |;
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    Товары.Ссылка КАК Номенклатура,
   |    ЦеныНоменклатуры.Цена КАК Цена
   |ИЗ
   |    Товары КАК Товары
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 3
   |            ЦеныНоменклатуры.Номенклатура КАК Номенклатура,    
   |            ЦеныНоменклатуры.Цена КАК Цена
   |        ИЗ
   |            РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
   |        
   |        УПОРЯДОЧИТЬ ПО
   |            ЦеныНоменклатуры.Период УБЫВ) КАК ЦеныНоменклатуры
   |        ПО Товары.Ссылка = ЦеныНоменклатуры.Номенклатура"
5 fadeik86
 
13.08.12
04:45
конфа УТ 11
6 fadeik86
 
13.08.12
04:46
запрос не выбирает цену
7 France
 
13.08.12
04:51
правило левой руки можно попробовать.
8 fadeik86
 
13.08.12
04:56
ну если кто знает, что трудно помочь, я не знаком с правилом левой руки
9 SeraFim
 
13.08.12
04:57
ну... в целом он должен выбрать 3 цены (для возможно разных товаров), т.е. в 3 строчках у тебя цена какая-нибудь да будет
а вот как выбрать по 3 цены для кажого товара, я затрудняюсь подсказать)
10 fadeik86
 
13.08.12
05:01
так он же по идее должен по идее выбирать 3 цены для каждого товара, там же соединение временной ТЗ с регистром
11 Рэйв
 
13.08.12
05:51
(0)Выбери все цены с датами, отсортируй в обратном порядке и при выборке считай в цикле сколько тебе цен надо.
12 Рэйв
 
13.08.12
05:52
+в обратном порядке по датам
13 iceman2112
 
13.08.12
06:53
Если не робит, то сначала попробой вывести все цены, потом все цены по номенклатуре, потом последние три(все без соединения). Упросити) Шарахать весь справочник номенклатура в ВТ, вам точно это нужно?
14 Jofa
 
13.08.12
07:00
(0) Может я туплю чуток но мне кажется запрос выбирает всего три цены с какого перебугу он должен подобрать для каждой номенклатуры по 3 цены ?
15 France
 
13.08.12
07:36
нужно группировать выборку по номенклатуре с вычислением среднего, а результат левое соединение со справочником номенклатуры по номенклатуре..
изыски с Поместить не нужны..