Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/89: Рейтинг темы: голосов - 89, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
1

Выбрать и адрес, и телефон, и ящик из контактной информации

09.07.2014, 16:16. Показов 16337. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет.
У меня тут снова вопрос родился. Мне надо получить контактную информацию(адрес, телефон и мыло), делаю вот так
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Запрос2 = Новый Запрос;
        Запрос2.Текст = "ВЫБРАТЬ
                        |   КонтактнаяИнформация.Представление,
                        |   КонтактнаяИнформация.Поле1 КАК ПочтовыйИндекс,
                        |   КонтактнаяИнформация.Поле4 КАК Город,
                        |   КонтактнаяИнформация.Поле6 КАК Улица,
                        |   КонтактнаяИнформация.Поле7 КАК Дом,
                        |   КонтактнаяИнформация.Поле8 КАК Корпус,
                        |   КонтактнаяИнформация.Поле9 КАК Квартира
                        |ИЗ
                        |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                        |ГДЕ
                        |   КонтактнаяИнформация.Объект = &Объект
                        |   И КонтактнаяИнформация.Вид = &Адрес";
            Запрос2.УстановитьПараметр("Объект",СтрокаТЧ.Контрагент);
        Запрос2.УстановитьПараметр("Адрес", Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
ну там дальше выполнить выбрать следующий и тд, ну в общем для адреса всё понятно, это всё работает, ну и понятно как выбирать что-то одно, просто парамаетр менять на телефон или мыло, а вот как всё сразу не могу понять=\
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2014, 16:16
Ответы с готовыми решениями:

Выборка контактной информации из запроса
Доброго времени суток. в УТ 10.3 написал следующие строки выборки контактной информации из запроса:...

Получение данных контактной информации
Изучаю 1с по книге Игоря Ощенко Азбука программирования в 1с:предприятие 8.3, нужно получить адрес...

Виды контактной информации непонятные элементы
Добрый день всем. Ситуация такова. Пришел обновлять типовую конфу БП 2.0, бух говорит что пропали...

Исходный файл содержит информацию: Имя, фамилия,отчество, номер телефона, адрес. Создать процедуру, которая выводит на экран по фамилии телефон, адрес
Исходный файл содержит информацию: Имя, фамилия,отчество, номер телефона, адрес. Создать процедуру,...

24
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
09.07.2014, 16:17 2
1C
1
|   И КонтактнаяИнформация.Вид В (&Адрес)";
И передавайте список значений или массив.
1
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 16:45  [ТС] 3
Как-то так?

1C
1
2
3
4
Адрес = Новый Массив;
Инфа = Справочники.ВидыКонтактнойИнформации.Выбрать();
Адрес.Добавить(Инфа.Ссылка); // правда здесь не знаю что именно, ссылка наименование видобъекта и тд
Запрос2.УстановитьПараметр("Адрес", Адрес);
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
09.07.2014, 16:49 4
В таком виде не заработает.

1C
1
2
3
4
5
6
7
Адрес = Новый Массив;
Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.Телефон);
Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.ЭлектроннаяПочта);
Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.ВсеЧтоНравитсяИзПредопреденныхЭлементов); 
 
Запрос2.УстановитьПараметр("Адрес", Адрес);
1
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 17:05  [ТС] 5
Да, спасибо, в таком виде работает.
Но тут походу надо ещё с полями разобраться и И КонтактнаяИнформация.Тип = &Тип";. Потому что в таком виде всё равно выбирает только адрес, телефон игнорирует.
А если Запрос2.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон);
то только телефон.
Я правильно понимаю, что надо опять через массив?
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
09.07.2014, 17:08 6
Цитата Сообщение от bugag1 Посмотреть сообщение
Я правильно понимаю, что надо опять через массив?
да, через массив и условие измените: И КонтактнаяИнформация.Тип В (&Тип)
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 17:43  [ТС] 7
Тип.Добавить(Перечисления.ТипыКонтактнойИнформации.Телефон);
Тип.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);
И всё равно выбирает только адрес
надо было догадаться назвать поле1, поле2 везде, поле2 что регион, что код города
из-за этого походу и не получается

Добавлено через 25 минут
Начитался про всякие временные таблицы, ничего толком не понял, да и наверное можно очередной запрос впихнуть и не париться, аж целых 3 ещё. Но можно ли как-то проще?
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
09.07.2014, 17:46 8
bugag1, покажите весь запрос
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 17:52  [ТС] 9
да он тут есть уже
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Запрос2.Текст = "ВЫБРАТЬ
                        |   КонтактнаяИнформация.Представление Email,
                        |   КонтактнаяИнформация.Поле2 КАК КодГорода,
                        |   КонтактнаяИнформация.Поле3 КАК Телефон,
                        |   КонтактнаяИнформация.Поле1 КАК ПочтовыйИндекс,
                        |   КонтактнаяИнформация.Поле4 КАК Город,
                        |   КонтактнаяИнформация.Поле6 КАК Улица,
                        |   КонтактнаяИнформация.Поле7 КАК Дом,
                        |   КонтактнаяИнформация.Поле8 КАК Корпус,
                        |   КонтактнаяИнформация.Поле9 КАК Квартира
                        |ИЗ
                        |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                        |ГДЕ
                        |   КонтактнаяИнформация.Объект = &Объект
                        |   И КонтактнаяИнформация.Вид В (&Адрес)
                        |   И КонтактнаяИнформация.Тип В (&Тип)";
Добавлено через 28 секунд
представление email это я баловался немного

Добавлено через 4 минуты
1C
1
2
3
4
5
6
7
8
9
10
11
                    Адрес = Новый Массив; 
            Тип = Новый Массив;
            Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
            Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
            Тип.Добавить(Перечисления.ТипыКонтактнойИнформации.Телефон);
            Тип.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);
            Адрес.Добавить(Справочники.ВидыКонтактнойИнформации.EmailОрганизации);
     
            Запрос2.УстановитьПараметр("Адрес", Адрес);
            Запрос2.УстановитьПараметр("Объект",СтрокаТЧ.Контрагент);
            Запрос2.УстановитьПараметр("Тип",Тип);
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
09.07.2014, 17:54 10
bugag1, значит дело в Объекте. Т.е. по указанному объекту не найдена запись в регистр с типом контактной информации Телефон.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 18:39  [ТС] 11
Да не, она то найдена, ведь если убрать Тип.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);, то телефон добавляется, но не добавляется адрес и наоборот
Наверное как обычно решение придёт утром на свежую голову

Я всё же грешу на все эти поле1 поле2 поле3, наименование одно, значения разные

Добавлено через 42 минуты
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Запрос2.Текст = "ВЫБРАТЬ
                        |   КонтактнаяИнформация.Представление КАК Email,
                        |   Телефоны.Поле2 КАК КодГорода,
                        |   Телефоны.Поле3 КАК Телефон,
                        |   КонтактнаяИнформация.Поле1 КАК ПочтовыйИндекс,
                        |   КонтактнаяИнформация.Поле4 КАК Город,
                        |   КонтактнаяИнформация.Поле6 КАК Улица,
                        |   КонтактнаяИнформация.Поле7 КАК Дом,
                        |   КонтактнаяИнформация.Поле8 КАК Корпус,
                        |   КонтактнаяИнформация.Поле9 КАК Квартира
                        |ИЗ
                        |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация,
                        |   РегистрСведений.КонтактнаяИнформация КАК Телефоны
                        |ГДЕ
                        |   КонтактнаяИнформация.Объект = &Объект
                        |   И КонтактнаяИнформация.Вид В(&Адрес)
                        |   И Телефоны.Тип В(&Тип)";
Вот такая штука работает дьявольски долго, адекватно выбирает адрес, но телефон и код города только один и непонятно какой, т.е. во все строки заносится один и тот же номер
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.07.2014, 23:09 12
"ИЛИ" - отменили? Я уж стихами.

Не по теме:

Оль, ты тоже аккуратнее с виртуальным общением :). Чужие тормоза засасывают :kissing:



Добавлено через 1 минуту
Опа!! А это что за чудодейственная конструкция? Скуль же тут полный джойн устроит
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация,
| РегистрСведений.КонтактнаяИнформация КАК Телефоны

Добавлено через 1 минуту
Конструктор запросов есть, bugag1
0
GreenkA
09.07.2014, 23:19
  #13

Не по теме:

duk337, где я торможу?

0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 23:24  [ТС] 14
да ИЛИ юзали сначала, да как-то бестолку было, а потом про ИЛИ забыли, сейчас попробуем
Цитата Сообщение от duk337 Посмотреть сообщение
Опа!! А это что за чудодейственная конструкция?
да это баловство, было интересно, что ваще произойдёт, 1с я познаю методом тыка, про конструктор запроса ваще узнал на днях, также как и что текст модуля можно тут же проверить в конфигураторе "текст-проверка модуля", забавно, правда?
Цитата Сообщение от duk337 Посмотреть сообщение
Чужие тормоза засасывают
ну извините, что не все спецами родились
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.07.2014, 23:41 15
GreenkO,
Не по теме:
duk337, где я торможу?
упаси бог! Ты обгоняешь, но конструкция
1C
1
2
(Тип=&Тип ИЛИ Тип=&Тип1)
И (Вид=&Вид)...
ну... доступнее, что ли

Добавлено через 1 минуту
Цитата Сообщение от bugag1 Посмотреть сообщение
"текст-проверка модуля", забавно, правда?
стринг ты не проверишь. Проверяй ПКМ, Конструктор запроса
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
09.07.2014, 23:53  [ТС] 16
Цитата Сообщение от duk337 Посмотреть сообщение
стринг ты не проверишь. Проверяй ПКМ, Конструктор запроса
не, про это я и узнал, а раньше мучился, запустил, а там ошибка в запятой и опять по новой смешно
теперь жизнь в разы проще

Цитата Сообщение от duk337 Посмотреть сообщение
(Тип=&Тип ИЛИ Тип=&Тип1)
чёт я так, вроде, писал, но не работало
наверное, завтра надо будет точно глянуть, дома ну уж очень долго обработка работает, а учитывая сколько у меня пока ошибок...

Добавлено через 2 минуты
Цитата Сообщение от duk337 Посмотреть сообщение
1
2
(Тип=&Тип ИЛИ Тип=&Тип1)
И (Вид=&Вид)...
ну... доступнее, что ли
а это, доступнее, чем Тип В (&Тип) Вид В (&Вид)? А почему?


А вот, я писал вот так
Вид или Вид1, где вид = адрес, вид1 = телефон, ну это не работало
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
10.07.2014, 02:31 17
Дык, надо, чтоб работало. Ну, то есть, осознанно. Я, наприимер, и не пойму, каким текстом помочь: всё от логики
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
10.07.2014, 13:16  [ТС] 18
Цитата Сообщение от duk337 Посмотреть сообщение
Дык, надо, чтоб работало.
Согласен

Я вот думаю, может не в запросе это обрабатывать надо, а в коде? Типа если запрос.количество там больше 1, то найти(строка, "(//код города тут)" и уже как-то так разбивать
ай ща попробую

Добавлено через 21 минуту
о боже, какая чушь получилась, но заработала
всем спасибо
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
10.07.2014, 15:19 19
Тип вообще значением надо, а виды к своим типам прикручивать, обычная логика:
1C
1
2
(Тип=ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес) И Вид=&ВидАдреса) ИЛИ
(Тип=ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) И Вид=&ВидТелефона)
Добавлено через 50 секунд

Не по теме:

я предлагал просто принцип. Никак не ожидал, что...



Добавлено через 1 минуту
условие на объект само собой
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
10.07.2014, 16:15  [ТС] 20
Да думал прокатит тупо строка.телефон = выборка.телефон, например
не прокатило

Добавлено через 1 минуту
Цитата Сообщение от duk337 Посмотреть сообщение
Тип вообще значением надо, а виды к своим типам прикручивать, обычная логика:
логика человеческая или логика 1с ? Со второй тяжело пока
0
10.07.2014, 16:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2014, 16:15
Помогаю со студенческими работами здесь

Добавление Окна Ввода Контактной Информации В Документ.
Здравствуйте, имеется Управление торговлей, редакция 11.0 (11.0.8.11) . Скажите пожалуйста как...

Порядок типов контактной информации в карточке контрагента
Всем доброго времени суток. В 1С 8.2, УТ10.3, в карточке контрагента есть вкладка контактная...

Как правильно выбрать размеры контактной площадки?
Здравствуйте, подскажите пожалуйста чем руководствоваться при выборе параметров штыревой контактной...

Drupal, ubercart и payonline оформление заказа и передача контактной информации
Есть проблема Стоит Drupal, на нее нацеплен ubercart и привязана оплата картой через payonline ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru