Имя: Пароль:
1C
 
Добавить последнюю закупочную цен
0 myr4ik07
 
14.08.15
21:11
Привет, имею запрос


&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    СписокПриАктивизацииСтрокиНаСервере(Элемент.ТекущаяСтрока);
КонецПроцедуры

&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере(Товар)
    
    Запрос = Новый Запрос;    
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;    
    МенеджерВТ = Запрос.МенеджерВременныхТаблиц;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ОстатокТоваров.СтруктурнаяЕдиница КАК Склад,
    |    ОстатокТоваров.КоличествоОстаток КАК Остаток,
    |    ЕСТЬNULL(Цена1.Цена, 0) КАК Цена1,
    |    ЕСТЬNULL(Цена3.Цена, 0) КАК Цена3,
    |    ЕСТЬNULL(Цена4.Цена, 0) КАК Цена4
    |ИЗ
    |    РегистрНакопления.ЗапасыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ОстатокТоваров
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена1) КАК Цена1
    |        ПО ОстатокТоваров.Номенклатура = Цена1.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена3) КАК Цена3
    |        ПО ОстатокТоваров.Номенклатура = Цена3.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена4) КАК Цена4
    |        ПО ОстатокТоваров.Номенклатура = Цена4.Номенклатура";
        
    Запрос.УстановитьПараметр("Номенклатура", Товар);    
    
    Запрос.УстановитьПараметр("Цена1", Справочники.ВидыЦен.НайтиПоКоду("000000001"));
    Запрос.УстановитьПараметр("Цена3", Справочники.ВидыЦен.НайтиПоКоду("000000003"));
    Запрос.УстановитьПараметр("Цена4", Справочники.ВидыЦен.НайтиПоКоду("000000004"));
    
    Результат = Запрос.Выполнить().Выгрузить();
                    
    ОстаткиСЦенами.Загрузить(Результат);    
КонецПроцедуры



нужно добавить последнюю закупочную цену, точнее последнюю цену по которой закупался товар


!Пробовал левый соединением РС.ЦеныНоменклатурыКонтрагентов но показывает все последние по всем контрагентам, а мне не важно какой контрагент, главное получить последнюю
1 Мимохожий Однако
 
14.08.15
21:26
Покажи как пробовал. Убери группировку по контрагентам.
2 myr4ik07
 
14.08.15
21:28
(1) ВЫБРАТЬ
    ОстатокТоваров.СтруктурнаяЕдиница КАК Склад,
    ОстатокТоваров.КоличествоОстаток КАК Остаток,
    ЕСТЬNULL(Цена1.Цена, 0) КАК Цена1,
    ЕСТЬNULL(Цена3.Цена, 0) КАК Цена3,
    ЕСТЬNULL(Цена4.Цена, 0) КАК Цена4
ИЗ
    РегистрНакопления.ЗапасыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ОстатокТоваров
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена1) КАК Цена1
        ПО ОстатокТоваров.Номенклатура = Цена1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена3) КАК Цена3
        ПО ОстатокТоваров.Номенклатура = Цена3.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &Цена4) КАК Цена4
        ПО ОстатокТоваров.Номенклатура = Цена4.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО ОстатокТоваров.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
3 myr4ik07
 
14.08.15
21:29
(1) дублирует строки из за множественного списка закупочных цен по разным контрагентам
4 myr4ik07
 
14.08.15
22:00
вроде это работает так как надо

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

УПОРЯДОЧИТЬ ПО
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Период УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстатокТоваров.СтруктурнаяЕдиница КАК Склад,
    ОстатокТоваров.Номенклатура,
    ЕСТЬNULL(ОстатокТоваров.КоличествоОстаток, 0) КАК Остаток,
    ЕСТЬNULL(ВременнаяТаблица.Цена, 0) КАК Поле1,
    ЕСТЬNULL(Цена1.Цена, 0) КАК Цена1,
    ЕСТЬNULL(Цена3.Цена, 0) КАК Цена2,
    ЕСТЬNULL(Цена4.Цена, 0) КАК Цена3
ИЗ
    РегистрНакопления.ЗапасыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ОстатокТоваров
        ЛЕВОЕ СОЕДИНЕНИЕ Закупка КАК ВременнаяТаблица
        ПО ОстатокТоваров.Номенклатура = ВременнаяТаблица.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &ВидЦен1) КАК Цена1
        ПО ОстатокТоваров.Номенклатура = Цена1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &ВидЦен3) КАК Цена3
        ПО ОстатокТоваров.Номенклатура = Цена3.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &ВидЦен4) КАК Цена4
        ПО ОстатокТоваров.Номенклатура = Цена4.Номенклатура
5 myr4ik07
 
14.08.15
22:05
от капец, не то, в консоле нормально отрабатывает, а с конфы висит