Добрый день. Помогите с запросом а то что-то затупил.
Ситуация простая. Нужно вытащить в таблицу данные из журнала "Компенсация родительской платы" а так же адреса плательщиков и паспортные данные. Вроде все в порядке но как только добавляю в запрос на вытаскивание из РС "Контактная информация" происходит задвоение некоторых строк. Если несложно подскажите где затык
Запрос привожу
Ситуация простая. Нужно вытащить в таблицу данные из журнала "Компенсация родительской платы" а так же адреса плательщиков и паспортные данные. Вроде все в порядке но как только добавляю в запрос на вытаскивание из РС "Контактная информация" происходит задвоение некоторых строк. Если несложно подскажите где затык
Запрос привожу
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЖурналУчетаКомпенсацииРодительскойПлаты.НачалоПериода,
| ЖурналУчетаКомпенсацииРодительскойПлаты.КонецПериода,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование КАК Наименование,
| ЖурналУчетаКомпенсацииРодительскойПлаты.СчетПлательщика.Код КАК Код,
| СУММА(ЖурналУчетаКомпенсацииРодительскойПлаты.СуммаКомпенсации) КАК СуммаКомпенсации,
| ХарактеристикиКонтрагентов.ЗначениеХарактеристики КАК ДатаРождения,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Фамилия КАК Фамилия,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Имя КАК Имя,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Отчество КАК Отчество,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.СтраховойНомерПФР КАК СНИЛС,
| ЖурналУчетаКомпенсацииРодительскойПлаты.СчетПлательщика.КассовыйОрган КАК Банк,
| ПаспортныеДанныеФизЛиц.ДокументВид КАК ВидДокумента,
| ПаспортныеДанныеФизЛиц.ДокументСерия КАК ДокументСерия,
| ПаспортныеДанныеФизЛиц.ДокументНомер КАК ДокументНомер,
| ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи КАК ДокументДатаВыдачи,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛиц.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
| КонтактнаяИнформация.Поле4 КАК Город,
| КонтактнаяИнформация.Поле5 КАК Поселок,
| КонтактнаяИнформация.Поле6 КАК Улица,
| КонтактнаяИнформация.Поле7 КАК Дом,
| КонтактнаяИнформация.Поле8 КАК Корпус,
| КонтактнаяИнформация.Поле9 КАК Квартира
|ИЗ
| РегистрСведений.ЖурналУчетаКомпенсацииРодительскойПлаты КАК ЖурналУчетаКомпенсацииРодительскойПлаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХарактеристикиКонтрагентов КАК ХарактеристикиКонтрагентов
| ПО ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование = ХарактеристикиКонтрагентов.Контрагент.Наименование
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
| ПО ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование = ПаспортныеДанныеФизЛиц.ФизЛицо.Наименование
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование = КонтактнаяИнформация.Объект.Наименование
|ГДЕ
| ЖурналУчетаКомпенсацииРодительскойПлаты.НачалоПериода = &Дата1
| И ЖурналУчетаКомпенсацииРодительскойПлаты.КонецПериода = &Дата2
|
|СГРУППИРОВАТЬ ПО
| ЖурналУчетаКомпенсацииРодительскойПлаты.НачалоПериода,
| ЖурналУчетаКомпенсацииРодительскойПлаты.КонецПериода,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик,
| ЖурналУчетаКомпенсацииРодительскойПлаты.СчетПлательщика,
| ХарактеристикиКонтрагентов.ЗначениеХарактеристики,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование,
| ЖурналУчетаКомпенсацииРодительскойПлаты.СчетПлательщика.Код,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Фамилия,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Имя,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Отчество,
| ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.СтраховойНомерПФР,
| ЖурналУчетаКомпенсацииРодительскойПлаты.СчетПлательщика.КассовыйОрган,
| ПаспортныеДанныеФизЛиц.ДокументВид,
| ПаспортныеДанныеФизЛиц.ДокументСерия,
| ПаспортныеДанныеФизЛиц.ДокументНомер,
| ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛиц.ДокументКемВыдан КАК СТРОКА(300)),
| КонтактнаяИнформация.Поле4,
| КонтактнаяИнформация.Поле5,
| КонтактнаяИнформация.Поле6,
| КонтактнаяИнформация.Поле7,
| КонтактнаяИнформация.Поле8,
| КонтактнаяИнформация.Поле9
|
|УПОРЯДОЧИТЬ ПО
| Наименование";
Запрос.УстановитьПараметр("Дата1",НачПериода);
Запрос.УстановитьПараметр("Дата2",КонПериода);
РезультатЗапроса = Запрос.Выполнить();
ПоказатьПо теме из базы знаний
- История оптимизации одного большого запроса средствами MSSQL Profiler и 1С
- Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали
- Консоль запросов к базе Oracle для 1С, без использования специализированных программ
- Оптимизатор запроса. Часть первая
- Как читать чужой код? Часть 3. Разбор и доработка запросов
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Есть простое правило избежать задвоения строк - в создании связи двух таблиц должны использоваться ВСЕ измерения одной из таблиц внутреннего соединения (в данном случае это все таблицы справа) или правой таблицы при левом соединении.
В приведенном запросе нужно левое соединение, но это уже другой вопрос
В приведенном запросе нужно левое соединение, но это уже другой вопрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО ЖурналУчетаКомпенсацииРодительскойПлаты.Плательщик.Наименование = КонтактнаяИнформация.Объект.Наименование
при таком соединении дубли очень вероятны.
вернее сказать, за такое соединение наказывают
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот