|   |   | 
| 
 | v7: Выборка подчиненных документов в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        1С-ница 11.11.14✎ 13:11 | 
        Платформа 7.70.027
 Можно ли в одном запросе получить документ и его подчиненные? Текст запроса: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(НайтиРазмещения) |Период с НачДата по КонДата; |Обрабатывать НеПомеченныеНаУдаление; |Без итогов; |Размещение = Документ.Размещение.ТекущийДокумент; // |ДопУслуги = Документ.ДополнительныеУслугиПоФакту.Основание; |Гость = Документ.Размещение.Гость; |Тариф = Документ.Размещение.Тариф; |ДатаДок = Документ.Размещение.ДатаДок; |ДатаР = Документ.Размещение.Гость.ДатаРождения; |Группировка Гость упорядочить по Гость.Наименование; |Условие(Гость.Город.Наименование В (Города)); |Условие((ТекущаяДата()-ДатаР)>6570); //|Условие(ДопУслугиПоФакту.ДокументОснование=Размещение); |"//}}ЗАПРОС Основной документ - Размещение, соответственно ДопУслуги - подчиненные. Если их выбрать (допУслуги),то почему то при выполнении отчета валится ошибка что "Значение не представляет агрегатный объект (Город):2" | |||
| 1
    
        1С-ница 11.11.14✎ 13:12 | 
        Пыталась искать подчиненные Выборкой, но почему то зациклилось на 1 документе, причем не нужного типа:
 ДопУслуги = СоздатьОбъект("Документ"); Пока Запрос.Группировка() = 1 Цикл Если Запрос.Гость.этогруппа() = 0 Тогда //Ищем подчиненные доп услуги Пока ДопУслуги.ВыбратьПодчиненныеДокументы(НачДата,КонДата,Запрос.Размещение) = 1 Цикл // Заполнение полей НайтиРазмещения Таб.ВывестиСекцию("НайтиРазмещения"); КонецЦикла; КонецЕсли; КонецЦикла; | |||
| 2
    
        Ёпрст гуру 11.11.14✎ 13:13 | 
        // Пока ДопУслуги.ВыбратьПодчиненныеДокументы(НачДата,КонДата,Запрос.Размещение) = 1 Цикл
 // Заполнение полей НайтиРазмещения ДопУслуги.ВыбратьПодчиненныеДокументы(НачДата,КонДата,Запрос.Размещение); Пока ДопУслуги.ПолучитьДокумент()=1 Цикл Таб.ВывестиСекцию("НайтиРазмещения"); КонецЦикла; | |||
| 3
    
        Ёпрст гуру 11.11.14✎ 13:16 | 
        (0)
 >>>Можно ли в одном запросе получить документ и его подчиненные? Можно, в прямом запросе. | |||
| 4
    
        Злопчинский 11.11.14✎ 13:17 | 
        Инженер минус программист смайл
 Запросом не получится | |||
| 5
    
        1С-ница 11.11.14✎ 13:17 | 
        (2) Спасибо, 
 (3) А у меня какой? | |||
| 6
    
        Ёпрст гуру 11.11.14✎ 13:18 | 
        (5) а у тебя обычный, чорный     | |||
| 7
    
        1С-ница 11.11.14✎ 13:19 | 
        (6) Подскажите как мой переделать     | |||
| 8
    
        Ёпрст гуру 11.11.14✎ 13:20 | 
        (7) открыть для себя мир 1cpp(1sqlite) и прямых запросов к данным     | |||
| 9
    
        Ёпрст гуру 11.11.14✎ 13:21 | 
        Ну, для староверов, можно и через ado лепить.     | |||
| 10
    
        Злопчинский 11.11.14✎ 13:21 | 
        К прямому запросу нужно один эс плюс плюс вк загрузить     | |||
| 11
    
        1С-ница 11.11.14✎ 13:21 | 
        Переделала выборку:
 Пока Запрос.Группировка() = 1 Цикл Если Запрос.Гость.этогруппа() = 0 Тогда //Ищем подчиненные доп услуги ДопУслуги.ВыбратьПодчиненныеДокументы(НачДата,КонДата,Запрос.Размещение); Пока ДопУслуги.ПолучитьДокумент()=1 Цикл Если ДопУслуги.Вид() = "ДополнительныеУслугиПоФакту" Тогда // Заполнение полей НайтиРазмещения Таб.ВывестиСекцию("НайтиРазмещения"); КонецЕсли; КонецЦикла; КонецЕсли; //Сообщить("" + Запрос.Гость + " " + Запрос.Размещение); КонецЦикла; Почему то выводит не все подчиненные документы нужного вида | |||
| 12
    
        Злопчинский 11.11.14✎ 13:22 | 
        Перст а можно текст такого запроса с выбором подчиненных определенного вида вопрос     | |||
| 13
    
        Злопчинский 11.11.14✎ 13:22 | 
        период смотри     | |||
| 14
    
        Злопчинский 11.11.14✎ 13:23 | 
        для проверки в журнале стань на родителя пкм подчиненные документы и сверяй     | |||
| 15
    
        1С-ница 11.11.14✎ 13:25 | 
        (13) спасибо. За 1 день быстро отрабатывает, за год будет наверное долго.     | |||
| 16
    
        1С-ница 11.11.14✎ 13:26 | 
        Да и в подчиненных нужно табчасть отрабатывать и группировать, так что очень надо в запросе получать все данные     | |||
| 17
    
        VoditelKobyly 11.11.14✎ 13:27 | 
        Тебе быстрее будет в выборке чем 1срр изучить     | |||
| 18
    
        Злопчинский 11.11.14✎ 13:28 | 
        16 сделай запросом извлечение допуслуг с извлечением из допуслуг дока основания выгрузи итог запроса в из отсортируй по основанию плюс допуслуга     | |||
| 19
    
        1С-ница 11.11.14✎ 13:30 | 
        (18) не получилось так     | |||
| 20
    
        1С-ница 11.11.14✎ 13:31 | 
        |Период с НачДата по КонДата;
 |Обрабатывать НеПомеченныеНаУдаление; |Без итогов; |Размещение = Документ.ДополнительныеУслугиПоФакту.Основание; |ДопУслуги = Документ.ДополнительныеУслугиПоФакту.ТекущийДокумент; |Гость = Документ.Размещение.Гость; |Тариф = Документ.Размещение.Тариф; |ДатаДок = Документ.Размещение.ДатаДок; |ДатаР = Документ.Размещение.Гость.ДатаРождения; |Группировка Гость упорядочить по Гость.Наименование; |Условие(Гость.Город.Наименование В (Города)); |Условие((ТекущаяДата()-ДатаР)>6570); //|Условие(ДопУслугиПоФакту.ДокументОснование=Размещение); |"//}}ЗАПРОС | |||
| 21
    
        1С-ница 11.11.14✎ 13:32 | 
        Ругается на Город     | |||
| 22
    
        VoditelKobyly 11.11.14✎ 13:33 | 
        (12) Там два варианта: либо выборка сразу подчиненных со связкой по parenval, либо выбока основных со связкой по CHILDID. Сразу даже не угадаешь что быстрее будет работать.     | |||
| 23
    
        Ёпрст гуру 11.11.14✎ 13:40 | 
        (11) период выборки подч. документов расширь     | |||
| 24
    
        1С-ница 11.11.14✎ 13:41 | 
        (23) уже починила     | |||
| 25
    
        Злопчинский 11.11.14✎ 14:57 | 
        |Период с НачДата по КонДата;
 |Обрабатывать НеПомеченныеНаУдаление; |Без итогов; |Размещение = Документ.ДополнительныеУслугиПоФакту.Основание; |ДопУслуги = Документ.ДополнительныеУслугиПоФакту.ТекущийДокумент; |Гость = Документ.ДополнительныеУслугиПоФакту.Основание.Гость; |Тариф = окумент.ДополнительныеУслугиПоФакту.Основание.Тариф; |ДатаДок = окумент.ДополнительныеУслугиПоФакту.Основание.ДатаДок; |ДатаР = окумент.ДополнительныеУслугиПоФакту.Основание.Гость.ДатаРождения; |Группировка Гость упорядочить по Гость.Наименование; |Условие(Гость.Город В Города); |Условие((ТекущаяДата()-ДатаР)>6570); |"//}}ЗАПРОС | |||
| 26
    
        Злопчинский 11.11.14✎ 14:59 | 
        Попробуй так.
 . И что это за бредовое условие 1. НАИМЕНОВАНИЯ городов в списке? ты уверена что обезъяны манагеры тольятти и таллинн напишут без ошибок в одном месте и это будет совпадать с какимито сторками введенными в другом месте? 2. Условие(ДопУслугиПоФакту.ДокументОснование=Размещение); - это что за фигня? ограничение для ОДНОГО КОНКРЕТНОГО дока размещение? - нафейхоа? | |||
| 27
    
        Злопчинский 11.11.14✎ 16:39 | 
        И вообще - группировка гость - какая то фигня
 . мну кажется логичнее использовать |Группировка Гость |Группировка Размещение |Группировка ДопУслуги . ??? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |