Имя: Пароль:
1C
1С v8
Как вытащить с регистра сведений данные на определенный период?
0 v700
 
15.10.11
11:52
Как вытащить из регистра сведений данные на определенный период (15.09.2011-15.10.2011).
1 shuhard
 
15.10.11
11:56
(0) запросом
2 v700
 
15.10.11
12:09
пожалуйста, покажите на примере.
3 Lama12
 
15.10.11
12:14
(2) Пример во встроенной справке есть.
4 дущ
 
15.10.11
12:14
(2) типовую открой - миллион примеров.
5 zak555
 
15.10.11
12:18
группировку по периоду ?
6 untru
 
15.10.11
12:19
открой конструктор запроса вытащи в среднее поле свой регистр и задай условия)
7 v700
 
15.10.11
12:21
zak555 Да
8 v700
 
15.10.11
12:22
Сейчас сам постараюсь сделать))
9 v700
 
15.10.11
16:49
Правильно сделал?

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ЦеныНоменклатурыСрезПоследних.Цена КАК Цена2
|ИЗ
|РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(ТекущаяДата) КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
|ЦеныНоменклатурыСрезПоследних.Период >= &НачалоПериода
|И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
   
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата);
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ТекущаяДата()-60*60*24*ПолеСрокЛиквидности));
10 v700
 
15.10.11
16:50
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
11 shuhard
 
15.10.11
16:51
(9) нет, это лишние
ЦеныНоменклатурыСрезПоследних.Период >= &НачалоПериода
а это ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
перенеси в виртуальный Рг
12 БибиГон
 
15.10.11
16:54
*Правильно сделал?

неа :)
используй тогда уж лучше ПолучитьПоследнее
13 lubja
 
15.10.11
17:02
если тебе нужно что-то типа истории, тогда так

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|   ЦеныНоменклатуры.Период КАК Период,
|   ЦеныНоменклатуры.Цена КАК Цена2
|ИЗ
|   РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатуры
|ГДЕ
|   ЦеныНоменклатуры.Период МЕЖДУ &НачалоПериода И &КонецПериода
|   И ЦеныНоменклатуры.ТипЦен = &ТипЦен";
   
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);

НачалоПериода и КонецПериода устанавливаешь, как тебе нужно
14 v700
 
15.10.11
17:02
Всё вроде бы работает хорошо.))
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена1,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Период,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Регистратор,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдиницаИзмерения,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.НомерСтроки,
                   |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена2
                   |ИЗ
                   |    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, ТипЦен.Владелец.Ссылка = &ТекущаяСсылка) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКурса, ) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |ГДЕ
                   |    ЦеныНоменклатурыСрезПоследних.Период >= &НачалоПериода
                   |    И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
   
    Запрос.УстановитьПараметр("ТекущаяСсылка", ПолеПоставщик);    
    Запрос.УстановитьПараметр("ДатаКурса", ПолеДата);    
   
     Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ТекущаяДата()-60*60*24*ПолеСрокЛиквидности));    
   
    Выборка = Запрос.Выполнить().Выбрать();
15 v700
 
15.10.11
17:04
lubja, Конфигуратор не позволяет так сохранить запрос( ЦеныНоменклатуры.Период МЕЖДУ &НачалоПериода И &КонецПериода).
16 lubja
 
15.10.11
17:07
(15) писала не в конфигураторе, а копипаст и изменила... поэтому сорьки)
17 lubja
 
15.10.11
17:10
(15) вот запрос, написанный в консоли

ВЫБРАТЬ
   ЦеныНоменклатурыКонтрагентов.Период,
   ЦеныНоменклатурыКонтрагентов.Цена
ИЗ
   РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов
ГДЕ
   ЦеныНоменклатурыКонтрагентов.Период МЕЖДУ &НачалоПериода И &КонецПериода
   И ЦеныНоменклатурыКонтрагентов.ТипЦен = &ТипЦен
18 lubja
 
15.10.11
17:13
только в этом регистре помимо Типа цен в качестве измерений фигурируют еще Номенклатура и Характеристика... поэтому нужно еще вытащить эти поля в запросе
19 v700
 
15.10.11
17:29
20 БибиГон
 
15.10.11
17:32
(19) знак = убери ;)
21 Рыжий Лис
 
15.10.11
17:32
(19) МЕЖДУ это вместо =, а не вместе
22 v700
 
15.10.11
17:37
Спасибо!))
23 lubja
 
15.10.11
17:44
(22) а кинь-ка что у тебя получилось... запрос, я имею в виду...
24 v700
 
15.10.11
18:00
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена1,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Период,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Регистратор,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдиницаИзмерения,
                   |    ЦеныНоменклатурыКонтрагентовСрезПоследних.НомерСтроки,
                   |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена2
                   |ИЗ
                   |    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, ТипЦен.Владелец.Ссылка = &ТекущаяСсылка) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКурса, ) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |ГДЕ
                   |    ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
                   |    И ЦеныНоменклатурыСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода";
   
    Запрос.УстановитьПараметр("ТекущаяСсылка", ПолеПоставщик);    
    Запрос.УстановитьПараметр("ДатаКурса", ПолеДата);    
   
    Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ТекущаяДата()-60*60*24*ПолеСрокЛиквидности));    
    Запрос.УстановитьПараметр("КонецПериода", ТекущаяДата());
   
    Выборка = Запрос.Выполнить().Выбрать();
25 NcSteel
 
15.10.11
18:50
Надо взять срез на начальную дату + добавить изменения за период - вот план запроса.
26 lubja
 
15.10.11
20:22
(24) если ты используешь СрезПоследних, то условие

ЦеныНоменклатурыСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода

тебе не нужно. посмотри внимательно на (17), я там использовала физическую таблицу ЦеныНоменклатурыКонтрагентов.
а вообще, озвучь задачу. по твоему запросу не совсем поняла, что надо
Ошибка? Это не ошибка, это системная функция.