|
Помогите с ТЧ | ☑ | ||
---|---|---|---|---|
0
stas_t_88
22.10.12
✎
18:57
|
Здравствуйте. Собственно нужна ваша помощь. мучаюсь, никак не могу понять как сделать.
Вообщем в 1с8.2. есть Табличная часть в ней 3 колонки, №пп, Улица, Полный адрес Туда вручную спомощью кладр добавляются нужные улицы (к примеру 5 улиц), получаем 5 строк. Теперь надо как то эти пять строк ( а именно пять адресов(улиц)) взять и подставить в запрос для выборки Абонентов живущих на этих улицах. У справочника абонентов есть реквизит - адрес, там полностью при помощи кладр-а записан адрес. Я сделал щас так: выбираю по одной строке, этот адрес подставляю в фильтр результата запроса он фильтрует по этой улице и добавляет в выходную таблицу отфильтрованных абонентов. Потов берёться вторая строка, опять выполняется запрос и результат отфильтровуется по новому адресу, отфильтрованные абоненты добавляются следующими строками в выходную таблицу. Вышло всё это дело очень трудоёмко и сложно!!( Как сделать по другому?! |
|||
1
Wobland
22.10.12
✎
18:58
|
ПОДОБНО изучал?
|
|||
2
Beduin
22.10.12
✎
18:59
|
(1) Ему надо список значений сделать при добавлении строк и в запросе по нему отбирать.
|
|||
3
Wobland
22.10.12
✎
19:00
|
хм, Адрес=АдресРаз ИЛИ Адрес=Адрес2... не?
|
|||
4
aleks-id
22.10.12
✎
19:01
|
а запросом не?
|
|||
5
aleks-id
22.10.12
✎
19:01
|
(3) чё?? выпил, признавайся!!
обычное левое соединение |
|||
6
Wobland
22.10.12
✎
19:02
|
(5) не, не пил. читал по диагонали ;)
|
|||
7
stas_t_88
22.10.12
✎
19:36
|
неее! так не выйдет!
|
|||
8
aleks-id
22.10.12
✎
19:37
|
(7) да ну?
|
|||
9
stas_t_88
22.10.12
✎
19:38
|
лучше примером кода изобразите это.
Зачем мне в запросе ИЛИ??? мне надо адрес1+адрес2+адрес3 и т.д. в зависимости от количества строк в таблице!!! |
|||
10
aleks-id
22.10.12
✎
19:40
|
какое ИЛИ?? там обычное левое соединение. соединяешь свою ТЧ с запросом
|
|||
11
stas_t_88
22.10.12
✎
19:47
|
а как ТЗ соединить с запросом? извините я только учусь...
|
|||
12
aleks-id
22.10.12
✎
19:50
|
ну открой конструктор запроса, выбери какой нить реквизит из ТЧ, добавь вложенный запрос. соедини результаты
|
|||
13
stas_t_88
23.10.12
✎
17:38
|
aleks-id
то на то и выйдет, что я внутри запроса буду выполнять запрос потом его результат по очереди подставлять во внешний запрос, что циклом по строчкам таблицы буду брать значение и подставлять его в запрос..( выходить очень трудоемко, а если бельше 200 строк то минут 5 думает, а то и дольше...( |
|||
14
aleks-id
23.10.12
✎
20:18
|
(13) не свисти. никаких там циклов не надо. все собирается в одном запросе и на выходе получается готовый результат за секунды.
|
|||
15
stas_t_88
23.10.12
✎
20:50
|
Если не сложно набросайте код как это будет?
Есть Справочник.Абоненты.Адрес и Таблица в Документе с колонкой адрес и 300стами строк. Как без цикла мы будем брать по одной строке из колонки адрес и искать подходящих абонентов в справочнике и их Добавлять по строчно в ещё одну таблицу в документе?? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Абоненты.адрес |ИЗ | Справочники.Абоненты КАК Абоненты где абоненты.адрес подобно $адрес"; Запрос.УстановитьПараметр("Адрес", Адрес); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); пока Выборка.Следующий() цикл Новстр.ТЧ=Выборка.Адрес Конеццикла; В Адрес циклом подставляет адрес из другой табл и каждый раз запускается этот запрос....((( |
|||
16
aleks-id
23.10.12
✎
21:16
|
давай вторую таблицу
|
|||
17
МишКа
23.10.12
✎
21:25
|
По видимому есть только два пути:
или в справочник абонентов добавлять улицы или собирать текст запроса в цикле |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |