| 
    
            
         
         | 
    
    
  | 
Приоритет выбор записи в запросе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        reznik911    
     25.06.14 
            ✎
    10:35 
 | 
         
        1с Предприятие УТП для казахстана 2.0.3.6. есть отчет подписка ИТС1 в СКД. в запросе СКД есть связь между ВТ и регистром сведений Контактная информация. мне нужно чтобы он выбрал телефон контрагента, а если его нет то телефон бухгалтера.если есть оба то все равно выбрать телефон контрагента.
 
        вот сам запрос ВЫБРАТЬ ИТС_ПодпискиСрезПоследних.Организация, ИТС_ПодпискиСрезПоследних.Контрагент КАК Контрагент, ИТС_ПодпискиСрезПоследних.ВидПодписки, ИТС_ПодпискиСрезПоследних.ДатаНачала, ИТС_ПодпискиСрезПоследних.ДатаЗавершения, ИТС_ПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ИТС_ПодпискиСрезПоследних.СостояниеЗаявки, ИТС_ПодпискиСрезПоследних.Заявка.РегНомер КАК РегистрационныйНомер, ИТС_ПодпискиСрезПоследних.Заявка, ВЫРАЗИТЬ(ИТС_ПодпискиСрезПоследних.Контрагент.ДополнительноеОписание КАК СТРОКА(300)) КАК ДополнительноеОписание ПОМЕСТИТЬ ВТ_ИТСПодпискиСрезПоследних ИЗ РегистрСведений.ИТС_Подписки.СрезПоследних(&Дата, Организация = &Организация) КАК ИТС_ПодпискиСрезПоследних ИНДЕКСИРОВАТЬ ПО Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ИТСПодпискиСрезПоследних.Организация, ВТ_ИТСПодпискиСрезПоследних.Контрагент, ВТ_ИТСПодпискиСрезПоследних.ВидПодписки, ВТ_ИТСПодпискиСрезПоследних.ДатаНачала, ВТ_ИТСПодпискиСрезПоследних.ДатаЗавершения, МАКСИМУМ(ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле6, "") = "" ТОГДА "Ул. " + КонтактнаяИнформация.Поле6 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле7, "") = "" ТОГДА ", Дом " + КонтактнаяИнформация.Поле7 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле8, "") = "" ТОГДА ", " + КонтактнаяИнформация.Поле8 + ВЫБОР КОГДА НЕ ЕСТЬNULL(КонтактнаяИнформация.Поле9, "") = "" ТОГДА ", " + КонтактнаяИнформация.Поле9 ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ "" КОНЕЦ) КАК Адрес, ВТ_ИТСПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ВТ_ИТСПодпискиСрезПоследних.СостояниеЗаявки, ВТ_ИТСПодпискиСрезПоследних.Заявка.РегНомер КАК РегистрационныйНомер, ВТ_ИТСПодпискиСрезПоследних.Заявка КАК Заявка, ВТ_ИТСПодпискиСрезПоследних.ДополнительноеОписание, КонтактнаяИнформация1.Поле3 КАК Телефон ПОМЕСТИТЬ ПодпискиИТС ИЗ ВТ_ИТСПодпискиСрезПоследних КАК ВТ_ИТСПодпискиСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.Контрагенты))) И (КонтактнаяИнформация.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) И (КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация1 ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация1.Объект КАК Справочник.Контрагенты))) И (КонтактнаяИнформация1.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) И (ВЫБОР КОГДА КонтактнаяИнформация1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) ТОГДА КонтактнаяИнформация1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) ИНАЧЕ КонтактнаяИнформация1.Вид.Наименование = "Телефон бух" КОНЕЦ) СГРУППИРОВАТЬ ПО ВТ_ИТСПодпискиСрезПоследних.ВидПодписки, ВТ_ИТСПодпискиСрезПоследних.Организация, ВТ_ИТСПодпискиСрезПоследних.Контрагент, ВТ_ИТСПодпискиСрезПоследних.ДатаНачала, ВТ_ИТСПодпискиСрезПоследних.ДатаЗавершения, ВТ_ИТСПодпискиСрезПоследних.СостояниеЗаявки, ВТ_ИТСПодпискиСрезПоследних.Заявка, ВТ_ИТСПодпискиСрезПоследних.Контрагент.ОсновноеКонтактноеЛицо, ВТ_ИТСПодпискиСрезПоследних.Заявка.РегНомер, ВТ_ИТСПодпискиСрезПоследних.ДополнительноеОписание, КонтактнаяИнформация1.Поле3 ИНДЕКСИРОВАТЬ ПО Заявка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИТС_ДискиСрезПоследних.Заявка КАК Заявка, СУММА(ВЫБОР КОГДА ИТС_ДискиСрезПоследних.СостояниеДиска = ЗНАЧЕНИЕ(Перечисление.ИТС_ВидыСостоянийДисков.Получен) ТОГДА 1 КОНЕЦ) КАК КоличествоНеОтгруженных, ДОБАВИТЬКДАТЕ(ИТС_ДискиСрезПоследних.Заявка.ДатаНачала, МЕСЯЦ, ИТС_ДискиСрезПоследних.Заявка.ВидПодписки.Периодичность * (ИТС_ДискиСрезПоследних.НомерПериода - 1)) КАК ДатаДиска ПОМЕСТИТЬ ДискиИТС ИЗ РегистрСведений.ИТС_Диски.СрезПоследних(&Дата, Организация = &Организация) КАК ИТС_ДискиСрезПоследних СГРУППИРОВАТЬ ПО ИТС_ДискиСрезПоследних.Заявка, ДОБАВИТЬКДАТЕ(ИТС_ДискиСрезПоследних.Заявка.ДатаНачала, МЕСЯЦ, ИТС_ДискиСрезПоследних.Заявка.ВидПодписки.Периодичность * (ИТС_ДискиСрезПоследних.НомерПериода - 1)) ИНДЕКСИРОВАТЬ ПО Заявка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПодпискиИТС.Организация, ПодпискиИТС.Контрагент, ПодпискиИТС.ВидПодписки, ПодпискиИТС.ДатаНачала, ПодпискиИТС.ДатаЗавершения, ПодпискиИТС.Телефон, ПодпискиИТС.Адрес, ПодпискиИТС.КонтрагентОсновноеКонтактноеЛицо, ПодпискиИТС.СостояниеЗаявки, ПодпискиИТС.РегистрационныйНомер, ДискиИТС.КоличествоНеОтгруженных, ДискиИТС.ДатаДиска, ПодпискиИТС.ДополнительноеОписание ИЗ ПодпискиИТС КАК ПодпискиИТС ЛЕВОЕ СОЕДИНЕНИЕ ДискиИТС КАК ДискиИТС ПО ПодпискиИТС.Заявка = ДискиИТС.Заявка  | 
|||
| 
    1
    
        reznik911    
     25.06.14 
            ✎
    10:38 
 | 
         
        ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация1.Объект КАК Справочник.Контрагенты)))
 
        И (КонтактнаяИнформация1.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) И (ВЫБОР КОГДА КонтактнаяИнформация1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) ТОГДА КонтактнаяИнформация1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) ИНАЧЕ КонтактнаяИнформация1.Вид.Наименование = "Телефон бух" КОНЕЦ)  | 
|||
| 
    2
    
        acsent    
     25.06.14 
            ✎
    10:42 
 | 
         
        2 соединения с контактной информацией.
 
        Если Заполнен 1 то 1 Если заполнен 2 то 2 иначе 1  | 
|||
| 
    3
    
        reznik911    
     25.06.14 
            ✎
    10:44 
 | 
         
        (2) нет если заполнен 1 то 1, если заполнен 1 и2 то 1, если заполнен только 2 то 2     
         | 
|||
| 
    4
    
        reznik911    
     25.06.14 
            ✎
    10:46 
 | 
         
        (2) если запрос не менять мне о выдает и 1 и 2, хотя стоит условие если заполнен 1 то 1 иначе 2     
         | 
|||
| 
    5
    
        VRednaia    
     25.06.14 
            ✎
    10:49 
 | 
         
        (3) Нет. Если в первом случае проверили что 1 заполнен, то нет смысла проверять заполнен ли 2.     
         | 
|||
| 
    6
    
        VRednaia    
     25.06.14 
            ✎
    10:50 
 | 
         
        (4) Где у тебя в запросе это условие?
 
        см (2): 2(!!) (ДВА) соединения с контактной информацией.  | 
|||
| 
    7
    
        reznik911    
     25.06.14 
            ✎
    10:52 
 | 
         
        (6)в первом то соединении задействован лишь адрес а не телефон     
         | 
|||
| 
    8
    
        acsent    
     25.06.14 
            ✎
    10:52 
 | 
         
        (7) 2 соединения на телефон     
         | 
|||
| 
    9
    
        VRednaia    
     25.06.14 
            ✎
    10:53 
 | 
         
        (7) Еще раз. Тебе нужно сделать два соединения. Одно - для получения телефона контрагента второе для получения телефона бухгалтера. И из них выбирать то, которое тебе нужно.     
         | 
|||
| 
    10
    
        reznik911    
     25.06.14 
            ✎
    10:54 
 | 
         
        (9) а потом куда и как мне это условие реализовать?     
         | 
|||
| 
    11
    
        catena    
     25.06.14 
            ✎
    10:59 
 | 
         
        (10)ЕстьNULL(ТелефонКонтрагента,ТелефонБухгалтера)     
         | 
|||
| 
    12
    
        reznik911    
     25.06.14 
            ✎
    11:00 
 | 
         
        (11) это куда писать?     
         | 
|||
| 
    13
    
        VRednaia    
     25.06.14 
            ✎
    11:02 
 | 
         
        (12) в поле запроса "телефон"     
         | 
|||
| 
    14
    
        reznik911    
     25.06.14 
            ✎
    11:04 
 | 
         
        (13) это же у меня не объекты чтоб перевыбирать это все лишь соединения     
         | 
|||
| 
    15
    
        reznik911    
     25.06.14 
            ✎
    11:04 
 | 
         
        (13) а телефон  КонтактнаяИнформация1.поле3 что то гоните     
         | 
|||
| 
    16
    
        catena    
     25.06.14 
            ✎
    11:09 
 | 
         
        (15)Серьезно?
 
        Выбрать <.......> ЕстьNULL(КонтактнаяИнформация1.поле3,КонтактнаяИнформация2.поле3) из <.......> ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация1 ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация1.Объект КАК Справочник.Контрагенты))) И (КонтактнаяИнформация1.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) И КонтактнаяИнформация1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация2 ПО (ВТ_ИТСПодпискиСрезПоследних.Контрагент = (ВЫРАЗИТЬ(КонтактнаяИнформация2.Объект КАК Справочник.Контрагенты))) И (КонтактнаяИнформация2.Вид.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) И КонтактнаяИнформация2.Вид.Наименование = "Телефон бух"  | 
|||
| 
    17
    
        VRednaia    
     25.06.14 
            ✎
    11:10 
 | 
         
        почитай книжку 
 
        http://v8.1c.ru/metod/books/book.jsp?id=436  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |