|
Помогите объеденить запрос | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
30.07.12
✎
11:33
|
Нужно одним запросом вытянуть телефон Контрагента и его всех контактных лиц...
Двумя запросами понятно как это сделать. ВЫБРАТЬ КонтактнаяИнформация.Представление, КонтактнаяИнформация.Объект ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Объект = &Контрагент И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) ВЫБРАТЬ КонтактнаяИнформация.Представление, КонтактнаяИнформация.Объект ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) И КонтактнаяИнформация.Объект.Владелец = &Контрагент Как это сделать одним? |
|||
1
butterbean
30.07.12
✎
11:34
|
между ними напиши ОБЪЕДИНИТЬ ВСЕ
|
|||
2
butterbean
30.07.12
✎
11:36
|
хот янаверно можно в условии написать
КонтактнаяИнформация.Объект.Владелец = &Контрагент ИЛИ КонтактнаяИнформация.Объект= &Контрагент |
|||
3
Boudybuilder
30.07.12
✎
11:39
|
(1) Можно подробнее?
|
|||
4
Boudybuilder
30.07.12
✎
11:40
|
(2)
ВЫБРАТЬ КонтактнаяИнформация.Представление, КонтактнаяИнформация.Объект ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация1 ПО КонтактнаяИнформация.Объект = КонтактнаяИнформация1.Объект.Владелец ГДЕ КонтактнаяИнформация.Объект = &Контрагент И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) ИЛИ КонтактнаяИнформация.Объект.Владелец = &Контрагент Вот так получилось , но очень долго запрос работает. |
|||
5
Boudybuilder
30.07.12
✎
11:40
|
Может проще както выборкой из регистра вытянуть?
|
|||
6
butterbean
30.07.12
✎
11:41
|
(4) я имел ввиду так:
ВЫБРАТЬ КонтактнаяИнформация.Представление, КонтактнаяИнформация.Объект ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ (КонтактнаяИнформация.Объект = &Контрагент ИЛИ КонтактнаяИнформация.Объект.Владелец = &Контрагент) И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) |
|||
7
MaXpaT
30.07.12
✎
11:42
|
ВЫБРАТЬ
КонтактнаяИнформация.Представление, КонтактнаяИнформация.Объект ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ ( КонтактнаяИнформация.Объект = &Контрагент ИЛИ КонтактнаяИнформация.Объект.Владелец = &Контрагент) И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) |
|||
8
MaXpaT
30.07.12
✎
11:42
|
(7) пойдёт?
|
|||
9
Baximilian
30.07.12
✎
11:43
|
(4)
зачем полное соединение? левого достаточно, да и как я понял человеку и вправду нужно объеденить или так как ты говорил в (2) Получилось (7) :) |
|||
10
Boudybuilder
30.07.12
✎
12:55
|
(7) Да - это самое правильное решение. Пасибо.
|
|||
11
Boudybuilder
30.07.12
✎
13:49
|
Продолжил над этим работать , создал на форме ТабличноеПоле с типом значения - ТаблицаЗначений. И добавляю туда. А добавляет туда тока один номер...
что я не так делаю.. Процедура ОтправитьСМСКонтрагенту(Элемент) Экспорт ФормаСМС = Обработки.ФанРассылкаSMS.ПолучитьФорму("СМС"); Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | КонтактнаяИнформация.Представление, | КонтактнаяИнформация.Объект |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | (КонтактнаяИнформация.Объект = &Контрагент | ИЛИ КонтактнаяИнформация.Объект.Владелец = &Контрагент) | И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)"; Запрос.УстановитьПараметр("Контрагент",Элемент.Ссылка); Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат Иначе ФормаСМС = Обработки.ФанРассылкаSMS.ПолучитьФорму("СМС"); ФормаСМС.Справочник.Колонки.Добавить("Номер"); ФормаСМС.Справочник.Колонки.Добавить("Контакт"); ФормаСМС.ЭлементыФормы.Справочник.СоздатьКолонки(); НовСтр = ФормаСМС.Справочник.Добавить(); Выб = Рез.Выбрать(); Пока Выб.Следующий() Цикл НовСтр.Номер = Выб.Представление; НовСтр.Контакт = Выб.Объект; КонецЦикла; ФормаСМС.Заголовок = "Отправка смс для "+ Выб.Объект +" ("+Выб.Представление+")"; ФормаСМС.ЭлементыФормы.Номер.Значение = Выб.Представление; ФормаСМС.Открыть(); КонецЕсли; КонецПроцедуры |
|||
12
Oleg_Kag
30.07.12
✎
14:10
|
(11) Не полностью или не корректно ставишь задачу.
|
|||
13
Boudybuilder
30.07.12
✎
14:16
|
(12) В смысле?
|
|||
14
hhhh
30.07.12
✎
14:19
|
(13) а точно можно смс-ку на телефон сбросить? По идее МобильныйТелефон должно быть.
|
|||
15
Boudybuilder
30.07.12
✎
14:23
|
(14) Разве это имеет значение... Это уже совсем другая история. И там все в порядке ;)
|
|||
16
Oleg_Kag
30.07.12
✎
14:26
|
(13) Это процедура у тебя где? В цикле что-ли?
Запрос.УстановитьПараметр("Контрагент",Элемент.Ссылка);//<-ты выбираешь одного конкретного контрагента, а не список... или у тебя у каждого контрагента несколько телефонов забито? |
|||
17
Boudybuilder
30.07.12
✎
14:43
|
(16)
Да там все нормально. Проверил в цикл добавил Сообщить(Выб.Представление); И мне вполне адекватно показало все три номера контрагента и его контактных лиц! А че тогда это НовСтр = ФормаСМС.Справочник.Добавить() не срабатывает? |
|||
18
Boudybuilder
30.07.12
✎
14:46
|
(17) Засунул ее НовСтр = ФормаСМС.Справочник.Добавить();
тоже в цикл , и все работает вроде. Щас так: Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | КонтактнаяИнформация.Представление, | КонтактнаяИнформация.Объект |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | (КонтактнаяИнформация.Объект = &Контрагент | ИЛИ КонтактнаяИнформация.Объект.Владелец = &Контрагент) | И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)"; Запрос.УстановитьПараметр("Контрагент",Элемент.Ссылка); Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат Иначе ФормаСМС = Обработки.ФанРассылкаSMS.ПолучитьФорму("СМС"); ФормаСМС.Справочник.Колонки.Добавить("Номер"); ФормаСМС.Справочник.Колонки.Добавить("Контакт"); ФормаСМС.ЭлементыФормы.Справочник.СоздатьКолонки(); Выб = Рез.Выбрать(); Пока Выб.Следующий() Цикл НовСтр = ФормаСМС.Справочник.Добавить(); НовСтр.Номер = Выб.Представление; НовСтр.Контакт = Выб.Объект; Сообщить(Выб.Представление); КонецЦикла; ФормаСМС.Заголовок = "Отправка смс для "+ Выб.Объект +" ("+Выб.Представление+")"; ФормаСМС.ЭлементыФормы.Номер.Значение = Выб.Представление; ФормаСМС.Открыть(); КонецЕсли; Все ли ОК? |
|||
19
Boudybuilder
30.07.12
✎
17:20
|
Тут еще один вопросик , надеюсь последний уже...
Выгружаю запрос в СписокЗначений - "СписокНомеров". И делаю в поле ввода так: Процедура МасивНомеровНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ВыбранЭлемент = СписокНомеров.ВыбратьЭлемент("Выберите номер"); Если Не ВыбранЭлемент = Неопределено Тогда Элемент.Значение = ВыбранЭлемент.Значение; КонецЕсли; КонецПроцедуры Все работает , но через окно выбора значения , а мне хотелось бы чтобы из выпадающего списка я выбирал конкретное значение. Какие действия мне нужно проделать? Буду благодарен за ответ , спасибо. |
|||
20
Boudybuilder
30.07.12
✎
17:23
|
Да , и еще ...
Какая разница у Элементов Формы "Поле ввода" и "Поле Выбора". Ведь набор кнопок у них похож... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |