Версия для печати темы (https://pro1c.org.ua/index.php?s=82097edd5bebc64c8263d27831cc876e&showtopic=7891)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Выбор последнего прихода товара по счетам

Автор: redking 26.06.12, 11:48

Добрый день,
Есть Документы "СчетВходящий" и "ПоступлениеТоваров".В "ПоступлениеТоваров" поле "сделка"- это "СчетВходящий".На один "СчетВходящий" может быть несколько "ПоступлениеТоваров"
подскажите пожалуйста, как выбрать в запросе последний "ПоступлениеТоваров" по "СчетВходящий"
те таблица на выходе "СчетВходящий,ПоступлениеТоваров"

Автор: logist 26.06.12, 11:58

Как-то так

                "ВЫБРАТЬ ПЕРВЫЕ 1
|    ПоступлениеТоваровУслуг.Ссылка
|ИЗ
|    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
|    ПоступлениеТоваровУслуг.Сделка = &Сделка
|
|УПОРЯДОЧИТЬ ПО
|    ПоступлениеТоваровУслуг.Дата УБЫВ"

Автор: redking 26.06.12, 12:40

Мне надо не по одному счету,а к примеру по счетам за период.
И результат таблица типа "Счет,ПоследнийПриход"

Сделал вариант,почему неработает,не пойму.

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



 i 

Код выделяем
 

Автор: yuritch 26.06.12, 14:47

А если вот так? Обязательное требование: даты поступлений по одному и тому же счету должны быть уникальными (по разным счетам могут и совпадать, это не важно).

ВЫБРАТЬ
   ЗапросПоследниеДаты.СчетСсылка,
   Поступление.Ссылка
ИЗ
   (
   ВЫБРАТЬ
      Счет.Ссылка КАК СчетСсылка, МАКСИМУМ(Поступление.Дата) КАК МаксДата
   ИЗ
      Документ.СчетВходящий КАК Счет
   ЛЕВОЕ СОЕДИНЕНИЕ
      Документ.ПоступлениеТоваров КАК Поступление
   ПО
      Поступление.Сделка = Счет.Ссылка
   ГДЕ Счет.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   СГРУППИРОВАТЬ ПО Счет.Ссылка
   ) КАК ЗапросПоследниеДаты
ЛЕВОЕ СОЕДИНЕНИЕ
   Документ.ПоступлениеТоваров КАК Поступление
ПО
   Поступление.Сделка = ЗапросПоследниеДаты.СчетСсылка И
   Поступление.Дата = ЗапросПоследниеДаты.МаксДата

Автор: redking 26.06.12, 15:20

Спасибо, но действительно, могут быть одной секундой документы sad.gif
и как быть?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua