Добрый день. Я начинающий программист. Подскажите пожалуйста, у меня такой вопрос:
в запросе,одно из требований, нужно получить почту и номер покупателя. В самом справочнике "Контрагенты" нет реквизита, хранящий эту информацию, но на форме элемента есть страничка, в которой хранятся эти данные. Они берутся из другого справочника. Я никак не могу понять, как или с помощью чего я могу получить эти значения в своём запросе. Подскажите пожалуйста. (1C Предприятие 8.3)
---
регистр сведений контактная информация
---
Совет на будущее, старайтесь избегать оператора ИЛИ в условиях запросов, я бы сделал так

```1c
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Покупатель,
    Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
    КонтактнаяИнформацияТел.Представление КАК Телефон,
    КонтактнаяИнформацияПочта.Представление КАК Почта
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТел
    ПО (КонтактнаяИнформацияТел.Объект = Контрагенты.Ссылка)
    И КонтактнаяИнформацияТел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияПочта
    ПО (КонтактнаяИнформацияПочта.Объект = Контрагенты.Ссылка)
    И КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
    ГДЕ
    Контрагенты.Покупатель
```
---
регистр сведений контактная информация
---
Да как? Как вы это делаете? Я вроде проверял регистр, но не нашёл нужного... Капец. Спасибо, сейчас решу и отмечу.
---
в "старых" конфигурациях контактная информация хранится в соответствующем регистре сведений, в измерении "Объект" (или как-то так) хранится сцылка на владельца (контрагента, физлица и т.д.). В итоге в запросе достаточно левого соединения по объекту и виду контактной информации. В "новых" конфигурациях все поменяли - теперь эта информация хранится в табличной части справочника и извлекается тоже левым соединением, но уже к табличной части, а не к регистру. Стоит иметь это ввиду, а то выучите одно, а завтра - опа - все не там. Такие метамарфозы - очень частая вещь, поэтому учить где и что лежит досконально - смысла нет, но примерно знать, как организованы данные в том или ином решении - в этом смысл есть. Правда если сдавать профа, то вызубрить эту бессмысленную информацию с точностью до запятой все-же придется...
---
Спасибо большое за совет, учту
---
В следующий раз перед тем как задать вопрос - указывайте название и версию конфигурации
---
Виноват
---
И ещё. На скрине обычные формы. Сейчас более востребованы управляемые формы
---
Я знаю какая фомра на скрине, но фирма работает на обычной.
---
И ещё вопрос, подскажите, как объединить две строки одного контрагента в одну?
---
Сгруппировать их по юрлицу, а к полю телефон надо применить агрегатную функцию, но не видя текста запроса сложно давать советы)
---
```1c
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Покупатель,
    Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
    ВЫБОР
    КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    ТОГДА КонтактнаяИнформация.Представление
    КОНЕЦ КАК ТелефонПокупателя,
    ВЫБОР
    КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
    ТОГДА КонтактнаяИнформация.Представление
    КОНЕЦ КАК АдресЭлектроннойПочтыПокупателя
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    ПО (КонтактнаяИнформация.Объект = Контрагенты.Ссылка)
    ГДЕ
    Контрагенты.Покупатель
    И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    ИЛИ КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
```
---
Совет на будущее, старайтесь избегать оператора ИЛИ в условиях запросов, я бы сделал так

```1c
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Покупатель,
    Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
    КонтактнаяИнформацияТел.Представление КАК Телефон,
    КонтактнаяИнформацияПочта.Представление КАК Почта
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТел
    ПО (КонтактнаяИнформацияТел.Объект = Контрагенты.Ссылка)
    И КонтактнаяИнформацияТел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияПочта
    ПО (КонтактнаяИнформацияПочта.Объект = Контрагенты.Ссылка)
    И КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
    ГДЕ
    Контрагенты.Покупатель
```
---
Спасибо большое. Вроде работает, допилю полный запрос и уже помечу решение.
И за совет спасибо, учусь. Не сталкивался и не видел такого способа задавать условие.
---
Еще я не увидел где накладывается отбор по контрагенту, надеюсь вы это делаете, а не соединяете с регистром весь справочник контрагенты
---
А разве условия "Контрагенты.Покупатель" не достаточно?
---
Нет, это условие выведет всех контрагентов, у которых реквизит Покупатель = Истина, если вам именно это нужно тогда ок, есди же надо только по какомуто конкретному или списку контрагентов, тогда надо сделать отбор по ссылке и установить параметр с массивом этих ссылок или одной единственной
---
На данный момент, условия "Контрагенты.Покупатель" достаточно, но спасибо, опять же, учту.
---
А можно ещё такой вопрос? У меня у контрагента (например) есть два номера, то есть в результате запроса у меня выводится две строки с номерами (разные), следовательно, и контрагент, и почта и т.д. дублируются. Можно ли как то значение телефона (например) с двух строк соединить в одну ячейку (чтобы было в одной строке) через запятую или как то так? Если да, то подскажите методику.

Например!

Таблица 1:
-----------------
Name |Type
-----------------
Мишка |Игрушка
Мишка |Зверь
Енот |Зверь

Таблица 2:
-----------------
Name |Value
----------------
Мишка |200
Енот |100
Енот |200

Ожидаемый результат:
-------------------------
Мишка |200|Зверь,Игрушка
Енот |300|Зверь