Запрос

1. Jovi 15.01.20 13:09 Сейчас в теме
Добрый день. Я начинающий программист. Подскажите пожалуйста, у меня такой вопрос:
в запросе,одно из требований, нужно получить почту и номер покупателя. В самом справочнике "Контрагенты" нет реквизита, хранящий эту информацию, но на форме элемента есть страничка, в которой хранятся эти данные. Они берутся из другого справочника. Я никак не могу понять, как или с помощью чего я могу получить эти значения в своём запросе. Подскажите пожалуйста. (1C Предприятие 8.3)
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. minarenko 15.01.20 13:11 Сейчас в теме
(1) регистр сведений контактная информация
13. bad_wag 48 16.01.20 15:15 Сейчас в теме
(12) Совет на будущее, старайтесь избегать оператора ИЛИ в условиях запросов, я бы сделал так
ВЫБРАТЬ
Контрагенты.Ссылка КАК Покупатель,
Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
КонтактнаяИнформацияТел.Представление КАК Телефон,
КонтактнаяИнформацияПочта.Представление КАК Почта
ИЗ
Справочник.Контрагенты КАК Контрагенты
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТел
  ПО (КонтактнаяИнформацияТел.Объект = Контрагенты.Ссылка)
  И КонтактнаяИнформацияТел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияПочта
  ПО (КонтактнаяИнформацияПочта.Объект = Контрагенты.Ссылка)
  И КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ГДЕ
  Контрагенты.Покупатель
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. minarenko 15.01.20 13:11 Сейчас в теме
(1) регистр сведений контактная информация
4. Jovi 15.01.20 13:22 Сейчас в теме
(2) Да как? Как вы это делаете? Я вроде проверял регистр, но не нашёл нужного... Капец. Спасибо, сейчас решу и отмечу.
6. starik-2005 3036 15.01.20 14:23 Сейчас в теме
(4) в "старых" конфигурациях контактная информация хранится в соответствующем регистре сведений, в измерении "Объект" (или как-то так) хранится сцылка на владельца (контрагента, физлица и т.д.). В итоге в запросе достаточно левого соединения по объекту и виду контактной информации. В "новых" конфигурациях все поменяли - теперь эта информация хранится в табличной части справочника и извлекается тоже левым соединением, но уже к табличной части, а не к регистру. Стоит иметь это ввиду, а то выучите одно, а завтра - опа - все не там. Такие метамарфозы - очень частая вещь, поэтому учить где и что лежит досконально - смысла нет, но примерно знать, как организованы данные в том или ином решении - в этом смысл есть. Правда если сдавать профа, то вызубрить эту бессмысленную информацию с точностью до запятой все-же придется...
bad_wag; dakork; SagittariusA; Jovi; alex-l19041; +5 Ответить
7. Jovi 15.01.20 14:30 Сейчас в теме
(6) Спасибо большое за совет, учту
3. xSavantx 25 15.01.20 13:20 Сейчас в теме
В следующий раз перед тем как задать вопрос - указывайте название и версию конфигурации
SagittariusA; +1 Ответить
5. Jovi 15.01.20 13:22 Сейчас в теме
8. dakork 33 15.01.20 18:41 Сейчас в теме
(5)И ещё. На скрине обычные формы. Сейчас более востребованы управляемые формы
9. Jovi 16.01.20 13:50 Сейчас в теме
(8) Я знаю какая фомра на скрине, но фирма работает на обычной.
user774630; +1 Ответить
10. Jovi 16.01.20 13:50 Сейчас в теме
И ещё вопрос, подскажите, как объединить две строки одного контрагента в одну?
Прикрепленные файлы:
11. bad_wag 48 16.01.20 15:07 Сейчас в теме
(10) Сгруппировать их по юрлицу, а к полю телефон надо применить агрегатную функцию, но не видя текста запроса сложно давать советы)
12. Jovi 16.01.20 15:10 Сейчас в теме
(11)
ВЫБРАТЬ
	Контрагенты.Ссылка КАК Покупатель,
	Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
	ВЫБОР
		КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
			ТОГДА КонтактнаяИнформация.Представление
	КОНЕЦ КАК ТелефонПокупателя,
	ВЫБОР
		КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
			ТОГДА КонтактнаяИнформация.Представление
	КОНЕЦ КАК АдресЭлектроннойПочтыПокупателя
ИЗ
	Справочник.Контрагенты КАК Контрагенты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
		ПО (КонтактнаяИнформация.Объект = Контрагенты.Ссылка)
ГДЕ
	Контрагенты.Покупатель
	И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
			ИЛИ КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
Показать
13. bad_wag 48 16.01.20 15:15 Сейчас в теме
(12) Совет на будущее, старайтесь избегать оператора ИЛИ в условиях запросов, я бы сделал так
ВЫБРАТЬ
Контрагенты.Ссылка КАК Покупатель,
Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
КонтактнаяИнформацияТел.Представление КАК Телефон,
КонтактнаяИнформацияПочта.Представление КАК Почта
ИЗ
Справочник.Контрагенты КАК Контрагенты
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТел
  ПО (КонтактнаяИнформацияТел.Объект = Контрагенты.Ссылка)
  И КонтактнаяИнформацияТел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияПочта
  ПО (КонтактнаяИнформацияПочта.Объект = Контрагенты.Ссылка)
  И КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ГДЕ
  Контрагенты.Покупатель
Показать
14. Jovi 16.01.20 15:21 Сейчас в теме
(13)
ВЫБРАТЬ
Контрагенты.Ссылка КАК Покупатель,
Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
КонтактнаяИнформацияТел.Представление КАК Телефон,
КонтактнаяИнформацияПочта.Представление КАК Почта
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТел
ПО (КонтактнаяИнформацияТел.Объект = Контрагенты.Ссылка)
И КонтактнаяИнформацияТел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияПочта
ПО (КонтактнаяИнформацияПочта.Объект = Контрагенты.Ссылка)
И КонтактнаяИнформацияПочта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ГДЕ
Контрагенты.Покупатель
Показать


Спасибо большое. Вроде работает, допилю полный запрос и уже помечу решение.
И за совет спасибо, учусь. Не сталкивался и не видел такого способа задавать условие.
15. bad_wag 48 16.01.20 15:26 Сейчас в теме
(14) Еще я не увидел где накладывается отбор по контрагенту, надеюсь вы это делаете, а не соединяете с регистром весь справочник контрагенты
16. Jovi 16.01.20 16:06 Сейчас в теме
(15) А разве условия "Контрагенты.Покупатель" не достаточно?
17. bad_wag 48 16.01.20 16:11 Сейчас в теме
(16) Нет, это условие выведет всех контрагентов, у которых реквизит Покупатель = Истина, если вам именно это нужно тогда ок, есди же надо только по какомуто конкретному или списку контрагентов, тогда надо сделать отбор по ссылке и установить параметр с массивом этих ссылок или одной единственной
18. Jovi 16.01.20 16:12 Сейчас в теме
(17) На данный момент, условия "Контрагенты.Покупатель" достаточно, но спасибо, опять же, учту.
19. Jovi 16.01.20 17:42 Сейчас в теме
А можно ещё такой вопрос? У меня у контрагента (например) есть два номера, то есть в результате запроса у меня выводится две строки с номерами (разные), следовательно, и контрагент, и почта и т.д. дублируются. Можно ли как то значение телефона (например) с двух строк соединить в одну ячейку (чтобы было в одной строке) через запятую или как то так? Если да, то подскажите методику.

Например!

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

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


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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот