8.х Запрос с внутренним соединением

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

  1. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Мне нужно в запросе вывести все приходные накладные вместе с ИНН организации и фамилией ее руководителя. Проблема в том, что это надо сделать с помощью операции ВНУТРЕННЕЕ СОЕДИНЕНИЕ, с которой я не очень хорошо дружу.

    Код:
    ВЫБРАТЬ   
    ПриходнаяНакладная.Номер КАК НомерПриходнойНакладной,
    Организация.ИНН КАК ИННОрганиз,
    Организация.Руководитель КАК РуководительОрганизации,
    Организация.Наименование КАК НазваниеОрг
    
    ИЗ
    Документ.ПриходнаяНакладная КАК ПриходнаяНакладная ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Организации КАК Организация
    ПО ПриходнаяНакладная.Ссылка = Организация.Наименование
    
    мало того, что я что-то пропустила, так еще и ничего не поняла в этой операции(((
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    вам надо ИНН брать из документа прям.. из ссылки на организацию.. а директора из РегистраСведений ответственные лица

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

    Вложения:

  3. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое, но мне надо сделать не через левое определение, а через внутреннее соединение, которое как работает я понять не могу. И не могу просмотреть структуру справочника Организации((
  4. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    помнится на курсах гончаров говорил, что внутреннее соединение реализуется системой как 2 левых соединения :)

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

    для таблиц:
    1 ккуе
    1 фыв
    2 вчм
    3 выа
    4 sdf

    и

    5 jyh
    4 вчм
    3 уке
    2 укеп
    1 swe

    результатом внутреннего соедитненя по первым колонкам будет:

    1 вчм swe
    1 фыв swe

    если единять по вторым колонкам, то будет
    2 вчм 4

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

    1) почему обязательно через внутренее
    2) как ты смотришь структуру спарвочника? через отладчик/дерево конфигурации?
  5. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    просто у меня такое задание, что нужно сделать это с внутренним соединением. А я не понимаю нормально как оно работает и чевствую себя полной тупицей.
    я смотрю и через конфигуратор и делала запрос на выборку всех полей. Но это мне мало чем помогло(
  6. tugrik
    Offline

    tugrik Опытный в 1С

    Регистрация:
    18 июн 2008
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    кроме этого того что уже предлагал trik ничего в голову не приходит....

    Код:
    ВЫБРАТЬ
    ПриходнаяНакладная.Ссылка,
    ПриходнаяНакладная.Организация,
    ПриходнаяНакладная.Организация.ИНН,
    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
    ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо
    ИЗ
    Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних(, ОтветственноеЛицо = &ОтветственноеЛицо) КАК ОтветственныеЛицаОрганизацииСрезПоследних
    ПО ПлатежноеПоручениеВходящее.Организация = ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница
    
    УПОРЯДОЧИТЬ ПО
    ПлатежноеПоручениеВходящее.Дата,
    ПлатежноеПоручениеВходящее.Номер
    
    
    кстати в данном примере что левое соединение, что внутренее - оба возвращают один и тот же результат...
  7. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    А кто-нибудь может мне объяснить что такое внутреннее соединение. я этого не понимаю, а из примера выше ничего не вынесла
  8. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Вот вообще отвлеченно: есть 2 списка данных
    А1 --- А3
    А2 --- А4
    А3 --- А5
    А4 --- А6
    А5 --- А7
    Соответственно
    ЛЕВОЕ СОЕДИНЕНИЕ берет все элементы из первого списка и совпадающие из вторго, т.е. А1-А5
    ПРАВОЕ СОЕДИНЕНИЕ берет все элементы из второго списка и совпадающие из первого, т.е. А3-А7
    ВНУТРЕННЕ СОЕДИНЕНИЕ берет только элементы из первого списка и совпадающие со вторым, т.е. А3-А5
    ПОЛНОЕ СОЕДИНЕНИЕ берет все элементы из первого списка и все из вторго, т.е. А1-А7.
    Иногда в зависимости от наборов данных результаты соединений могут совпадать.
  9. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Значит я правильно поняла онятие внутреннее соединение.
    А вот запрос все равно правильно написать не могу(
  10. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    А откуда этот запрос вообще? Я так понимаю, что конфигурация нетиповая. Покажите структуру документа ПриходнаяНакладная и справочника Организации. Просто, судя по всему условие связи неправильно написано. Скорее всего должно быть:
    Код:
    ПО ПриходнаяНакладная.Организация = Организация.Ссылка
    
    
    Ну и помимо наименования и ИНН в справочнике реквизит Руководитель должен быть
  11. TopicStarter Overlay
    StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Да, конфигурация нетиповая.
    :unsure: такс, вы правы. Я не правильно прописала условия связи :aua: :smile:

    запрос стал выглядеть так

    Код:
        ВЫБРАТЬ   
    ПриходнаяНакладная.Номер КАК НомерПриходнойНакладной,
    Орг.ИНН КАК ИННОрганиз,
    Орг.Руководитель КАК РуководительОрганизации,
    Орг.Наименование КАК НазваниеОрг
    
    ИЗ
    Документ.ПриходнаяНакладная КАК ПриходнаяНакладная ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Организации КАК Орг
    ПО ПриходнаяНакладная.Организация = Орг.Ссылка
    УПОРЯДОЧИТЬ ПО
    ПриходнаяНакладная.Номер  
    
    :aua: :vis:
    Спасибо вам, еще раз всем огроменное!!!

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