Имя: Пароль:
1C
1С v8
v8: Объединить запрос
0 zfobo
 
29.01.12
19:08
Как можно объеденить данные 2 запроса, что бы по Л/С он находил начисления услуг по Л/С и по приборам учета.
Вот Запросы:

       Запрос=Новый Запрос;
       Запрос.Текст="ВЫБРАТЬ
       |    КВП_НачислениеУслуг.Ссылка,
       |    КВП_НачислениеУслуг.Услуги.(
       |        Ссылка,
       |        НомерСтроки,
       |        Услуга,
       |        ЛицевыеСчета,
       |        Количество,
       |        Тариф,
       |        Начислено,
       |        СоставнаяУслуга,
       |        ДнейНачислено,
       |        СуммаНачислений,
       |        Договор
       |    ),
       |    КВП_НачислениеУслуг.ПометкаУдаления
       |ИЗ
       |    Документ.КВП_НачислениеУслуг КАК КВП_НачислениеУслуг
       |ГДЕ
       |    КВП_НачислениеУслуг.Услуги.ЛицевыеСчета.Ссылка = &Ссыл";
       Запрос.УстановитьПараметр("Ссыл", Лицевой);
       ЗапросСч=Новый Запрос;
       ЗапросСЧ.Текст="ВЫБРАТЬ
                    |    КВП_НачислениеУслуг.Ссылка,
                    |    КВП_НачислениеУслуг.ПометкаУдаления,
                    |    КВП_НачислениеУслуг.УслугиПоПоказаниямПУ.(
                    |        Ссылка,
                    |        НомерСтроки,
                    |        ЛицевойСчет,
                    |        ПоказаниеСчЛС,
                    |        ВидТарифа,
                    |        Тариф,
                    |        Сумма,
                    |        ПоказаниеСчПомещение,
                    |        ПоказаниеСчПодъезд,
                    |        ПоказаниеСчЗдание,
                    |        Начислено,
                    |        КоличествоДопРаспределения,
                    |        ДопРаспределение,
                    |        Услуга
                    |    )
                    |ИЗ
                    |    Документ.КВП_НачислениеУслуг КАК КВП_НачислениеУслуг
                    |ГДЕ
                    |    КВП_НачислениеУслуг.УслугиПоПоказаниямПУ.ЛицевойСчет.Ссылка = &СсылкаЛС";
       ЗапросСч.УстановитьПараметр("СсылкаЛС", Лицевой);
       Резу=Запрос.Выполнить().Выгрузить();
       РезуСЧ=ЗапросСч.Выполнить().Выгрузить();
1 zbv
 
29.01.12
19:17
ничего не понял...
Но что-то подсказывает, что тебе надо строить запросы к табличной части
2 Bww_
 
29.01.12
19:18
ОбъедЕнить не возможно. Можно объединить.
3 zfobo
 
29.01.12
19:20
А как можно объеденить?
В первом я обращяюсь к табличной части услуги
А во втором к услугам по показанием пу
4 zfobo
 
29.01.12
19:22
*объединить
5 Кокос
 
29.01.12
19:36
обращяться невозможно. можно обращаться.
6 Кокос
 
29.01.12
19:37
по показаниЯм.
7 zfobo
 
29.01.12
19:38
А есть че по делу?
8 Кокос
 
29.01.12
19:40
цель не понятна. по вопросу имхо вообще не возможно определить что хочет получить ТС.
9 zfobo
 
29.01.12
19:45
Документ начисление услуг.
В нем есть начисления на лицевые счета, и есть документы начисления по показаниям приборов учета.
Нужно найти все начисления на определенный Лицевой счет, по всем документам.
В первом запросе он ищет по начислениям на Лицевые счета
а во втором по начислениям по показаниям Приборов учета.
Вот и интересно как можно эти запросы объеденить что бы в одном результате запроса были ссылки на все найденные документы.
10 Кокос
 
29.01.12
19:47
(9) смотри (1). делай запросы сразу к табличной части. сделай так чтобы у обоих запросов были абсолютно одинаковые поля в одинаковых местах по порядку. если не совпадают имена сделай чтобы они совпадали при помощи "КАК" а потом через "ОБЪЕДНИТЬ ВСЕ" объедини их
11 Кокос
 
29.01.12
19:49
+ если надо поле которое есть в первой таблице но нет во второй то во второй на том месте где должно быть поле как в первой пиши " 0 КАК НужноеПоле"
НужноеПоле это для примера. подставь нужное имя
12 zfobo
 
29.01.12
19:50
Хм, интересно, понял, спасибо
13 Кокос
 
29.01.12
19:55
например:

Запрос.Текст="ВЫБРАТЬ
       |    КВП_НачислениеУслуг.Ссылка,
       |    КВП_НачислениеУслуг.Услуга,
       |    КВП_НачислениеУслуг.ЛицевыеСчета КАК ЛицевойСчет, //чтобы имя совпало
       |    КВП_НачислениеУслуг.Количество,
       |    КВП_НачислениеУслуг.Тариф,
       |    КВП_НачислениеУслуг.Начислено,
       |    КВП_НачислениеУслуг.СоставнаяУслуга,
       |    КВП_НачислениеУслуг.Договор
       |ИЗ
       |    Документ.КВП_НачислениеУслуг.Услуги КАК КВП_НачислениеУслуг
       |ГДЕ
       |    КВП_НачислениеУслуг.Услуги.ЛицевыеСчета.Ссылка = &Ссыл
       | ОБЪЕДИНИТЬ ВСЕ
       | ВЫБРАТЬ
       |    КВП_НачислениеУслугПУ.Ссылка,
       |    КВП_НачислениеУслуг.ЛицевойСчет,
       |    КВП_НачислениеУслугПУ.КоличествоДопРаспределения Как КОличество
       |    КВП_НачислениеУслугПУ.Тариф,
       |    КВП_НачислениеУслугПУ.Начислено,
       |    "" КАК СоставнаяУслуга,
       |    "" КАК Договор
       |ИЗ
       |    Документ.КВП_НачислениеУслуг/УслугиПоПоказаниямПУ КАК КВП_НачислениеУслугПУ
       |ГДЕ
       |    КВП_НачислениеУслугПУ.УслугиПоПоказаниямПУ.ЛицевойСчет.Ссылка = &СсылкаЛС";

примерно так. только не отлаживал
14 Кокос
 
29.01.12
19:56
есть там пара ошибок. сам найдешь
15 zfobo
 
29.01.12
20:23
Хорошо спасибо
16 Кокос
 
29.01.12
20:38
3 ошибки. вверху есть поле Услуга которого нет во втором. Во втором недобавлено в конце ПУ где лицевой счет ну и условия в "ГДЕ" в обоих случаях неправильно указаны :) просто не переделывал. плюс не понятно у тебя в первом случае лицевые счета список а во втором элемент. в принципе можно это поле вообще не указывать ты по нему отбор делаешь поэтому все равно