Имя: Пароль:
1C
1С v8
Условие и выбор в запросе [Добавить в закладки] #1 (permalink)
0 S89K
 
23.09.14
11:17
Добрый день. Есть у меня такой работающий запрос:

Запрос.Текст =  "ВЫБРАТЬ
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.Узел КАК Узел,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.Деталь КАК Деталь,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.Материал КАК Материал,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования КАК ПротХим,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования2 КАК ПротМех,
                    |   ТабХим.C,
                    |   ТабХим.Mn,
                    |   ТабХим.Si,
                    |   ТабХим.S,
                    |   ТабХим.P,
                    |   ТабХим.Cr,
                    |   ТабХим.Ni,
                    |   ТабХим.Ti,
                    |   ТабХим.Mo,
                    |   ТабХим.Al,
                    |   ТабХим.W,
                    |   ТабХим.V,
                    |   ТабХим.Nb,
                    |   ТабХим.Cu,
                    |   ТабМех.ТипОбразца,
                    |   ТабМех.ПределТекучести,
                    |   ТабМех.ВрСопр,
                    |   ТабМех.Удл,
                    |   ТабМех.Суж,
                    |   ТабМех.НомерПлавки,
                    |   ТабМех.НомерПартии,
                    |   ТабМех.Темп,
                    |   ТабМех.Дата,
                    |   ТабМех.Номер,
                    |   ТабМех.ПослеМехСтар,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.ГОСТДетали КАК ГОСТДетали,
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.ДопДанные КАК ДопДанные,
                    |   ТабМех.ТемператураKCU КАК Т
                    |ИЗ
                    |   Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235 КАК ДХМ_ПаспортИзделияТабличнаяЧасть235
                    |       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    |           ДХМ_ПротоколИсследованияХимическийСостав.C КАК C,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Mn КАК Mn,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Si КАК Si,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.S КАК S,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.P КАК P,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Cr КАК Cr,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ni КАК Ni,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ti КАК Ti,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Mo КАК Mo,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Al КАК Al,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.W КАК W,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.V КАК V,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Nb КАК Nb,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Cu КАК Cu,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ссылка.Номер КАК Номер,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.НомерСтроки КАК НомерСтроки
                    |       ИЗ
                    |           Документ.ДХМ_ПротоколИсследования.ХимическийСостав КАК ДХМ_ПротоколИсследованияХимическийСостав
                    |      
                    |       СГРУППИРОВАТЬ ПО
                    |           ДХМ_ПротоколИсследованияХимическийСостав.C,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Mn,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Si,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.S,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.P,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Cr,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ni,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ti,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Mo,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Al,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.W,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.V,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Nb,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Ссылка.Номер,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.Cu,
                    |           ДХМ_ПротоколИсследованияХимическийСостав.НомерСтроки) КАК ТабХим
                    |       ПО (ТабХим.Номер = ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования.Номер)
                    |       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    |           ДХМ_ПротоколИсследованияМехИспытание.ТипОбразца КАК ТипОбразца,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ПределТекучести КАК ПределТекучести,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ВременноеСопротивление КАК ВрСопр,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеУдлинение КАК Удл,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеСужение КАК Суж,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Номер КАК Номер,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПлавки КАК НомерПлавки,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПартии КАК НомерПартии,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.ТемпературныйРежим КАК Темп,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Дата КАК Дата,
                    |           ДХМ_ПротоколИсследованияМехИспытание.KCUПослеМехСтр КАК ПослеМехСтар,
                    |           ДХМ_ПротоколИсследованияМехИспытание.НомерСтроки КАК НомерСтроки,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ТемператураKCU КАК ТемператураKCU
                    |       ИЗ
                    |            Документ.ДХМ_ПротоколИсследования.МехИспытание КАК ДХМ_ПротоколИсследованияМехИспытание
                    |                                  
                    |       СГРУППИРОВАТЬ ПО
                    |           ДХМ_ПротоколИсследованияМехИспытание.ТипОбразца,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ПределТекучести,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеУдлинение,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеСужение,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ВременноеСопротивление,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Номер,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПлавки,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПартии,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.ТемпературныйРежим,
                    |           ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Дата,
                    |           ДХМ_ПротоколИсследованияМехИспытание.KCUПослеМехСтр,
                    |           ДХМ_ПротоколИсследованияМехИспытание.НомерСтроки,
                    |           ДХМ_ПротоколИсследованияМехИспытание.ТемператураKCU) КАК ТабМех
                    |       ПО (ТабМех.Номер = ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования2.Номер)
                    |ГДЕ
                    |   ДХМ_ПаспортИзделияТабличнаяЧасть235.Ссылка.Номер = &Ссылка
                    |
                    |УПОРЯДОЧИТЬ ПО
                    |   Деталь
                    |АВТОУПОРЯДОЧИВАНИЕ";

Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Номер);


В док "Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235" есть поле "ПротоколИсследования2" типа "Документ.ДХМ_ПротоколИсследование". Запрос выбирал данные из табличной части Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235 + из того документа который указ в поле ПротоколИсследования2. однако теперь требование изминилось. Поле "ПротоколИсследования2" стало типа "ДокументСсылка" т.к оно может быть или "Документ.ДХМ_ПротоколИсследование" или "Документ.ДХМ_ВходнойСертификат". Нужно задать условие что если в поле ПротоколИсследования2 выбран док ПротоколИсследование то данные выбираются из табличной часть док ПротоколИсследование, а если выбран Документ.ДХМ_ВходнойСертификат - то соотвественно из его табличной части. Подскажите как можно такое условие задать?
1 Ёпрст
 
23.09.14
11:25
(0) не надо там никакого условия, достаточно юнион сделать из двух документов по условию ПротоколИсследования2
2 Ёпрст
 
23.09.14
11:26
ну и это, нафига вы группируете табличные части документов в подзапросе, если это бессмысленно, при условии в селекте НомерСтроки ?
3 S89K
 
23.09.14
11:27
а можно пример этого "юнион"? а то без понятия что это
4 Ёпрст
 
23.09.14
11:28
Ну и это, перебирать все документы(и их табличные части) за весь период ведения базы, как-то не комильфо
5 Ёпрст
 
23.09.14
11:28
(3) два запроса + Объединить все между ними
AdBlock убивает бесплатный контент. 1Сергей