|
Проблема с Запросом | ☑ | ||
---|---|---|---|---|
0
Kamich
19.06.13
✎
12:44
|
Добрый день,форумчане!
Нужна ваша помощь. Есть Таблица в Макете с Параметром "НомерТелефона". В запросе участвуют два документа-это Входящие и Исходящие вызовы. Проблема вот в чем: После вывода области макета документа, выводится не те данные,т.е. выводятся только Входящие вызовы. Вот сам код, что не так в нем? Запрос=Новый Запрос(); Запрос.Текст="ВЫБРАТЬ //Исходяшие зв. | ЕСТЬNULL(ИсходящиеЗвонки.Дата, 0) КАК Дата, | ЕСТЬNULL(ИсходящиеЗвонки.Номер, 0) КАК Номер, | ЕСТЬNULL(ИсходящиеЗвонки.НомерТелефона, 0) КАК НомерТелефонаИВ, | ЕСТЬNULL(ИсходящиеЗвонки.Кому, 0) КАК Кому, | ЕСТЬNULL(ИсходящиеЗвонки.Зачем, 0) КАК Зачем, | ЕСТЬNULL(ИсходящиеЗвонки.ОЧД, 0) КАК ОЧД, //Входяшие зв. | ЕСТЬNULL(ВходящиеЗвонки.Дата, 0) КАК Дата1, | ЕСТЬNULL(ВходящиеЗвонки.Номер, 0) КАК Номер1, | ЕСТЬNULL(ВходящиеЗвонки.НомерТелефона, 0) КАК НомерТелефонаВВ, | ЕСТЬNULL(ВходящиеЗвонки.Кто, 0) КАК Кто, | ЕСТЬNULL(ВходящиеЗвонки.Зачем, 0) КАК Зачем1, | ЕСТЬNULL(ВходящиеЗвонки.ОЧД, 0) КАК ОЧД1 |ИЗ | Документ.ИсходящиеЗвонки КАК ИсходящиеЗвонки, | Документ.ВходящиеЗвонки КАК ВходящиеЗвонки |ГДЕ | ИсходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И ВходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; Запрос.УстановитьПараметр("ДатаНачала", ЭлементыФормы.С.Значение); Запрос.УстановитьПараметр("ДатаОкончания", ЭлементыФормы.По.Значение ); Результат = Запрос.Выполнить(); ВыборкаДетали = Результат.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл Область = Макет.ПолучитьОбласть("Детали"); Область.Параметры.НомерТелефона="Исх.Выз "+ ВыборкаДетали.НомерТелефонаИВ; Область.Параметры.НомерТелефона="Вх.Выз "+ ВыборкаДетали.НомерТелефонаВВ; ТабДок.Вывести(Область); КонецЦикла; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); |
|||
1
zak555
19.06.13
✎
12:45
|
документооборот что ли ?
|
|||
2
Ненавижу 1С
гуру
19.06.13
✎
12:46
|
тебе объединение нужно
|
|||
3
Kamich
19.06.13
✎
12:46
|
(1) Нет,самописка
(2) Объединять по дате?! |
|||
4
zak555
19.06.13
✎
12:47
|
(3) 2. по полям
|
|||
5
Ненавижу 1С
гуру
19.06.13
✎
12:47
|
(3) "ОБЪЕДИНИТЬ ВСЕ"
|
|||
6
Галахад
гуру
19.06.13
✎
12:47
|
ВЫБРАТЬ
.. ИЗ Документ.ИсходящиеЗвонкиКАК Приходная ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ... ИЗ Документ.ВходящиеЗвонки КАК Расходная |
|||
7
Kamich
19.06.13
✎
12:56
|
Запрос=Новый Запрос();
Запрос.Текст="ВЫБРАТЬ | ЕСТЬNULL(ИсходящиеЗвонки.Дата, 0) КАК Дата, | ЕСТЬNULL(ИсходящиеЗвонки.Номер, 0) КАК Номер, | ЕСТЬNULL(ИсходящиеЗвонки.НомерТелефона, 0) КАК НомерТелефонаИВ, | ЕСТЬNULL(ИсходящиеЗвонки.Кому, 0) КАК Кому, | ЕСТЬNULL(ИсходящиеЗвонки.Зачем, 0) КАК Зачем, | ЕСТЬNULL(ИсходящиеЗвонки.ОЧД, 0) КАК ОЧД, | NULL КАК Дата1, | NULL КАК Номер1, | NULL КАК НомерТелефона, | NULL КАК Кто, | NULL КАК Зачем1, | NULL КАК ОЧД1 |ИЗ | Документ.ИсходящиеЗвонки КАК ИсходящиеЗвонки |ГДЕ | ИсходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | NULL, | NULL, | NULL, | NULL, | NULL, | NULL, | ВходящиеЗвонки.Дата, | ВходящиеЗвонки.Номер, | ВходящиеЗвонки.НомерТелефона КАК НомерТелефона, | ВходящиеЗвонки.Кто, | ВходящиеЗвонки.Зачем, | ВходящиеЗвонки.ОЧД |ИЗ | Документ.ВходящиеЗвонки КАК ВходящиеЗвонки |ГДЕ | ВходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; Запрос.УстановитьПараметр("ДатаНачала", ЭлементыФормы.С.Значение); Запрос.УстановитьПараметр("ДатаОкончания", ЭлементыФормы.По.Значение ); Результат = Запрос.Выполнить(); ВыборкаДетали = Результат.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл Область = Макет.ПолучитьОбласть("Детали"); Область.Параметры.НомерТелефона="Исх.Выз "+ ВыборкаДетали.НомерТелефонаИВ; Область.Параметры.НомерТелефона="Вх.Выз "+ ВыборкаДетали.НомерТелефона; ТабДок.Вывести(Область); КонецЦикла; |
|||
8
Kamich
19.06.13
✎
12:56
|
(6) (5) Объединил,выводит не те данные
|
|||
9
Ненавижу 1С
гуру
19.06.13
✎
12:59
|
(8) бывает
|
|||
10
Kamich
19.06.13
✎
13:01
|
(9) Что не правильно
|
|||
11
Ненавижу 1С
гуру
19.06.13
✎
13:03
|
(10) не знаю, честно
даже не знаю почему ты решил, что "выводит не те данные" |
|||
12
salvator
19.06.13
✎
13:03
|
(10) Сопоставляй поля логически. Дату с датой, номер с номером. А пустые поля выкинь.
|
|||
13
salvator
19.06.13
✎
13:04
|
+(12) Плюс проверь даты в параметрах запроса.
|
|||
14
Kamich
19.06.13
✎
13:05
|
(11) (13) Что касается этой строки,может тут что-то не так?
Пока ВыборкаДетали.Следующий() Цикл Область = Макет.ПолучитьОбласть("Детали"); Область.Параметры.НомерТелефона="Исх.Выз "+ ВыборкаДетали.НомерТелефонаИВ; Область.Параметры.НомерТелефона="Вх.Выз "+ ВыборкаДетали.НомерТелефонаВВ; ТабДок.Вывести(Область); КонецЦикла; |
|||
15
salvator
19.06.13
✎
13:06
|
Получение области вынеси перед циклом.
|
|||
16
Kamich
19.06.13
✎
13:07
|
(15)
{Обработка.Отчет.Форма.Форма.Форма(72)}: Поле объекта не обнаружено (НомерТелефонаВВ) Область.Параметры.НомерТелефона="Вх.Выз "+ ВыборкаДетали.НомерТелефонаВВ; |
|||
17
salvator
19.06.13
✎
13:08
|
(16) Продолжайте наблюдения.
|
|||
18
vicof
19.06.13
✎
13:09
|
(16) Псевдонимы у полей задай
|
|||
19
GANR
19.06.13
✎
13:19
|
(0) Короче, автор - это будет очень длинная ветка с многочисленными "не понял - повтори". Либо подключи кого-то по удаленке с полностью поставленной задачей, либо учись на http://sql-ex.ru/ работать с запросами, да и отладчиком, судя по (16) хорошо бы подучиться пользоваться. Почему запрос из топика должен работать - ума не приложу - это же декартово произведение без условия соединения, которое при большом объеме данных попросту может завалить сервак (не только текущую базу) и вырубить всех пользователей, работающих с MS SQL-базами.
|
|||
20
Kamich
19.06.13
✎
13:35
|
Сделал следующий запрос:
Запрос=Новый Запрос(); Запрос.Текст="ВЫБРАТЬ | ИсходящиеЗвонки.Дата, | ИсходящиеЗвонки.Номер, | ИсходящиеЗвонки.НомерТелефона КАК НомерТелефонаИВ, | ИсходящиеЗвонки.Кому, | ИсходящиеЗвонки.Зачем, | ИсходящиеЗвонки.ОЧД, | NULL КАК НомерТелефонаВВ |ИЗ | Документ.ИсходящиеЗвонки КАК ИсходящиеЗвонки |ГДЕ | ИсходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ВходящиеЗвонки.Дата, | ВходящиеЗвонки.Кто, | NULL, | ВходящиеЗвонки.Зачем, | ВходящиеЗвонки.ОЧД, | ВходящиеЗвонки.Номер, | ВходящиеЗвонки.НомерТелефона КАК НомерТелефонаВВ |ИЗ | Документ.ВходящиеЗвонки КАК ВходящиеЗвонки |ГДЕ | ВходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; Запрос.УстановитьПараметр("ДатаНачала", ЭлементыФормы.С.Значение); Запрос.УстановитьПараметр("ДатаОкончания", ЭлементыФормы.По.Значение ); Результат = Запрос.Выполнить(); ВыборкаДетали = Результат.Выбрать(); Область = Макет.ПолучитьОбласть("Детали"); Пока ВыборкаДетали.Следующий() Цикл Область.Параметры.НомерТелефона="Исх.Выз "+ ВыборкаДетали.НомерТелефонаИВ; Область.Параметры.НомерТелефона="Вх.Выз "+ ВыборкаДетали.НомерТелефонаВВ; ТабДок.Вывести(Область); КонецЦикла; Вывел: Вх.Выз Вх.Выз Вх.Выз 5555555 Хотя Исходящие то же есть(но они пустые и отображаются как "Вх.Вызов ") |
|||
21
Ненавижу 1С
гуру
19.06.13
✎
13:48
|
Запрос.Текст="ВЫБРАТЬ
| ИсходящиеЗвонки.Дата, | ИсходящиеЗвонки.Номер, | ИсходящиеЗвонки.НомерТелефона КАК НомерТелефона, | ИсходящиеЗвонки.Кому, | ИсходящиеЗвонки.Зачем, | ИсходящиеЗвонки.ОЧД, | ""Исх.Выз "" КАК Метка |ИЗ | Документ.ИсходящиеЗвонки КАК ИсходящиеЗвонки |ГДЕ | ИсходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ВходящиеЗвонки.Дата, | ВходящиеЗвонки.Номер, | ВходящиеЗвонки.НомерТелефона, | NULL, | ВходящиеЗвонки.Зачем, | ВходящиеЗвонки.ОЧД, | "Вх.Выз " |ИЗ | Документ.ВходящиеЗвонки КАК ВходящиеЗвонки |ГДЕ | ВходящиеЗвонки.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; .... Пока ВыборкаДетали.Следующий() Цикл Область.Параметры.НомерТелефона=ВыборкаДетали.Метка+ ВыборкаДетали.НомерТелефона; ТабДок.Вывести(Область); КонецЦикла; |
|||
22
Ненавижу 1С
гуру
19.06.13
✎
13:49
|
+(21)
| ""Вх.Выз "" |
|||
23
vicof
19.06.13
✎
13:49
|
Давай уже, вруби отладчик на полную, на сегодня телепатии хватит
|
|||
24
Kamich
19.06.13
✎
14:00
|
(22) Спасибо)!!!))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |