|   |   | 
| 
 | Выбрать цену номенклатуры из последнего документа Поступление | ☑ | ||
|---|---|---|---|---|
| 0
    
        Пип Пибип 23.05.11✎ 17:54 | 
        Вечер добрый, господа.
  Есть база УТ 10.3.10.4 Мне нужно получить последние цены Номенклатур из табличной части Товары документов Поступление товаров и услуг. Т.е, одна номенклатура - одна цена (из последнего документа, в котором эта Номенклатура встречается) Делаю так: ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК Фильтр ПО ПоступлениеТоваровУслугТовары.Ссылка = Фильтр.Ссылка И ПоступлениеТоваровУслугТовары.Ссылка.МоментВремени < Фильтр.МоментВремени УПОРЯДОЧИТЬ ПО Номенклатура И получаю более одной цены для Норменклатур на тестовых данных. Как исправить запрос? | |||
| 1
    
        simol 23.05.11✎ 17:58 | 
        Сначала получаешь последние документы, а потом из них цены. А одновременно не получится     | |||
| 2
    
        Grusswelle 23.05.11✎ 17:59 | 
        + АВТОУПОРЯДОЧИВАНИЕ     | |||
| 3
    
        forforumandspam 23.05.11✎ 18:10 | 
        Вот не пойму, зачем такой хитрый запрос. У меня запрос:
  ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары УПОРЯДОЧИТЬ ПО Номенклатура даёт точно такой-же результат. А у тебя? | |||
| 4
    
        poligraf 23.05.11✎ 18:11 | 
        (3) у тебя всего один приход в базе?     | |||
| 5
    
        forforumandspam 23.05.11✎ 18:15 | 
        (4) тестил в демо-базе, где 32 документа с заполненой табличной частью "Товары".     | |||
| 6
    
        luckyluke 23.05.11✎ 18:17 | 
        (3) ты хоть понимаешь, что ты здесь выбираешь вообще все документы за весь период?     | |||
| 7
    
        poligraf 23.05.11✎ 18:18 | 
        (6) оно работает. Не сбивай человека.     | |||
| 8
    
        forforumandspam 23.05.11✎ 18:19 | 
        (6) У меня запрос из (0) выдаёт все документы за весь период. ЧЯДН?     | |||
| 9
    
        luckyluke 23.05.11✎ 18:19 | 
        (7) не, ну если работает... то тогда конечно, че уж там.     | |||
| 10
    
        luckyluke 23.05.11✎ 18:21 | 
        (8) Ну вообще задача то стоит "Мне нужно получить последние цены Номенклатур из табличной части Товары документов Поступление товаров и услуг. Т.е, одна номенклатура - одна цена (из последнего документа, в котором эта Номенклатура встречается)", у него не получается, просит помощи... а ты ему (3), ЗТДТ?     | |||
| 11
    
        forforumandspam 23.05.11✎ 18:22 | 
        Кто-нибудь, помимо меня проверял результат запроса?     | |||
| 12
    
        forforumandspam 23.05.11✎ 18:23 | ||||
| 13
    
        luckyluke 23.05.11✎ 18:24 | 
        (11) нахрена проверять результат запроса, если и так понятно что он делает?
  (12) Зачем Ты Делаешь Так | |||
| 14
    
        forforumandspam 23.05.11✎ 18:27 | 
        (13) А ты попробуй проверь. Секундное дело.     | |||
| 15
    
        luckyluke 23.05.11✎ 18:29 | 
        (14) зомбированный? Верующий? Что с тобой не так?     | |||
| 16
    
        forforumandspam 23.05.11✎ 18:30 | 
        (15) Почему со мной? У меня оба запроса дают один и тот-же результат. Подскажи, пожалуйста, по твоему мнению, почему они должны давать разный результат? Я сам в первый раз вижу такое написание запроса, мне очень интересно.     | |||
| 17
    
        luckyluke 23.05.11✎ 18:34 | 
        (16) блин, читай (10) до просветления.     | |||
| 18
    
        forforumandspam 23.05.11✎ 18:39 | 
        (17) Я тебя ПРОШУ, объясни мне, как должна работать такая конструкция запроса. Лень. Нет, так нет. А ссылка на (10) ничего не говорит. Спасибо.     | |||
| 19
    
        luckyluke 23.05.11✎ 18:39 | 
        +(17) автор по всей видимости хотел использовать вот это v8: FIFO в запросе для получения поледнего документа, но так как у него не получилось, он пришел и на форум спросить, а ты предложил не заморачиваться и сделать (3), я тебе задал вопрос в (6), а ты мне теперь будешь рассказывать, что твой запрос из (3) выдает тоже что и из (0) и поэтому получить последний док поступления вообще не стоит пытаться?     | |||
| 20
    
        y22-k 23.05.11✎ 18:43 | 
        (0) Вот Это проверь
  ВЫБРАТЬ ВложенныйЗапрос.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ (ВЫБРАТЬ ПЕРВЫЕ 1 ПоступлениеТоваровУслуг.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ГДЕ ПоступлениеТоваровУслуг.Проведен = ИСТИНА УПОРЯДОЧИТЬ ПО ПоступлениеТоваровУслуг.Дата УБЫВ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО ВложенныйЗапрос.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка | |||
| 21
    
        luckyluke 23.05.11✎ 18:59 | 
        (20) Тогда уж лучше так пробовать:
  ВЫБРАТЬ
 Но опять же, ему нужно скорей всего не на одну номенклатуру, а на список... в ТЧ реализации или где он там её пользует... | |||
| 22
    
        poligraf 23.05.11✎ 19:21 | 
        (20) (21) ПЕРВЫЕ - выберет первую запись. Проверял:)
  Надо сначала получать список последних документов по каждой номенклатуре. ВТ или вложенный запрос (в них будет что-то вроде группировки по номенклатуре и Максимум(Документ.Дата)) и эту таблицу уже фильтром в основной запрос. | |||
| 23
    
        y22-k 23.05.11✎ 23:27 | 
        (21)(22) 
  все ступил неправильно задачу прочел Автор если объем не большой не тупи и сделай запрос в цикле на небольших объемах это не критично Или тебе это надо для отчета какого-то тогда проще принудительно писать цену в РС цены поставщиков и оттуда хапать последние записи на дату Мне кажется так как ты хочешь может получиться мега запрос который по времени будет дольше выполняться | |||
| 24
    
        Maniac 23.05.11✎ 23:33 | 
        Учите коррелированные подзапросы     | |||
| 25
    
        Maniac 23.05.11✎ 23:42 | 
        С вас по сто баксов
  ВЫБРАТЬ ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПРИХОДА ПоступлениеТоваровУслуг.Цена КАК Цена ПОМЕСТИТЬ ПРИХОДЫ ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.Номенклатура, Продажи.СтоимостьОборот КАК СтоимостьОборот, Продажи.Группа КАК Группа ИЗ ПРИХОДЫ КАК ПРИХОДЫ ГДЕ ПРИХОДЫ.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ВложенныеПРИХОДЫ.Ссылка ИЗ ПРИХОДЫ КАК ВложенныеПРИХОДЫ ГДЕ ВложенныеПРИХОДЫ.Номенклатура = ПРИХОДЫ.Номенклатура И ВложенныеПРИХОДЫ.Ссылка = ПРИХОДЫ.Ссылка УПОРЯДОЧИТЬ ПО ВложенныеПРИХОДЫ.ДатаПРИХОДА УБЫВ) УПОРЯДОЧИТЬ ПО Номенклатура ИТОГИ ПО Номенклатура | |||
| 26
    
        Maniac 23.05.11✎ 23:43 | 
        сори там ошибки есть. поправите сами. писал без 1С.     | |||
| 27
    
        Maniac 23.05.11✎ 23:45 | 
        ВЫБРАТЬ
  ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПРИХОДА ПоступлениеТоваровУслуг.Цена КАК Цена ПОМЕСТИТЬ ПРИХОДЫ ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.Номенклатура, Продажи.Цена КАК Цена ИЗ ПРИХОДЫ КАК ПРИХОДЫ ГДЕ ПРИХОДЫ.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ВложенныеПРИХОДЫ.Ссылка ИЗ ПРИХОДЫ КАК ВложенныеПРИХОДЫ ГДЕ ВложенныеПРИХОДЫ.Номенклатура = ПРИХОДЫ.Номенклатура И ВложенныеПРИХОДЫ.Ссылка = ПРИХОДЫ.Ссылка УПОРЯДОЧИТЬ ПО ВложенныеПРИХОДЫ.ДатаПРИХОДА УБЫВ) УПОРЯДОЧИТЬ ПО Номенклатура ИТОГИ ПО Номенклатура | |||
| 28
    
        Maniac 23.05.11✎ 23:45 | 
        ВЫБРАТЬ
  Продажи.Номенклатура, Продажи.Цена КАК Цена ИЗ сместо продажи тоже приходы. | |||
| 29
    
        ho0p 24.05.11✎ 00:16 | 
        Как то так, только надо добавить условие:
  ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена КАК Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Номенклатура) КАК ВложенныйЗапрос ПО ПоступлениеТоваровУслугТовары.Номенклатура = ВложенныйЗапрос.Номенклатура И ПоступлениеТоваровУслугТовары.Ссылка.Дата = ВложенныйЗапрос.Дата | |||
| 30
    
        Пип Пибип 25.05.11✎ 09:35 | 
        Совсем забыл. Спасибо!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |