Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос к табличной части справочника          
vl185 Подменю пользователя
сообщение 24.06.14, 18:10
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 58
Спасибо сказали: 0 раз
Рейтинг: 0

УТ3. в Справочнике Партнеры есть табличная часть - КонтактнаяИнформация, в этой табличной части есть реквизит - Представление. В форма справочника этот реквизит имеет 1 строки - Адрес, телефон и емейл. Как в запросе получить значения только 1 строки - Адрес?

ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка1,
    ПартнерыКонтактнаяИнформация.Ссылка КАК Партнер,
    ПартнерыКонтактнаяИнформация.Ссылка.Родитель КАК Родитель,
    ПартнерыКонтактнаяИнформация.Представление
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
        ПО (Контрагенты.Партнер = ПартнерыКонтактнаяИнформация.Ссылка.Родитель)

logist Подменю пользователя
сообщение 24.06.14, 20:57
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

"ВЫБРАТЬ
|    КонтрагентыКонтактнаяИнформация.Представление,
|    КонтрагентыКонтактнаяИнформация.Ссылка
|ИЗ
|    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
|ГДЕ
|    КонтрагентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
|    И КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)"


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: vl185,

vl185 Подменю пользователя
сообщение 25.06.14, 8:36
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 58
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо огромное, подскажите, ещё, пожалуйста а как вывести в одну строку и адрес и телефон?
А то 2 строки получается и не сгрупировть никак upset.gif
"ВЫБРАТЬ
|    КонтрагентыКонтактнаяИнформация.Представление,
|    КонтрагентыКонтактнаяИнформация.Ссылка
|ИЗ
|    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
|ГДЕ
|    КонтрагентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
|    Или КонтрагентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)"




TipsyKID Подменю пользователя
сообщение 25.06.14, 10:19
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

Добрый день, как - то так :
ВЫБРАТЬ
    Адресс.Ссылка,
    (ВЫРАЗИТЬ(ЕСТЬNULL(Адресс.Представление, "") КАК СТРОКА(1023))) + (ВЫРАЗИТЬ(ЕСТЬNULL(Телефон.Представление, "") КАК СТРОКА(1023))) КАК АдрессТелефон
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК Адресс
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК Телефон
        ПО Адресс.Ссылка = Телефон.Ссылка
ГДЕ
    Адресс.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    И Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: vl185,

vl185 Подменю пользователя
сообщение 25.06.14, 10:36
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 58
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(TipsyKID @ 25.06.14, 11:19) *
Добрый день, как - то так :

Я прошу прощения, я только учу запросы и дальше левого соединения ещё не продвинулся faceoff.gif В вашем запросе адрес и телефон попали в одну колонку, а мне надо в разных колонках но в одной строке. Спасибо.

TipsyKID Подменю пользователя
сообщение 25.06.14, 10:44
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

ВЫБРАТЬ
    Адресс.Ссылка,
    ЕстьNULL(Адресс.Представление,"") КАК Адресс,
    ЕстьNULL(Телефон.Представление,"") КАК Телефон
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК Адресс
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК Телефон
        ПО Адресс.Ссылка = Телефон.Ссылка
ГДЕ
    Адресс.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    И Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)


Сообщение отредактировал TipsyKID - 25.06.14, 10:46


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: vl185,

sava1 Подменю пользователя
сообщение 25.06.14, 10:49
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Объясните тупому - на кой там фулл джойн? чтобы табличку побольше получить?

Petre Подменю пользователя
сообщение 25.06.14, 10:52
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Потомушо есть контакты только с телефоном или только с адресом.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

TipsyKID Подменю пользователя
сообщение 25.06.14, 10:56
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

При полном соединении попадут контрагенты у которых информация заполнена частично, к примеру только телефон или только адресс, что мне кажется рациональным.


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

sava1 Подменю пользователя
сообщение 25.06.14, 11:20
Сообщение #10

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Т.е. вместо выборки в 10 000 записей мы лепим 100 000 и скармливаем серверу для отбора?
А может проще выбрать 10 000 с CASE WHEN и группировкой по контрагенту?

vl185 Подменю пользователя
сообщение 25.06.14, 11:21
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 58
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(TipsyKID @ 25.06.14, 11:56) *
При полном соединении попадут контрагенты у которых информация заполнена частично, к примеру только телефон или только адресс, что мне кажется рациональным.


А мне, вот как раз, надо было видеть у кого адреса и телефоны не заполнены.

TipsyKID Подменю пользователя
сообщение 25.06.14, 11:25
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 413
Из: Киев
Спасибо сказали: 161 раз
Рейтинг: 0

Цитата(sava1 @ 25.06.14, 12:20) *
Т.е. вместо выборки в 10 000 записей мы лепим 100 000 и скармливаем серверу для отбора?
А может проще выбрать 10 000 с CASE WHEN и группировкой по контрагенту?


Простите, я где - то пропустил в вопросе , требование об "оптимальности" и "простоте". Думаю задача стаяла сугубо для обучения и в отличии от Вас я предложил вариант запроса. На этом уважаемый "критикан" наш разговор окончен.


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

alex040269 Подменю пользователя
сообщение 25.06.14, 12:23
Сообщение #13

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Предложу такой запрос:
ВЫБРАТЬ Ссылка,МАКСИМУМ(Адрес),МАКСИМУМ(Телефон) ИЗ (
ВЫБРАТЬ
    Адресс.Ссылка,
    Адресс.Представление КАК Адрес,
    Null Как Телефон
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК Адресс
ГДЕ
    Адресс.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    

ОБЪЕДИНИТЬ ВСЕ    
    
ВЫБРАТЬ
    Адресс.Ссылка,
    Null ,
    Адресс.Представление
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК Адресс
    
    Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
  ) ВЗ
  
  СГРУППИРОВАТЬ ПО
  Ссылка

при условии, что у одного контрагента не более одного адреса и телефона


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

sava1 Подменю пользователя
сообщение 25.06.14, 12:51
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(alex040269 @ 25.06.14, 13:23) *
Предложу такой запрос:


Кстати - отработает в разы быстрее

Vofka Подменю пользователя
сообщение 25.06.14, 21:01
Сообщение #15

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Во всех приведенных запросах ниже 3 поста есть недочет: если в системе будет больше 1 адреса или больше 1 телефона - то будет борода crazy.gif . В условии надо кроме типа указывать ещё вид, как изначально написал logist.

sava1 Подменю пользователя
сообщение 26.06.14, 7:01
Сообщение #16

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Человек же написал -
Цитата(TipsyKID @ 25.06.14, 12:25) *
Думаю задача стаяла сугубо для обучения

соответственно и решение - кривое, но действенное.

logist Подменю пользователя
сообщение 26.06.14, 18:03
Сообщение #17

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 25.06.14, 21:01) *
если в системе будет больше 1 адреса или больше 1 телефона

В УТ3, УТ11, УНФ, и вероятно всех конфигурациях написанных на БСП - не будет, подсистема контактной информации контрагента построена так, что для каждой пары Вид+Тип будет только одна запись.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 26.06.14, 19:36
Сообщение #18

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

logist,
Цитата(logist @ 26.06.14, 19:03) *
Вид+Тип

А выше все только на тип условие ставят. И это не только в конфах на базе БСП сделано, так сделано и в конфигурациях прошлых поколений.

Сообщение отредактировал Vofka - 26.06.14, 19:52

victor-o555 Подменю пользователя
сообщение 12.10.14, 22:06
Сообщение #19

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте!
запрос из поста 2 внутри функции, которая должна вернуть адрес контрагента
на входе функции переменная с наименованием контрагента - Объект
как сделать отбор по наименованию контрагента?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 14:45
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!