![]() |
|
Дублируются строки при выполнении запроса | ☑ | ||
---|---|---|---|---|
0
JuixyJes
01.08.19
✎
16:39
|
Добрый вечер! Помогите, написала процедуру для заполнения диаграммы Ганта, нооооо записи вложенного запроса дублируются.
ДиаграммаГанта = ДГ; ДиаграммаГанта.АвтоОпределениеПолногоИнтервала = Ложь; ДиаграммаГанта.УстановитьПолныйИнтервал(Отчет.Период.ДатаНачала,Отчет.Период.ДатаОкончания); Серия = ДиаграммаГанта.УстановитьСерию("Серия"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номера.Ссылка КАК Ссылка, | ЗагруженностьНФ.ДатаЗаселения КАК ДатаЗаселения, | ЗагруженностьНФ.ДатаВыезда КАК ДатаВыезда |ИЗ | Справочник.Номера КАК Номера | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженностьНФ КАК ЗагруженностьНФ | ПО Номера.Ссылка = ЗагруженностьНФ.НомерПроживания"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(ВыборкаДетальныеЗаписи.Ссылка); ТочкаНомер = ДиаграммаГанта.УстановитьТочку(ВыборкаДетальныеЗаписи.Ссылка); Значение = ДиаграммаГанта.ПолучитьЗначение(ТочкаНомер,Серия); Если ВыборкаДетальныеЗаписи.ДатаЗаселения <> NULL и ВыборкаДетальныеЗаписи.ДатаВыезда <> NULL Тогда Интервал = Значение.Добавить(); Интервал.Начало = ВыборкаДетальныеЗаписи.ДатаЗаселения; Интервал.Конец = ВыборкаДетальныеЗаписи.ДатаВыезда; Интервал.Цвет = WebЦвета.НейтральноАквамариновый; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Комнаты.Ссылка КАК Ссылка, | ЗагруженностьНФ.ДатаЗаселения КАК ДатаЗаселения, | ЗагруженностьНФ.ДатаВыезда КАК ДатаВыезда |ИЗ | Справочник.Комнаты КАК Комнаты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженностьНФ КАК ЗагруженностьНФ | ПО Комнаты.Ссылка = ЗагруженностьНФ.КомнатаПроживания |ГДЕ | Комнаты.Владелец = &Владелец |ИТОГИ ПО | Ссылка"; Запрос.УстановитьПараметр("Владелец", ВыборкаДетальныеЗаписи.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаСсылкаКомнаты = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСсылкаКомнаты.Следующий() Цикл Сообщить(ВыборкаСсылкаКомнаты.Ссылка); ТочкаКомната = ТочкаНомер.Точки.Добавить(); ТочкаКомната.Значение = ВыборкаСсылкаКомнаты.Ссылка; ТочкаКомната.Текст = ВыборкаСсылкаКомнаты.Ссылка; Значение = ДиаграммаГанта.ПолучитьЗначение(ТочкаКомната,Серия); Выб = ВыборкаСсылкаКомнаты.Выбрать(); Пока Выб.Следующий() Цикл Если Выб.ДатаЗаселения <> NULL и Выб.ДатаВыезда <> NULL Тогда //Интервал = Значение.Добавить(); //Интервал.Начало = Выб.ДатаЗаселения; //Интервал.Конец = Выб.ДатаВыезда; //Интервал.Цвет = WebЦвета.НейтральноАквамариновый; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; |
|||
1
JuixyJes
01.08.19
✎
16:40
|
И вот там, где есть записи в регистре сведений из второго запроса - дублируются
|
|||
2
JuixyJes
01.08.19
✎
16:46
|
||||
3
JuixyJes
01.08.19
✎
17:12
|
И никто не поможет? Ни разу не видела еще тем связанных с диаграммой Ганта. Видимо почти никто с ней не работает.
|
|||
4
vicof
01.08.19
✎
17:14
|
Когда сама начнешь разбираться?
|
|||
5
JuixyJes
01.08.19
✎
17:17
|
(4) Вот и пытаюсь разбираться, только не всегда все получается, не могла найти информации в интернете, собственных знаний пока не хватает.
|
|||
6
dka80
01.08.19
✎
17:18
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженностьНФ КАК ЗагруженностьНФ
| ПО Комнаты.Ссылка = ЗагруженностьНФ.КомнатаПроживания Сколько записей в регистре по конкретной комнате? Две/три... Вот и дублируются |
|||
7
JuixyJes
01.08.19
✎
17:19
|
(6) по конкретной комнате 2 записи есть. НО, выборку и делаю поэтому по итогам. Там 2 записи. а уже в 1 записи из этих двух еще 2 записи.
|
|||
8
Йохохо
01.08.19
✎
17:22
|
(7) ИТОГИ добавляют строки же
|
|||
9
Йохохо
01.08.19
✎
17:23
|
||||
10
JuixyJes
01.08.19
✎
17:31
|
А вот эта строка для чего? Разве не она выбирает строки, в которые входят уже записи по каждой комнате?
ВыборкаСсылкаКомнаты = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); |
|||
11
dka80
01.08.19
✎
17:36
|
(10) сделай так РезультатЗапроса.Выгрузить() и погляди. Сильно удивишься
|
|||
12
dka80
01.08.19
✎
17:39
|
Вот твой набор данных в результате запроса
Комната1 Загруженность 1 Комната1 Загруженность 2 А вот твой набор с ИТОГом Комната1 Null Комната1 Загруженность 1 Комната1 Загруженность 2 |
|||
13
JuixyJes
01.08.19
✎
17:40
|
(12) Ну, да. Есть такое. Ну а что мне еще то сделать?
|
|||
14
JuixyJes
01.08.19
✎
17:55
|
(12) ну Тогда вопрос, раз уж с итогом выводит 3 строки, у меня там же 2 комната тоже отображается 2жды. (2) тут скрин отображения.
|
|||
15
dka80
01.08.19
✎
17:56
|
Номера - точки диаграммы
Серии - комнаты Итогов не нужно |
|||
16
JuixyJes
01.08.19
✎
18:00
|
ВыборкаСсылкаКомнаты = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСсылкаКомнаты.Следующий() Цикл Сообщить(ВыборкаСсылкаКомнаты.Ссылка); Сообщение : Комната №1, Комната №2 Выб = ВыборкаСсылкаКомнаты.Выбрать(); Пока Выб.Следующий() Цикл Сообщить(Выб.Ссылка); Сообщение : Комната №1, Комната №1, Комната №1, Комната №2, Комната №2 |
|||
17
JuixyJes
01.08.19
✎
18:00
|
(16) Только что проверила.
|
|||
18
JuixyJes
02.08.19
✎
10:21
|
Так, все проблему решила. В параметрах второго запроса не правильный владелец и не закрыт цикл 1
|
|||
19
dka80
02.08.19
✎
10:23
|
Молодец, наверное?
|
|||
20
JuixyJes
02.08.19
✎
10:37
|
(19) Ну не додумалась вчера, сами поймите, если 17 часов смотреть в монитор занимаясь примерно 1 и той же задачей, тяжко будет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |