|
Приоритет выбор записи в запросе | ☑ | ||
---|---|---|---|---|
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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |