|   |   | 
| 
 | Помогите с ТЧ | ☑ | ||
|---|---|---|---|---|
| 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 | 
        По видимому есть только два пути:
  или в справочник абонентов добавлять улицы или собирать текст запроса в цикле | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |