Имя: Пароль:
1C
 
Срез последних цен из документов поступления
, ,
0 Vovka-x13
 
07.07.15
09:04
Возникла необходимость получить последние цены товаров. Конфигурация УПП 1.3 функционал регистрации цен контрагентов не используется. В итоге решил вытягивать цены запросом из документов только не пойму как выбрать только последние цены. Подскажите как лучше сделать?
1 Metman
 
07.07.15
09:06
из регистра?
2 Mankubus
 
07.07.15
09:07
выбери максимальные даты и соединяй с ними
3 Metman
 
07.07.15
09:07
про регистрацию не заметил.
4 Одинесю
 
07.07.15
09:09
Лучше задействовать механизм регистрации цен и брать из регистра.
5 Cyberhawk
 
07.07.15
09:10
Сначала выбираешь в табличку "Номенклатура - Дата документа", группируешь эту табличку п омаксимальной дате. В итоге для каждой номенклатуры знаешь дату документа. Это все в первый запрос пакета.
Затем во втором запросе пакета к первой табличке по дате присоединяешь сам документ и из него берешь цену (не забудь учесть случаи, когда в одном документе несколько строк с одной и той же номенклатурой).
6 Vovka-x13
 
07.07.15
09:11
ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    ПоступлениеТоваровУслугТовары.Цена КАК Цена,
    ПоступлениеТоваровУслугТовары.Ссылка,
    ПоступлениеТоваровУслугТовары.Ссылка.Дата
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
            МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата
        ИЗ
            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        
        СГРУППИРОВАТЬ ПО
            ПоступлениеТоваровУслугТовары.Номенклатура) КАК ВложенныйЗапрос
        ПО ПоступлениеТоваровУслугТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
            И ПоступлениеТоваровУслугТовары.Ссылка.Дата = ВложенныйЗапрос.Дата

Такой запрос будет корректен? механизм регистрации мне не очень нравиться замороченный хотя он лучше
7 spectre1978
 
07.07.15
09:21
Я не советую брать из поступления, потому что могут быть и другие пути попадания товаров в систему. Например ввод остатков.
8 dmrjan
 
07.07.15
09:23
Лучше брать из документа установки цен.
9 spectre1978
 
07.07.15
09:23
Когда-то делал так:

Процедура ПолучитьРыночныеЦены () Экспорт
    
    ЗапросЦены = Новый Запрос;
    ЗапросЦены.Текст =
    
    "ВЫБРАТЬ
    |    ЗакупкиОбороты.Номенклатура,
    |    МАКСИМУМ(ЗакупкиОбороты.Период) КАК Период
    |ПОМЕСТИТЬ
    |    Временная
    |ИЗ
    |    РегистрНакопления.Закупки.Обороты(, , День, ) КАК ЗакупкиОбороты
    |ГДЕ
    |    ЗакупкиОбороты.Номенклатура В ИЕРАРХИИ (&СписокКомпонентов)  
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗакупкиОбороты.Номенклатура;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |
    |ВЫБРАТЬ
    |    Временная.Номенклатура,
    |    Временная.Период,
    |    ЗакупкиОбороты.КоличествоОборот,
    |    ЗакупкиОбороты.СтоимостьОборот,
    |    ЗакупкиОбороты.НДСОборот
    |ИЗ
    |    Временная КАК Временная
    |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |    РегистрНакопления.Закупки.Обороты(, , День, ) КАК ЗакупкиОбороты
    |ПО
    |    Временная.Номенклатура = ЗакупкиОбороты.Номенклатура
    |И Временная.Период = ЗакупкиОбороты.Период;";
    
    ЗапросЦены.УстановитьПараметр("СписокКомпонентов", Разделка.ВыгрузитьКолонку("Номенклатура"));
    
    Выборка = ЗапросЦены.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        
        СтрокиРазделки = Разделка.НайтиСтроки(Новый Структура ("Номенклатура", Выборка.Номенклатура));
        Для Каждого СтрокаРазделки из СтрокиРазделки Цикл
            // СтрокаРазделки.ЦенаРыночная = (Выборка.СтоимостьОборот + Выборка.НДСОборот) / Выборка.КоличествоОборот;
            СтрокаРазделки.ЦенаРыночная = Выборка.СтоимостьОборот / Выборка.КоличествоОборот;
            СтрокаРазделки.ДатаЗакупки = Выборка.Период;
            РасчетРезультата (СтрокаРазделки);
        КонецЦикла
        
    КонецЦикла;
    
КонецПроцедуры
10 spectre1978
 
07.07.15
09:24
(8) а с чего вы взяли что его заполняют?
11 dmrjan
 
07.07.15
09:24
(10) Ну это вроде как правило хорошего тона.
12 Одинесю
 
07.07.15
09:25
(10) А с чего ты взял, что у него заполняются регистры? ))
13 dmrjan
 
07.07.15
09:27
А еще лучше брать из регистра сведений.
14 spectre1978
 
07.07.15
09:27
(10) здесь нет никакого наезда. Объяснюсь. На производственном предприятии могут быть тысячи видов сырья и цены на него могут меняться как на бирже, с каждой поставкой новые. Я очень сильно сомневаюсь, что кто-то будет помимо приходных документов забивать голову еще и установкой цен.
То что требуется ТС - в УПП хранится в регистре закупок. Оттуда и берем.
15 spectre1978
 
07.07.15
09:29
(13) см. (9), (14)
16 spectre1978
 
07.07.15
09:30
(14) к (11), (12)
17 dmrjan
 
07.07.15
09:32
Мне лично очень сильно не понравился типовой документ "Установка цен номенклатуры", поэтому в документе Поступление товаров и услуг была добавлена промежуточная обработка (в которой отображается в т.ч. и предпоследняя цена на товар и еще куча разных фич) и уже только потом данные отправляются в документ "Установка цен номенклатуры".
18 spectre1978
 
07.07.15
13:18
(17) Объясните, зачем вам цены на материалы хранить в отдельном регистре? При проведении документ ПТиУ делает все необходимые движения, в себестоимости цены и так учтутся, а для последующего анализа рынка материалов есть отличный регистр "Закупки". Зачем все это дублировать еще и в регистр цен? Я понимаю, зачем этот регистр нужен для готовой продукции, но мне совершенно непонятно, зачем пихать туда материалы.
2 + 2 = 3.9999999999999999999999999999999...