Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выборка цен в 1С
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
megalasta
Здравствуйте! Впервые столкнулся с 1С и стоит задача выбрать цены по всем товарам из базы в 1С Предприятие. В текущей программе идет запрос:
Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
                          |    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Родитель КАК Родитель,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование КАК Наименование,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Код КАК Код
                          |ИЗ
                          |    РегистрСведений.ЦеныНоменклатуры.СрезПервых(
                          |            &МоментВремени,
                          |            ТипЦен = &ТипЦен
                          |                И Номенклатура В
                          |                    (ВЫБРАТЬ
                          |                        ЦеныНоменклатуры.Номенклатура
                          |                    ИЗ
                          |                        РегистрСведений.ЦеныНоменклатуры.Изменения КАК ЦеныНоменклатурыИзменения ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                          |                            ПО
                          |                                ЦеныНоменклатурыИзменения.Регистратор = ЦеныНоменклатуры.Регистратор
                          |                    ГДЕ
                          |                        ЦеныНоменклатурыИзменения.Узел = &Узел)
                  |    ) КАК ЦеныНоменклатурыСрезПоследних
                          |
                          |СГРУППИРОВАТЬ ПО
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Родитель,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование,
                          |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Код");
    Запрос.УстановитьПараметр("МоментВремени", ТекущаяДата());
    //ТекущаяДата()
    Запрос.УстановитьПараметр("ТипЦен", ТоварыТипЦен);
    Запрос.УстановитьПараметр("Узел", УзелСайта);
    Выборка = Запрос.Выполнить().Выбрать();

Он отрабатывает но выдает 0 строк, хотя цены в базе есть (Смотрел Ценообразование-> Журнал "Ценообразование"...)
Подскажите пожалуйста, что нужно указать в запросе, чтобы он выбирал последнюю цену по каждому пункту
logist
Цитата(megalasta @ 08.07.11, 18:00) необходимо зарегистрироваться для просмотра ссылки
чтобы он выбирал последнюю цену по каждому пункту

"Последнюю" или "максимальную" или какую-то другую? а то из запроса как то не совсем понятно что же Вы все таки выбираете,
  |    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена,

|ИЗ
                          |    РегистрСведений.ЦеныНоменклатуры.СрезПервых(

...
 |    ) КАК ЦеныНоменклатурыСрезПоследних
megalasta
Цитата(logist @ 08.07.11, 18:26) необходимо зарегистрироваться для просмотра ссылки
"Последнюю" или "максимальную" или какую-то другую? а то из запроса как то не совсем понятно что же Вы все таки выбираете,
  |    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена,

|ИЗ
                          |    РегистрСведений.ЦеныНоменклатуры.СрезПервых(

...
 |    ) КАК ЦеныНоменклатурыСрезПоследних



На самом деле запрос:

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


Мне очень нужно чтобы он выбирал максимальную из срезе последних
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.