Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выборка в запросе док-ов с макс-й датой
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
Задача из регистра накопления выбрать документы с последней датой прихода, вот запрос, выбирает дату не правильно, подскажите быть может что не так делаю

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПартииТоваровНаСкладах.Номенклатура КАК Товар,
                   |    ПартииТоваровНаСкладах.Номенклатура.Наименование КАК НоменклатураНаименование,
                   |    МАКСИМУМ(ПартииТоваровНаСкладах.ДокументОприходования) КАК Регистратор
                   |ИЗ
                   |    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
                   |ГДЕ
                   |    ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ПартииТоваровНаСкладах.Номенклатура,
                   |    ПартииТоваровНаСкладах.Номенклатура.Наименование
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    НоменклатураНаименование
                   |ИТОГИ ПО
                   |    Товар ТОЛЬКО ИЕРАРХИЯ
                   |АВТОУПОРЯДОЧИВАНИЕ";
                  
                  
    Запрос.УстановитьПараметр("ТекДата",КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("Склад",Справочники.Склады.НайтиПоКоду("000000001"));    
    Запрос.УстановитьПараметр("Контрагент",Поставщик);
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
sava1
вот Последний документ для Контрагентов

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


для номенклатуры - аналогично
bereznoy
Цитата(sava1 @ 01.11.13, 7:57) необходимо зарегистрироваться для просмотра ссылки
*****

для номенклатуры - аналогично




Запрос = Новый Запрос;   
Запрос.Текст = "ВЫБРАТЬ
               |    ПоступлениеТоваровУслугТовары.Ссылка КАК Регистратор,
               |    ДатыПоследнихДокументовКонтрагентов.Товар КАК Товар
               |ИЗ
               |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
               |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |            МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата,
               |            ПоступлениеТоваровУслугТовары.Номенклатура КАК Товар
               |        ИЗ
               |            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
               |        
               |        СГРУППИРОВАТЬ ПО
               |            ПоступлениеТоваровУслугТовары.Номенклатура) КАК ДатыПоследнихДокументовКонтрагентов
               |        ПО ПоступлениеТоваровУслугТовары.Номенклатура = ДатыПоследнихДокументовКонтрагентов.Товар
               |            И ПоступлениеТоваровУслугТовары.Ссылка.Дата = ДатыПоследнихДокументовКонтрагентов.Дата
               |ГДЕ
               |    ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА" + Условие + "
               |ИТОГИ ПО
               |    Товар ТОЛЬКО ИЕРАРХИЯ";
reneval
                   
|    МАКСИМУМ(ПартииТоваровНаСкладах.ДокументОприходования) КАК Регистратор


Не канает при вводе документов задним числом. Максимум по ссылке будет, т.е. последний введенный.

Можно так (если производительность не важна)
                   
|    МАКСИМУМ(ПартииТоваровНаСкладах.ДокументОприходования.Дата) КАК Дата



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