|
Достать из КИ Организации WebСайт и Email | ☑ | ||
---|---|---|---|---|
0
Александр43
25.07.19
✎
09:26
|
Есть запрос, который вытаскивает все типы из контактной информации (КИ). Необходимо достать WebСайт и Email организации по типу данных, с привязкой к определенной организации.
Еще новичок в 1с, поэтому испытываю некоторые трудности. В параметрах "Тип" нужно использовать массив, чтобы в дальнейшем через выборку реализовать поиск нужной информации. Пожалуйста разъясните, как правильно сделать массив и выборку. Или может это можно сделать как-то проще? Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Тип КАК Тип, | КонтактнаяИнформация.Представление КАК Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Организация | И КонтактнаяИнформация.Тип В(&Типы) |ИТОГИ ПО | Тип" ; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Тип", ); Результат = Запрос.Выполнить(); |
|||
1
Мимохожий Однако
25.07.19
✎
09:29
|
Посмотри какой тип значения у параметра Тип в твоём запросе. Его и добавить в массив.
|
|||
2
Александр43
25.07.19
✎
09:42
|
(1) МассивТипыДанных = Новый Массив;
МассивТипыДанных.Добавить(Тип("Перечисления.ТипыКонтактнойИнформации.ЭлектроннойПочты")); МассивТипыДанных.Добавить(Тип("Перечисления.ТипыКонтактнойИнформации.ВебСтраница")); Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Тип КАК Тип, | КонтактнаяИнформация.Представление КАК Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Организация | И КонтактнаяИнформация.Тип В(&Типы) |ИТОГИ ПО | Тип" ; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Тип", МассивТипыДанных); Результат = Запрос.Выполнить(); Т.е получается как-то так? |
|||
3
Мимохожий Однако
25.07.19
✎
09:46
|
(2) Ну так и проверь )
|
|||
4
Мимохожий Однако
25.07.19
✎
09:47
|
Возможно правильнее как-то так МассивТипыДанных.Добавить(Перечисления.ТипыКонтактнойИнформации.ЭлектроннойПочты);
|
|||
5
Александр43
25.07.19
✎
09:58
|
(4) А выборка такая будет? Или что-то не так делаю?
Пока Выборка.Следующий() Цикл ВебСтраница = ""; АдресЭлектроннойПочты = ""; ВыборкаКИ = Выборка.Выбрать(); Пока ВыборкаКИ.Следующий() Цикл ВебСтраница = ВебСтраница + ВыборкаКИ.Представление; АдресЭлектроннойПочты = АдресЭлектроннойПочты + ВыборкаКИ.Представление; КонецЦикла; |
|||
6
Мимохожий Однако
25.07.19
✎
10:00
|
(5) Отладчиком пользоваться умеешь? Консоль запросов? Быстрее посмотреть у себя, чем гадать на форуме. Не надо стесняться. Сначала на консоли отладь. Потом воткни запрос в код обработки и смотри отладчиком.
|
|||
7
Александр43
25.07.19
✎
10:57
|
(6) Данные получает, ноо их заменяет потом на последние полученные данные. Тоесть я получил данные веб страницы, а они потом заменились Майлом
Пока Выборка.Следующий() Цикл ВебСтраница = ""; АдресЭлектроннойПочты = ""; ВыборкаКИ = Выборка.Выбрать(); Пока ВыборкаКИ.Следующий() Цикл ВебСтраница = ВебСтраница + ВыборкаКИ.Представление; АдресЭлектроннойПочты = АдресЭлектроннойПочты + ВыборкаКИ.Представление; КонецЦикла; КонецЦикла; |
|||
8
catena
25.07.19
✎
11:18
|
(7)А зачем два цикла? А зачем обнулять переменный на каждой итерации? А зачем писать одно и то же в две разные переменные? А где проверка - майл это или веб?
|
|||
9
Александр43
25.07.19
✎
12:05
|
(8) Еще только обучаюсь и не все нюансы знаю, по этому сюда и написал, чтобы помогли разобраться
|
|||
10
Александр43
25.07.19
✎
12:08
|
(8) Научите пожалуйста, как правильно это реализовать
|
|||
11
catena
25.07.19
✎
12:32
|
(10)По предыдущим вопросам все исправил?
|
|||
12
Александр43
25.07.19
✎
12:47
|
(11) Если я убираю 2 цикл, то данные вообще тогда не находит. Пока так и осталось
Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Тип КАК Тип, | КонтактнаяИнформация.Представление КАК Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Организация | И КонтактнаяИнформация.Тип В(&Типы) |ИТОГИ ПО | Тип" ; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Типы", МассивТипыДанных); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл ВебСтраница = ""; АдресЭлектроннойПочты = ""; ВыборкаКИ = Выборка.Выбрать(); Пока ВыборкаКИ.Следующий() Цикл ВебСтраница = ВебСтраница + ВыборкаКИ.Представление; АдресЭлектроннойПочты = АдресЭлектроннойПочты + ВыборкаКИ.Представление; КонецЦикла; КонецЦикла; |
|||
13
catena
25.07.19
✎
12:49
|
(12)Прошу прощения, я не увидела, что там итоги. Тогда еще вопрос: Для чего в запросе итоги?
|
|||
14
hhhh
25.07.19
✎
12:51
|
(12) а где тип тут проверяете?
если выборка.тип = хрензнаетчему тогда ВебСтраница = ВыборкаКИ.Представление; |
|||
15
Александр43
25.07.19
✎
13:09
|
(13) Мне в пакет нужно вывести Сайт и Mail, конкретной организации. Запрос их по типу данных находит и выводит
|
|||
16
hhhh
25.07.19
✎
13:12
|
(15) тогда в чем вопрос? если выводит?
|
|||
17
catena
25.07.19
✎
13:13
|
(15)Я задачу еще из первого поста поняла. Итоги как в этом помогают?
|
|||
18
Александр43
25.07.19
✎
14:00
|
(16) С запросом я сам разбираюсь, проблемы с Выборкой, не умею ее правильно оформлять, поэтому столько ошибок и далее получается охинеяя. Мне бы какой-нибудь пример, как оформить правильно, чтобы дальше самому по сидеть и по разбираться.
|
|||
19
catena
25.07.19
✎
14:43
|
(18) нормально у тебя выборка оформлена. У тебя проблема с логикой и переменными. Запиши по-русски, как должно работать, а поттм уже на одинэсовский пепеводи.
|
|||
20
Александр43
25.07.19
✎
15:00
|
(19) Я непонимаю, как сделать проверку то что Mail это Mail, а то если я даже оставлю одну переменную Mail адрес, то при повторном заходе в цикл, он Mail заменит Сайтом, так и выведет.
|
|||
21
catena
26.07.19
✎
04:48
|
(20) Тебе в (14) сказали, как.
Если ВыборкаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.ЭлектроннойПочты Тогда АдресЭлектроннойПочты = ВыборкаКИ.Представление; Иначе ВебСтраница = ВыборкаКИ.Представление; КонецЕсли; |
|||
22
ДенисЧ
26.07.19
✎
07:24
|
Ну ты хотя бы Митичкина прочти... Или на худой конец Радченко...
Чего гадать-то? |
|||
23
Александр43
26.07.19
✎
15:11
|
(21) Спасибо, разобрался и всё работает. Если не трудно, то подскажите как сделать чтобы переменная не заменялась при условии если сайтов указано больше 2х. Чтобы по выходу в макете отображались все сайты и страницы
|
|||
24
Has
26.07.19
✎
16:20
|
(23) как вариант - добавлять строку в макет (или туда, откуда ты там потом выводишь) при каждом получении из Выборка
зы: и зачем тогда разные переменные? |
|||
25
Александр43
26.07.19
✎
16:42
|
(24) Ну да можно и одну переменную, но вроде строку нельзя в макет добавлять (могу ошибаться). Но если сделать одну переменную, он же сплошняком будет выводить всю информацию? Хотелось бы чтобы если переменная содержит уже сайт, в нее еще добавлялись другие сайты, при этом чтобы самый первый сайт не пропадал. А то у меня сейчас получается когда 1 сайт нашелся, он заменяется 2 сайтом и по итогу 2 на макет уходит.
|
|||
26
Has
26.07.19
✎
16:52
|
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |