Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:59

Выборка

Автор agusikdeon, 21 мая 2011, 00:35

0 Пользователей и 1 гость просматривают эту тему.

agusikdeon

есть Выборка
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка,
   НастройкиГрупповойПечатиНакладных.ПечетнаяФорма,
   НастройкиГрупповойПечатиНакладных.КоличествоЭкземпляров,
   ВЫБОР
      КОГДА РеализацияТоваровУслуг.Контрагент = НастройкиГрупповойПечатиНакладных.Контрагент
         ТОГДА 1
      ИНАЧЕ 2
   КОНЕЦ КАК Приоритет
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиГрупповойПечатиНакладных КАК НастройкиГрупповойПечатиНакладных
      ПО РеализацияТоваровУслуг.Организация = НастройкиГрупповойПечатиНакладных.Организация
ГДЕ
   (НастройкиГрупповойПечатиНакладных.Контрагент = РеализацияТоваровУслуг.Контрагент
         ИЛИ НастройкиГрупповойПечатиНакладных.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
в этой выборке есть повторные записи вот такого типа

получается есть таблица с приоритетами печатных форм, в которой записи с минимальным приоритетом определяют необходимую печатную форму для накладной, нужно вывести в запросе только эти записи.
всю голову изломал
не знаю как помогите плиз)

cska-fanat-kz

Попробуйте в соединение таблиц (документ и РС) добавить еще условие на контрагента.
Тогда вам поле приоритет не понадобится совсем - будете сразу получать тот список ПФ, который надо...

Да. И условие в ГДЕ надо убрать: условием вы отбираете те записи, у которых Контрагент документа = контрагенту РС или пустому, хотя на самом деле вам нужно, чтобы только Контрагент документа = Контрагенту РС. Правда же? )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

agusikdeon

не так)
вот фотка самого РС

и тут нужно если контрагент и фирма документа совпадают с записью в РС то выводить эту ПФ а если нет такого совпадения
и есть совпадение только организации то выводить ту ПФ которая соответствует данной фирме и пустой контрагенту

agusikdeon

помогите кто-нибудь)

Шурыгин Иван Сергеевич

можете выслать примеры всех исходных таблиц... и таблицу которую хотите получить, в этом запросе я знаю почему так выводится, условия составленны так, что таблица объединяется... тут надо делать через левое соединение и через временную таблицу...
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

agusikdeon

я делал вот так вот
но мне нужен вариант с приоритетом(так сказали) потому что он более компактный

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Вт.Ссылка КАК Ссылка,
   Вт.ПечетнаяФорма,
   Вт.КоличествоЭкземпляров
ИЗ
   Вт КАК Вт

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   Вт1.Ссылка,
   Вт1.ПечетнаяФорма,
   Вт1.КоличествоЭкземпляров
ИЗ
   Вт1 КАК Вт1

Шурыгин Иван Сергеевич

а попробуйте не сразу регистр настройки груповой печати в левое соединение а сначало его загнать во временную таблицу, отсортировать по приоритету... и только после этого объединять с основной таблицей
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск