8.х Запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем TODD22, 19 сен 2015.

  1. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Код:
    ВЫБРАТЬ
        РеализацияТоваровУслуг.Контрагент,
        РеализацияТоваровУслуг.СуммаДокумента,
        РеализацияТоваровУслуг.Ссылка
    ПОМЕСТИТЬ ДокументыРеализации
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛист_НСК.ДокументыНаДоставку КАК МаршрутныйЛист_НСКДокументыНаДоставку
            ПО МаршрутныйЛист_НСКДокументыНаДоставку.РеализацияТоваров <> РеализацияТоваровУслуг.Ссылка
    ГДЕ
        РеализацияТоваровУслуг.Проведен = ИСТИНА
        И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И РеализацияТоваровУслуг.Организация = &Организация
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Организация = &Организация
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Проведен = ИСТИНА
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ЗначенияСвойствОбъектов.Значение КАК РайонДоставки,
        ДокументыРеализации.Контрагент КАК Контрагент,
        ДокументыРеализации.СуммаДокумента КАК СуммаДокумента,
        ДокументыРеализации.Ссылка,
        ЗначенияСвойствОбъектов.Свойство
    ИЗ
        ДокументыРеализации КАК ДокументыРеализации
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО ДокументыРеализации.Ссылка = ЗначенияСвойствОбъектов.Объект
    ГДЕ
        ЗначенияСвойствОбъектов.Свойство.Ссылка = &ПВХ
    
    УПОРЯДОЧИТЬ ПО
        РайонДоставки УБЫВ,
        Контрагент УБЫВ
    ИТОГИ
        СУММА(СуммаДокумента)
    ПО
        РайонДоставки
    Написал вот такой запрос. Мне нужно получить документы РТиУ за период минус документы которые уже распределены на доставку. То есть включены в табличную часть документа "Маршрутный лист".

    Код:
    И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Организация = &Организация
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Проведен = ИСТИНА
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    Если убираю эту часть кода то запрос срабатывает. Если оставляю то результат пустой. Это при том что у меня нет ещё ни одного документа Маршрутный лист. Следовательно в результате должны быть все реализации.
    Вообще я правильно запрос сделал? Или можно как то проще/красивее/правильнее?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    разбей на простые запросы с помещением результатов во временные таблицы.
    Значения свойств - точно можно во временную таблицу поместить, первый запрос в пакете разбей на 2: Документы реализаций и маршрутные листы.
  3. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Вадим уже разбил.
    Но у меня почему то не срабатывает условие что в результате должны быть только те что не распределены.

    Код:
    ВЫБРАТЬ
        РеализацияТоваровУслуг.Контрагент,
        РеализацияТоваровУслуг.СуммаДокумента,
        РеализацияТоваровУслуг.Ссылка
    ПОМЕСТИТЬ ДокументыРеализации
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
        РеализацияТоваровУслуг.Проведен = ИСТИНА
        И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И РеализацияТоваровУслуг.Организация = &Организация
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        МаршрутныйЛист_НСКДокументыНаДоставку.РеализацияТоваров
    ПОМЕСТИТЬ МаршрутныеЛисты
    ИЗ
        Документ.МаршрутныйЛист_НСК.ДокументыНаДоставку КАК МаршрутныйЛист_НСКДокументыНаДоставку
    ГДЕ
        МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Проведен = ИСТИНА
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Организация = &Организация
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ДокументыРеализации.Контрагент,
        ДокументыРеализации.СуммаДокумента,
        ДокументыРеализации.Ссылка
    ПОМЕСТИТЬ РезультирующаяВТ
    ИЗ
        ДокументыРеализации КАК ДокументыРеализации
            ЛЕВОЕ СОЕДИНЕНИЕ МаршрутныеЛисты КАК МаршрутныеЛисты
            ПО ДокументыРеализации.Ссылка <> МаршрутныеЛисты.РеализацияТоваров
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ЗначенияСвойствОбъектов.Значение КАК РайонДоставки,
        РезультирующаяВТ.Контрагент КАК Контрагент,
        РезультирующаяВТ.СуммаДокумента КАК СуммаДокумента,
        РезультирующаяВТ.Ссылка,
        ЗначенияСвойствОбъектов.Свойство
    ИЗ
        РезультирующаяВТ КАК РезультирующаяВТ
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО РезультирующаяВТ.Ссылка = ЗначенияСвойствОбъектов.Объект
    ГДЕ
        ЗначенияСвойствОбъектов.Свойство.Ссылка = &ПВХ
    
    УПОРЯДОЧИТЬ ПО
        РайонДоставки УБЫВ,
        Контрагент УБЫВ
    ИТОГИ
        СУММА(СуммаДокумента)
    ПО
        РайонДоставки
    По анализу временных таблиц смотрю в таблице маршрутные листы есть одна ссылка.
    Но в результате выполнения она выводится. А не должна. То есть результат должен быть без этого документа.
    А с условием в первом запросе это я затупил. Док перепровёл у него дата стала больше чем я задал параметр в консоли. И не обратил на это внимание.
  4. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    РезультатЗапроса.jpg
    Вот результат в ВТ.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    РезультирующаяВТ и будет содержать что-то при левом соединении, там нужно внутреннее соединение, чтобы реализации ограничивались данными маршрутных листов.
    Значения свойств тоже в ВТ выбери перед соединением с результирующей.
    Сортировка по ссылке - не эффективна, сортируй по наименованию
    TODD22 нравится это.
  6. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Что значит "что бы реализации ограничивались данными маршрутных листов".
    Мне нужны все реализации которые ещё не распределены по маршрутным листам.
    --- Объединение сообщений, 19 сен 2015 ---
    И про сортировку по ссылке что то не понял. Ты про что?
    --- Объединение сообщений, 19 сен 2015 ---
    Так с внутренним соединением проканало. :)
    --- Объединение сообщений, 19 сен 2015 ---
    Код:
    ВЫБРАТЬ
        РеализацияТоваровУслуг.Контрагент,
        РеализацияТоваровУслуг.СуммаДокумента,
        РеализацияТоваровУслуг.Ссылка
    ПОМЕСТИТЬ ДокументыРеализации
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
        РеализацияТоваровУслуг.Проведен = ИСТИНА
        И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И РеализацияТоваровУслуг.Организация = &Организация
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        МаршрутныйЛист_НСКДокументыНаДоставку.РеализацияТоваров.Ссылка
    ПОМЕСТИТЬ МаршрутныеЛисты
    ИЗ
        Документ.МаршрутныйЛист_НСК.ДокументыНаДоставку КАК МаршрутныйЛист_НСКДокументыНаДоставку
    ГДЕ
        МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Проведен = ИСТИНА
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И МаршрутныйЛист_НСКДокументыНаДоставку.Ссылка.Организация = &Организация
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ДокументыРеализации.Контрагент,
        ДокументыРеализации.СуммаДокумента,
        ДокументыРеализации.Ссылка
    ПОМЕСТИТЬ РезультирующаяВТ
    ИЗ
        ДокументыРеализации КАК ДокументыРеализации
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ МаршрутныеЛисты КАК МаршрутныеЛисты
            ПО ДокументыРеализации.Ссылка <> МаршрутныеЛисты.РеализацияТоваровСсылка.Ссылка
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ЗначенияСвойствОбъектов.Объект,
        ЗначенияСвойствОбъектов.Значение
    ПОМЕСТИТЬ ВТ_СвойстваОбъектов
    ИЗ
        РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
        ЗначенияСвойствОбъектов.Свойство = &ПВХ
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_СвойстваОбъектов.Значение КАК РайонДоставки,
        РезультирующаяВТ.Контрагент КАК Контрагент,
        РезультирующаяВТ.СуммаДокумента КАК СуммаДокумента,
        РезультирующаяВТ.Ссылка
        ИЗ
        РезультирующаяВТ КАК РезультирующаяВТ
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвойстваОбъектов КАК ВТ_СвойстваОбъектов
            ПО РезультирующаяВТ.Ссылка = ВТ_СвойстваОбъектов.Объект
    
    УПОРЯДОЧИТЬ ПО
        РайонДоставки УБЫВ,
        Контрагент УБЫВ
    ИТОГИ
        СУММА(СуммаДокумента)
    ПО
        РайонДоставки
    Вот так переписал. Но что то мне кажется криво как то...
    У меня в ВТ по свойствам объекта много элементов в выборке, там ещё других юр лиц документы.
    Последнее редактирование: 19 сен 2015
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    УПОРЯДОЧИТЬ ПО
    РайонДоставки УБЫВ,
    Контрагент УБЫВ

    это сортировка по ссылкам.

    Сделай:

    УПОРЯДОЧИТЬ ПО
    ЗначенияСвойствОбъектов.Значение.Наименование УБЫВ,
    РезультирующаяВТ.Контрагент.Наименование УБЫВ

    Вернее нужно вывести в запрос еще и Наименование элемента справочника и по нему сортировать.
    Т.е. соедини таблицу Реализаций со справочником Контрагентов(либо платформа это сделает за тебя) и таблицу значений свойств со справочником Районов.
    TODD22 нравится это.
  8. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Поправил упорядочивание.

    А значения свойств объектов можно как то ограничить выборкой только по организации?
    И не нужно ли там через Выразить ограничивать тип объекта только документом РТиУ?
    Хотя у меня это свойство будет только у РТиУ.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Говорю ж, сделай пакет с выборкой свойств, там максимально все оргничь.
    По организации - не получится, по типу объекта - спокойно.
  10. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Пакет сделал
    Код:
    ВЫБРАТЬ
        ЗначенияСвойствОбъектов.Объект,
        ЗначенияСвойствОбъектов.Значение
    ПОМЕСТИТЬ ВТ_СвойстваОбъектов
    ИЗ
        РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
        ЗначенияСвойствОбъектов.Свойство = &ПВХ
    ;
    
    --- Объединение сообщений, 19 сен 2015 ---
    Только надо ограничить...
    Как через выразить ограничить тип только РТиУ?
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Объект Ссылка Документ.РеализацияТоваровУслуг

Поделиться этой страницей