8.х Контактная информация контрагентов

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

  1. TopicStarter Overlay
    has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Есть временная таблица со списком контрагентов. Необходимо получить их адрес и телефон. Вот текст запроса
    Код:
    ВЫБРАТЬ
    ВТЧеки.Контрагент,
    ВЫБОР
    КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
    ТОГДА КонтактнаяИнформация.Представление
    ИНАЧЕ ""
    КОНЕЦ КАК Адрес,
    ВЫБОР
    КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)
    ТОГДА КонтактнаяИнформация.Представление
    ИНАЧЕ ""
    КОНЕЦ КАК Телефон
    ИЗ
    ВТЧеки КАК ВТЧеки
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    ПО ВТЧеки.Контрагент = КонтактнаяИнформация.Объект
    
    
    Проблема в том, что она выводит мне 2 строки, т.е. контрагента и адрес, но с пустым телефоном и этого же контрагента, но с телефоном и пустым адресом. Если адрес и телефон выбирать отдельно из регистра, т.е. 2 раза....то очень долго формируется
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Правильно выводит.
    Переделайте запрос - адрес доставайте из одной таблицы, а телефон из другой. В соедиении ВТ с таблицами пропишите ваши условия по типу и виду.
  3. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Вот набросал по-быстренькому. Только здесь я использую пакет запроса, ну думаю смысл нескольких таблиц и связей просматривается.
    Код:
    "ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент
    ПОМЕСТИТЬ ВТ
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ГДЕ
    Контрагенты.Ссылка = &Контрагент;
    </span>
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВТ.Контрагент,
    КонтактнаяИнформацияАдрес.Представление КАК Адрес,
    КонтактнаяИнформацияТелефон.Представление КАК Телефон
    ИЗ
    ВТ КАК ВТ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияАдрес
    ПО ВТ.Контрагент = КонтактнаяИнформацияАдрес.Объект
    И (КонтактнаяИнформацияАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    И КонтактнаяИнформацияАдрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента))
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТелефон
    ПО ВТ.Контрагент = КонтактнаяИнформацияТелефон.Объект
    И (КонтактнаяИнформацияТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    И КонтактнаяИнформацияТелефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента))" 
    </FONT></FONT></pre>
  4. TopicStarter Overlay
    has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    щас попробую

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