Имя: Пароль:
1C
1С v8
Первая запись из левого соединения
0 Чертеночек
 
21.02.13
10:42
Ребята, проблема.
есть контрагент, у контрагента есть несколько банковских счетов.
как мне запросом выбрать любой банковский счет, принадлежащий данному контрагенту?
код примерно такой, но желаемого результата я не получаю

+ Code
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ХозрасчетныйОбороты.Счет,
   ХозрасчетныйОбороты.Субконто1 КАК Контрагент,
   ХозрасчетныйОбороты.Субконто1.ИНН КАК ИНН,
   ХозрасчетныйОбороты.СуммаОстатокДт,
   ВЫРАЗИТЬ(Контактные.Представление КАК СТРОКА(100)) КАК Адрес,
   БанковскиеСчета.НомерСчета КАК НомерСчета,
   БанковскиеСчета.Наименование,
   БанковскиеСчета.Банк КАК Банк
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, счет = &счет, , ) КАК ХозрасчетныйОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           КонтактнаяИнформация.Объект КАК Объект,
           КонтактнаяИнформация.Тип КАК Тип,
           КонтактнаяИнформация.Вид КАК Вид,
           КонтактнаяИнформация.Представление КАК Представление
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ГДЕ
           КонтактнаяИнформация.Тип = &Тип) КАК Контактные
       ПО (Контактные.Объект = ХозрасчетныйОбороты.Субконто1)
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
       ПО (БанковскиеСчета.Владелец = ХозрасчетныйОбороты.Субконто1)
           И (БанковскиеСчета.Владелец В
               (ВЫБРАТЬ ПЕРВЫЕ 1
                   БанковскиеСчета.Владелец КАК Владелец
               ИЗ
                   Справочник.БанковскиеСчета КАК БанковскиеСчета
               ГДЕ
                   БанковскиеСчета.Владелец = ХозрасчетныйОбороты.Субконто1))
ГДЕ
   ХозрасчетныйОбороты.СуммаОстатокДт <> 0

СГРУППИРОВАТЬ ПО
   ХозрасчетныйОбороты.Счет,
   ХозрасчетныйОбороты.Субконто1,
   ХозрасчетныйОбороты.Субконто1.ИНН,
   ХозрасчетныйОбороты.СуммаОстатокДт,
   БанковскиеСчета.Наименование,
   БанковскиеСчета.Банк,
   ВЫРАЗИТЬ(Контактные.Представление КАК СТРОКА(100))
1 mikecool
 
21.02.13
10:43
добавить еще одно условие )
2 Галахад
 
гуру
21.02.13
10:44
ГДЕ
           КонтактнаяИнформация.Тип = &Тип

В

ПО
           КонтактнаяИнформация.Тип = &Тип
3 Rie
 
21.02.13
10:44
(0) Перенеси ПЕРВЫЕ 1 этажом выше.
4 ptiz
 
21.02.13
10:44
Пакетным запросом:
1) получить таблицу из Хозрасчетный.Остатки(
2) получить МАКСИМУМ(БанкСчет) с группировкой по владельцам из Справочник.БанковскиеСчета
3) потом соединять
5 Чертеночек
 
21.02.13
10:54
(2) о контактной информации сейчас речь не идет
(3) если я первые 1 выше этажом кину то это первая строка из запроса ХозрасчетныйОбороты выйдет
(4) щас попробую
6 Чертеночек
 
21.02.13
11:09
(4) да все почти клево, только если я через пакет тяну еще поля, то пулчается что опять по несколько строк выводит(((
ВЫБРАТЬ
   МАКСИМУМ(БанковскиеСчета.НомерСчета) КАК НомерСчета,
   БанковскиеСчета.Владелец,
   БанковскиеСчета.Наименование,
   БанковскиеСчета.Банк
ПОМЕСТИТЬ БанковскиеСчета
ИЗ
   Справочник.БанковскиеСчета КАК БанковскиеСчета

СГРУППИРОВАТЬ ПО
   БанковскиеСчета.Владелец,
   БанковскиеСчета.Наименование,
   БанковскиеСчета.Банк
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ХозрасчетныйОбороты.Счет КАК Счет,
   ХозрасчетныйОбороты.Субконто1 КАК Контрагент,
   ХозрасчетныйОбороты.Субконто1.ИНН КАК ИНН,
   ХозрасчетныйОбороты.СуммаОстатокДт,
   ВЫРАЗИТЬ(Контактные.Представление КАК СТРОКА(100)) КАК Адрес,
   БанковскиеСчета.НомерСчета КАК НомерСчета,
   БанковскиеСчета.Наименование,
   БанковскиеСчета.Банк
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, счет = &счет, , ) КАК ХозрасчетныйОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           КонтактнаяИнформация.Объект КАК Объект,
           КонтактнаяИнформация.Тип КАК Тип,
           КонтактнаяИнформация.Вид КАК Вид,
           КонтактнаяИнформация.Представление КАК Представление
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ГДЕ
           КонтактнаяИнформация.Тип = &Тип) КАК Контактные
       ПО (Контактные.Объект = ХозрасчетныйОбороты.Субконто1)
       ЛЕВОЕ СОЕДИНЕНИЕ БанковскиеСчета КАК БанковскиеСчета
       ПО (БанковскиеСчета.Владелец = ХозрасчетныйОбороты.Субконто1)
ГДЕ
   ХозрасчетныйОбороты.СуммаОстатокДт <> 0
7 Чертеночек
 
21.02.13
11:47
Выкрутилась через ссылку