Имя: Пароль:
1C
1С v8
Сгруппировать по контрагенту в запросе
,
0 skelaKuban
 
08.08.11
15:30
Сделал взапрос:
ВЫБРАТЬ
   Контрагенты.Ссылка,
   Контрагенты.ИНН,
   Контрагенты.КПП
ПОМЕСТИТЬ ВТ_Контрагенты
ИЗ
   Справочник.Контрагенты КАК Контрагенты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ_Контрагенты.Ссылка,
   ВТ_Контрагенты.ИНН,
   ВТ_Контрагенты.КПП,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.фактадресконтрагента)
           ТОГДА КонтактнаяИнформация.Представление
   КОНЕЦ КАК ФактическийАдрес,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.юрадресконтрагента)
           ТОГДА КонтактнаяИнформация.Представление
   КОНЕЦ КАК ЮридическийАдрес
ИЗ
   ВТ_Контрагенты КАК ВТ_Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО ВТ_Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
   КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(перечисление.типыконтактнойинформации.адрес)
Таким образом выбираю контакную информацию из соответствующего регистра сведений. У контрагента есть юр и факт. адреса, в таком виде запрос выводит в 2-е строки информацию по одному и тому же контрагенту, надо вывести в 1 строку, СКД.
1 Живой Ископаемый
 
08.08.11
15:31
ответ очевиден
2 Jstunner
 
08.08.11
15:32
два раза соединять надо, а "ГДЕ" перенести в "ПО"
3 Рэйв
 
08.08.11
15:32
А зачем ВТ?
4 zbv
 
08.08.11
15:32
ИЗ
   контрагенты
Левое соединение
   КонтактнаяИнформация_ЮридическийАдрес
Левое Соединение
   КонтактнаяИнформация_ФактическийАдрес
5 skelaKuban
 
08.08.11
15:41
надо соединить справочник с РС получается 3 раза?
6 skelaKuban
 
08.08.11
15:47
по подробней, пожалуйста а чет не понятно
7 skelaKuban
 
08.08.11
15:52
Не понятно по какому полю соединять РС со справочником, кроме как по "Объекту"
8 Defender aka LINN
 
08.08.11
15:53
(0) Сделай адреса свойством и наслаждайся.
9 zbv
 
08.08.11
16:04
(7) по объекту и по:

КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.фактадресконтрагента)

для каждого вида
10 ssh2006
 
08.08.11
16:04
ВЫБРАТЬ
   Контрагенты.Ссылка КАК Контрагент,
   Контрагенты.ИНН,
   Контрагенты.КПП,
   ЮрАдрес.Представление КАК ЮридическийАдрес,
   ФактАдрес.Представление КАК ФактическийАдрес
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ЮрАдрес
       ПО Контрагенты.Ссылка = ЮрАдрес.Объект
           И (ЮрАдрес.Тип = ЗНАЧЕНИЕ(перечисление.типыконтактнойинформации.адрес))
           И (ЮрАдрес.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.юрадресконтрагента))
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ФактАдрес
       ПО Контрагенты.Ссылка = ФактАдрес.Объект
           И (ФактАдрес.Тип = ЗНАЧЕНИЕ(перечисление.типыконтактнойинформации.адрес))
           И (ФактАдрес.Вид = ЗНАЧЕНИЕ(справочник.видыконтактнойинформации.фактадресконтрагента))
11 skelaKuban
 
08.08.11
16:11
спасибо большое ssh2006, буду теперь осмысливать
12 Defender aka LINN
 
08.08.11
16:20
(10) Мое Вуду сильнее твоего:

ВЫБРАТЬ
   Контрагенты.Ссылка КАК Контрагент
{ВЫБРАТЬ
   Контрагент.*}
ИЗ
   Справочник.Контрагенты КАК Контрагенты
{ГДЕ
   Контрагенты.Ссылка.* КАК Контрагент}
{ХАРАКТЕРИСТИКИ
   ТИП(Справочник.Контрагенты)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           ВидыКонтактнойИнформации.Ссылка,
           ВидыКонтактнойИнформации.Наименование,
           ВЫРАЗИТЬ("" КАК СТРОКА(200)) КАК Тип
       ИЗ
           Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
       ГДЕ
           ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовКонтактнойИнформации.Контрагенты))
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ Тип
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.КонтактнаяИнформация
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Вид
   ПОЛЕЗНАЧЕНИЯ Представление }
13 ssh2006
 
08.08.11
16:21
Идея понятна