| 
    
        
     
     | 
    
    
  | 
Контакты организации запросом | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        NordMad    
     18.12.15 
            ✎
    14:16 
 | 
         
        и сново вопросы по запросам. Нужно вытащить некоторые контакты организации, ничего лучше не придумал как такой запрос: 
 
        ВЫБРАТЬ КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Тип = &Тип И КонтактнаяИнформация.Вид = &Вид И КонтактнаяИнформация.Объект = &Объект ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Объект = &Объект И КонтактнаяИнформация.Тип = &Тип1 И КонтактнаяИнформация.Вид = &Вид1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Объект = &Объект И КонтактнаяИнформация.Тип = &Тип2 И КонтактнаяИнформация.Вид = &Вид2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Объект = &Объект И КонтактнаяИнформация.Тип = &Тип3 И КонтактнаяИнформация.Вид = &Вид3 и всё бы хорошо, только вот когда попадается организация в которой какие то данные не заполнены, соответсвнно он их не выводит и очередность данных сбивается. как сделать так чтобы не зависимо от заполнения информации у меня выводилось фиксировано все 4 записи. а пустые заменять на какой нить "-". прововал что то типа ЕстьNULL(КонтактнаяИнформация.Представление,"") - не помогает  | 
|||
| 
    1
    
        Лефмихалыч    
     18.12.15 
            ✎
    14:18 
 | 
         
        собрать временную таблицу с этими &ТИп b &Вид и содеинить с ней регистр левым соединением     
         | 
|||
| 
    2
    
        NordMad    
     18.12.15 
            ✎
    14:21 
 | 
         
        как это будет выглядеть?! со временными не очень опыт есть     
         | 
|||
| 
    3
    
        NordMad    
     18.12.15 
            ✎
    14:22 
 | 
         
        (1) то есть просто вариант с заменой пустых значений какой то строкой - не вариант в таком запросе?!     
         | 
|||
| 
    4
    
        zak555    
     18.12.15 
            ✎
    14:23 
 | 
         
        (0) используй функции общих модулей     
         | 
|||
| 
    5
    
        NordMad    
     18.12.15 
            ✎
    14:25 
 | 
         
        (4) вообще вместо запроса? а что запросом никак? уже же тянет что надо. осталось только структурировать...     
         | 
|||
| 
    6
    
        Лефмихалыч    
     18.12.15 
            ✎
    14:25 
 | 
         
        (2)
 
        ВЫБРАТЬ &Вид как Вид, &Тип как Тип ПОМЕСТИТЬ ВТ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Вид1, &Тип1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Вид2, &Тип2 ; ВЫБРАТЬ ПОМЕСТИТЬ КИ Из РегистрСведений.КонтактнаяИнформация ГДЕ Объект = &Объект ; ВЫБРАТЬ &Объект как Объект, ВТ., КИ.Представление ИЗ ВТ левое соединение КИ по ВТ.Тип = КИ.Тип и ВТ.Вид = КИ.Вид легче стало?  | 
|||
| 
    7
    
        zak555    
     18.12.15 
            ✎
    14:26 
 | 
         
        (5) там ужже есть функции с нужными запросами
 
        я к тому, что не нужно изобретать велосипед -- всё уже есть в конфе  | 
|||
| 
    8
    
        Лефмихалыч    
     18.12.15 
            ✎
    14:26 
 | 
         
        ВТ., - это ВТ.{звёздочка}     
         | 
|||
| 
    9
    
        Лефмихалыч    
     18.12.15 
            ✎
    14:27 
 | 
         
        ВЫБРАТЬ  
 
        ПОМЕСТИТЬ КИ это выбрать все поля херов маркап...  | 
|||
| 
    10
    
        NordMad    
     18.12.15 
            ✎
    14:32 
 | 
         
        (9) а ИЗ там что не надо писать? чет ошибки пишет     
         | 
|||
| 
    11
    
        NordMad    
     18.12.15 
            ✎
    14:38 
 | 
         
        (9) спасибо всё заработало. осталось только логику понять запроса:)     
         | 
|||
| 
    12
    
        Лефмихалыч    
     18.12.15 
            ✎
    14:44 
 | 
         
        (11) это три запроса.
 
        первый - строит временную таблицу с нужными тебе типами и видами. второй - строит временную таблицу со всей имеющейся контактной информацией у организации. третий запрос соединяет первую таблицу со второй левым соединением.  | 
|||
| 
    13
    
        NordMad    
     18.12.15 
            ✎
    14:57 
 | 
         
        (12) благодарю!     
         | 
|||
| 
    14
    
        zak555    
     18.12.15 
            ✎
    14:57 
 | 
         
        В общем модуле УправлениеКонтактнойИнформацией есть
 
        Функция ПолучитьАдресИзКонтактнойИнформации(Объект, ТипАдреса = "") Экспорт Функция ПолучитьТелефонИзКонтактнойИнформации(Объект) Экспорт  | 
|||
| 
    15
    
        NordMad    
     18.12.15 
            ✎
    15:04 
 | 
         
        (14) тоже гляну. но запрос как то универсальнее. спасибо     
         | 
|||
| 
    16
    
        kumena    
     18.12.15 
            ✎
    15:13 
 | 
         
        >> В общем модуле УправлениеКонтактнойИнформацией есть 
 
        ща тебе лефмихалыч гвоздь в голову забъет, за запросы в цикле  | 
|||
| 
    17
    
        zak555    
     18.12.15 
            ✎
    15:15 
 | 
         
        (16) в 0 написано
 
        контакты организации -- в единственном числе  | 
|||
| 
    18
    
        Мэс33    
     18.12.15 
            ✎
    15:16 
 | 
         
        (15) всегда надо юзать то, что есть в конфе. Зачем писать велосипед?     
         | 
|||
| 
    19
    
        NordMad    
     18.12.15 
            ✎
    15:29 
 | 
         
        (18) просто в 8ках привычнее получать инфу запросами уже. как универсальный способ вытягивания данных с базы     
         | 
|||
| 
    20
    
        zak555    
     18.12.15 
            ✎
    15:31 
 | 
         
        (19) так функции из 14 как раз и используют запросы     
         | 
|||
| 
    21
    
        User_Agronom    
     18.12.15 
            ✎
    15:43 
 | 
         
        ВЫБРАТЬ
 
        КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление, Тип, Вид ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Тип В (&Тип) И КонтактнаяИнформация.Вид В (&Вид) И КонтактнаяИнформация.Объект В (&Объект)  | 
|||
| 
    22
    
        NordMad    
     18.12.15 
            ✎
    15:46 
 | 
         
        (21) только видов контактов несколько     
         | 
|||
| 
    23
    
        NordMad    
     18.12.15 
            ✎
    15:48 
 | 
         
        (21) такой вариант вообще не подходит. ничего не дает. вот запрос выше четко делает что нужно, выдает нужное количество записей вне зависимости от заполнения полей     
         | 
|||
| 
    24
    
        salvator    
     18.12.15 
            ✎
    15:53 
 | 
         
        (7) +100     
         | 
|||
| 
    25
    
        User_Agronom    
     18.12.15 
            ✎
    16:06 
 | 
         
        (23) ВЫБРАТЬ 
 
        КонтактнаяИнформация.Объект, КонтактнаяИнформация.Представление, Тип, Вид ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Тип В (&Тип) И КонтактнаяИнформация.Вид В (&Вид) И КонтактнаяИнформация.Объект = &Объект И будет тот же запрос, что в (0) Ну и что, что видов несколько? Передай их массивом в параметр.  | 
|||
| 
    26
    
        Лефмихалыч    
     18.12.15 
            ✎
    16:07 
 | 
         
        (25) да, только ему нужен не такой результат, как в (0)     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |