Добрый день, нужно у контрагента получить Юр. адрес и почтовый. Код: "ВЫБРАТЬ | Контрагенты.Ссылка, | КонтактнаяИнформация.Представление КАК ПердставлениеЮрАдреса, | КонтактнаяИнформация.Представление КАК ПредставлениеПочтАдреса |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО КонтактнаяИнформация.Объект = Контрагенты.Ссылка |ГДЕ | КонтактнаяИнформация.Вид = &Вид"; Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); Как правильно построить запрос что бы он выдавал и юр адрес и почтовый адрес ?
Здраствуйте! Вид адреса может быть любой Код: Функция ПолучитьРезультатЗапроса_alp() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка, | КонтактнаяИнформация.Представление КАК ПердставлениеЮрАдреса, | КонтактнаяИнформация.Вид |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО КонтактнаяИнформация.Объект = Контрагенты.Ссылка |ГДЕ | КонтактнаяИнформация.Вид В(&Вид) | |УПОРЯДОЧИТЬ ПО | Ссылка"; //Параметры запроса //Параметр список 'Вид' ПараметрСписок_Вид = Новый СписокЗначений; ПараметрСписок_Вид.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); ПараметрСписок_Вид.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента); Запрос.УстановитьПараметр("Вид",ПараметрСписок_Вид);// Список значений Результат = Запрос.Выполнить(); Возврат Результат; КонецФункции //ПолучитьРезультатЗапроса_alp
Или можно вот так, без левого соединения (изменю чуть запрос, который привел mialord): Код: "ВЫБРАТЬ КонтактнаяИнформация.Объект КАК Объект, КонтактнаяИнформация.Представление КАК ПердставлениеЮрАдреса, КонтактнаяИнформация.Вид ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Вид В(&Вид) И КонтактнаяИнформация.Объект ССЫЛКА Справочник.Контрагенты </span> УПОРЯДОЧИТЬ ПО Объект АВТОУПОРЯДОЧИВАНИЕ" </FONT></FONT></pre>
Спасибо за помощь! , но я имел ввиду немного друго, нужно что бы запрос выдавал не все виды "Контактной информации" в ОДНОЙ переменной запроса, а в переменный , например ФактАдрес и ЮрАдрес соответствующие значение. можно ли так реализовать запросом ?
Можно всё Код: Функция ПолучитьРезультатЗапроса_alp() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Контрагент, | ВложенныйЗапросФактАдрес.ФактическийАдрес, | ВложенныйЗапросЮрАдрес.ЮридическийАдрес |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | КонтактнаяИнформация.Объект КАК Объект, | КонтактнаяИнформация.Представление КАК ФактическийАдрес | ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация | ГДЕ | КонтактнаяИнформация.Вид = &ВидФакт) КАК ВложенныйЗапросФактАдрес | ПО Контрагенты.Ссылка = ВложенныйЗапросФактАдрес.Объект | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | КонтактнаяИнформация.Объект КАК Объект, | КонтактнаяИнформация.Представление КАК ЮридическийАдрес | ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация | ГДЕ | КонтактнаяИнформация.Вид = &ВидЮр) КАК ВложенныйЗапросЮрАдрес | ПО Контрагенты.Ссылка = ВложенныйЗапросЮрАдрес.Объект |ГДЕ | Контрагенты.ЭтоГруппа = ЛОЖЬ | |УПОРЯДОЧИТЬ ПО | Контрагент |АВТОУПОРЯДОЧИВАНИЕ"; //Параметры запроса Запрос.УстановитьПараметр("ВидФакт",Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);// Справочник ссылка: Виды контактной информации Запрос.УстановитьПараметр("ВидЮр",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);// Справочник ссылка: Виды контактной информации Результат = Запрос.Выполнить(); Возврат Результат; КонецФункции //ПолучитьРезультатЗапроса_alp
Всем Добрый День! mialord, красивый у Вас запрос. Вопрос: Подскажите, а вот это обращение к запросу Установка параметров " Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента", может идти не через установку параметров а в самом запросе? Пояснение: есть запрос Код: ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, КонтактныеЛицаКонтрагентов.Ссылка КАК КонтактноеЛицо, ВЫРАЗИТЬ(КИ_АдресЭлектроннойПочты.Представление КАК СТРОКА(200)) КАК АдресЭлектроннойПочты, ВЫРАЗИТЬ(КИ_Телефон.Представление КАК СТРОКА(200)) КАК Телефон ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КИ_АдресЭлектроннойПочты ПО КонтактныеЛицаКонтрагентов.Ссылка = КИ_АдресЭлектроннойПочты.Объект И (КИ_АдресЭлектроннойПочты.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КИ_Телефон ПО КонтактныеЛицаКонтрагентов.Ссылка = КИ_Телефон.Объект И (КИ_Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) ПО Контрагенты.Ссылка = КонтактныеЛицаКонтрагентов.Владелец Данный запрос вставляется в СКД, как 2-ой источник данных. Он работает. Но дублирует строки. Дублирует строки, так как у контактных лиц контрагентов может быть много разных телефонов с одним типом перечисления телефон. Можно ли выражение в моём запросе Код: Перечисление.ТипыКонтактнойИнформации.Телефон ЗАМЕНИТЬ НА Код: Справочники.ВидыКонтактнойИнформации.ТелефонМобильный и так по всем видам телефонов для справочника Контактные Лица Контрагентов, и адресов. Но не используя параметр через &.
Можно. В таком случае соединение будет немного другим: Код: ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КИ_Телефон ПО КонтактныеЛицаКонтрагентов.Ссылка = КИ_Телефон.Объект И (КИ_Телефон.Вид = ЗНАЧЕНИЕ(Справочники.ВидыКонтактнойИнформации.ТелефонМобильный))