Имя: Пароль:
1C
1С v8
подскажите как написать запрос по квартирам в подъездах
0 dimanikko
 
10.02.16
14:19
Исходные данные:
Справочник: Подъезды указана этажность подъезда
Справочник объектов: Указана квартира, ее этаж и подъезд
Хочу получить таблицу где будет отражено какая таблица на каком этаже  и в каком подъезде находится. Количество этажей и подъездов может быть различно.

Подскажите как при помощи запроса получить вот такую таблицу
        Подъезд 1|Подъезд 2
9 этаж | 9 кв    | 18 кв
8 этаж | 8 кв    | 17 кв
7 этаж | 7 кв    | 16 кв
... и так далее до нижнего этажа

Направьте в нужном направлении плз
1 Dotoshin
 
10.02.16
14:23
(0) Подъезды это колонки что-ли?
2 dimanikko
 
10.02.16
14:24
(1)Да подъезды это колонки
3 Molinor
 
10.02.16
14:25
А на одном этаже в одном подъезде только одна квартира?
4 Dotoshin
 
10.02.16
14:25
(2) Тогда запросом не получится - тебе надо подъезды развернуть в строку, а 1с в запросах так не умеет
5 dimanikko
 
10.02.16
14:26
(3) в одном подъезде может быть несколько квартир
6 Molinor
 
10.02.16
14:27
(5) И как их выводить в твою таблицу?
7 Dotoshin
 
10.02.16
14:27
+(4) Ну то есть количество колонок(подъездов) - переменная величина
8 dimanikko
 
10.02.16
14:27
(6) да хоть через запятую )
9 Molinor
 
10.02.16
14:27
(8) Вперёд осваивать СКД. Там всё это довольно просто делается.
10 dimanikko
 
10.02.16
14:28
(9)вот и хочу сделать это при помощи скд
11 Dotoshin
 
10.02.16
14:29
(10) ну так делай :)
12 Molinor
 
10.02.16
14:29
(10)
Выбрать
Квартиры.Ссылка КАК квартира,
Квартиры.Этаж КАК Этаж,
Квартиры.Подъезд КАК Подъезд
ИЗ
Справочник.Квартиры КАК Квартиры

Вот твой запрос, дальше всё делается настройками СКД.
13 dimanikko
 
10.02.16
14:30
(12)ок, понял беру паузу
14 Dotoshin
 
10.02.16
14:33
(13) может как то поможет http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=604662
15 Aceforg
 
10.02.16
14:40
(12) Не все так просто, надо учесть, что некоторых квартир может и не быть в базе, а этажность подъезда известна.

Надо выводить этажи где нет квартир.
16 Dotoshin
 
10.02.16
14:44
(15) >>Надо выводить этажи где нет квартир.
Это как? Этаж фантом?
17 Molinor
 
10.02.16
14:46
(16) Например, на первом этаже нет квартир, а одни магазины с отдельными входами и автору их не надо у себя в базу держать. Но эту задачу пусть автор уж сам решает.
18 Aceforg
 
10.02.16
14:48
(16) Офисы или просто не заведены в базу

Или допустим подъезд в 100 этажей, а в базе заведены квартиры первого и последнего этажа. Выводить-то по ТЗ надо все этажи
19 Garykom
 
гуру
10.02.16
14:50
(0) Правильный ответ: Перестать засовывать запросы в каждую дырку!
20 ifso
 
10.02.16
15:16
(19) отбор дырок запросом, не?)
21 Garykom
 
гуру
10.02.16
15:20
(20) отбирать можно и запросом... но вот сначала дырки раскладывать по феншую а потом туда засовывать всякое разное - это болезнь современных "программистов"

которые даже что такое циклы "до" и "пока" не знают и в чем разница
22 AceVi
 
11.02.16
10:13
Делается все просто.
Определяешь макс кол-во этажей. формируешь таблицу типа
1
2
3
...
100
Это втЭтажи. Как внешние данные помешаешь ее в СКД. потом левым соединением к ней данные по квартирам. Итого у тебя конечная таблица с данными по всем возможным этажам в т.ч. и пустым. Далее в СКД группируешь как тебе надо и все. Только так, больше ты никак не получишь пустые этажи в СКД.
Если несколько квартир в одном подъезде на 1 этаже - Сначала делаешь левое соединение Этажи.НомерЭтажа <= Подьед.КолЭтажей
Получишь таблицу со всеми подъездами и этажами - что то типа
1 П1
1 П2
1 П3
2 П1
2 П3
...
100 П1

делаешь левое соединение с даннми по квартирам Этаж=Этаж и Подьез=Поьезд где Квартира = Квартира + ВЫБОР КОГДА ЕСТЬNUUL(ДанныеПоКвартирам.Квартира.0) = 0 Тогда "" ИНАЧЕ ","+ВЫРАЗИТЬ(ДанныеПоКвартирам.Квартира КАК Строка(3))

Потом в скд первую запятую уберешь и все. у тебя таблица с данными по этажам и подбездам и Реквизит Квартиры - где в строке с запятой перечислены все квартиры.
23 cw014
 
11.02.16
10:20
Если будешь перебирать запрос - тебе "ИТОГИ ПО" в помощь. В противном случае СКД бери