|
определение колонки для выборки в запросе | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
28.01.16
✎
16:06
|
может ошибаюсь, но мне кажется где-то видел подобное (найти не могу( )
суть такова: можно ли определить название реквизита для выборки из результатов самого запроса. что-то вроде Выбрать Справочник.Поле поместить Таблица ИЗ справочник КАК Справочник выбрать Справ2.[Поле] понимаю что чушь написал, но надеюсь смысл удалось донести |
|||
1
butterbean
28.01.16
✎
16:07
|
можно программно менять текст запроса
|
|||
2
Игорь_МММ
28.01.16
✎
16:27
|
(1) а как это делается?
|
|||
3
salvator
28.01.16
✎
16:33
|
(2) СтрЗаменить(ТекстЗапроса,"ЧтоМенять","НаЧтоМенять")
|
|||
4
Игорь_МММ
28.01.16
✎
16:37
|
(3) не, надо же походу запроса..
то есть пока нет первой выборки - еще не понятно что выбирать во второй |
|||
5
salvator
28.01.16
✎
16:38
|
(4) Ну так перед выполнением запроса поменяй имя поля на нужное, в чем проблема?
|
|||
6
Nuobu
28.01.16
✎
16:39
|
(4) Может, тебе это нужно: ЕстьNull(Справочники.Поле1, Справочники.Поле2)
|
|||
7
Игорь_МММ
28.01.16
✎
16:46
|
да нет, мутно объяснил ..
может так: Выбрать Справочник.Поле поместить Таблица ИЗ справочник КАК Справочник выбрать Справ2.[Таблица.Поле] из справ2 КАК Справ2 левое соединение Таблица ПО .... то есть Справочник.Поле в виде строки - это как раз наименование реквизита справ2, откуда надо выбирать |
|||
8
Одинесю
28.01.16
✎
16:48
|
(7) Так, а что сразу левым соединением не сделать?
|
|||
9
nesmen
28.01.16
✎
16:49
|
(7) СтрЗаменить написали же и менять текст по ходу самому.
ты формируешь текст зароса у него тип строка, как из него можно что то вытянуть до выполенния? |
|||
10
Игорь_МММ
28.01.16
✎
17:01
|
собственно вот текст:
Запрос.Текст = "ВЫБРАТЬ | Полуфабрикаты.Ссылка, | Полуфабрикаты.ГП, | ПолуфабрикатыПозиции.Позиция, | ПолуфабрикатыСделОпер.ИмяСделОпер, | СдельныеОперации.ВидОперации, | СдельныеОперации.ПараметрОбъема, | СдельныеОперацииПараметрыРазличия.Параметр |ПОМЕСТИТЬ Полуфабрикат |ИЗ | Справочник.Полуфабрикаты КАК Полуфабрикаты | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Полуфабрикаты.Позиции КАК ПолуфабрикатыПозиции | ПО Полуфабрикаты.Ссылка = ПолуфабрикатыПозиции.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Полуфабрикаты.СделОпер КАК ПолуфабрикатыСделОпер | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СдельныеОперации КАК СдельныеОперации | ПО ПолуфабрикатыСделОпер.ИмяСделОпер = СдельныеОперации.Ссылка | ПО ПолуфабрикатыСделОпер.Ссылка = Полуфабрикаты.Ссылка, | Справочник.СдельныеОперации.ПараметрыРазличия КАК СдельныеОперацииПараметрыРазличия |ГДЕ | Полуфабрикаты.Ссылка = &Полуфабрикат |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Спецификации.Ссылка, | СпецификацииОперацииСПанелью.Позиция, | СпецификацииОперацииСПанелью.Наименование, | СпецификацииОперацииСПанелью.Длина, | СпецификацииОперацииСПанелью.Ширина, | СпецификацииОперацииСПанелью.Толщина, | СпецификацииОперацииСПанелью.ТолщинаКромки, | СпецификацииОперацииСПанелью.ДлинаКромки, | СпецификацииОперацииСПанелью.ДиаметрОтверстия, | СпецификацииОперацииСПанелью.ГлубинаОтверстия, | СпецификацииОперацииСПанелью.Количество, | СпецификацииОперацииСПанелью.ПериметрПанели, | СпецификацииОперацииСПанелью.ПлощадьПанели, | СпецификацииОперацииСПанелью.КоличествоОпераций |ИЗ | Справочник.Спецификации КАК Спецификации | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Спецификации.ОперацииСПанелью КАК СпецификацииОперацииСПанелью | ПО (СпецификацииОперацииСПанелью.Ссылка = Спецификации.Ссылка) |ГДЕ | Спецификации.Ссылка = &Спецификация"; Далее Полуфабрикат и Спецификации будут соединяться по Спец.Ссылка = Полуфабрикат.ГП Полуфабрикат.Параметр - это название параметра (тип Перечисление), значение этого параметра содержится в спецификации в соответствующей колонке. Связь между ними только такая : строка(Параметр) = название этой колонки. Вот как выудить значение Параметра? |
|||
11
nesmen
28.01.16
✎
17:27
|
зачем? (10)
|
|||
12
Игорь_МММ
28.01.16
✎
17:31
|
(11) что найти значение параметра - оно содержится именно там
|
|||
13
nesmen
28.01.16
✎
17:46
|
и что дальше с ним делать будешь?
|
|||
14
Игорь_МММ
28.01.16
✎
17:51
|
(13) дальше буду сравнивать с допустимыми значениями - это опять же будет браться из другого справочника и соединяться по Параметру.
|
|||
15
nesmen
28.01.16
✎
17:58
|
(14)
ГДЕ Таблица.Реквизит = Значение(Перечсление.тип.Тип1) так в запросе нельзя сделать |
|||
16
nesmen
28.01.16
✎
18:01
|
ГДЕ Таблица.Реквизит В(ВЫБРАТЬ
ABCКлассификация.Ссылка, ABCКлассификация.Порядок ИЗ Перечисление.ABCКлассификация КАК ABCКлассификация) |
|||
17
nesmen
28.01.16
✎
18:01
|
или так
|
|||
18
Игорь_МММ
28.01.16
✎
19:23
|
ничего лучше не придумал:
ВЫБРАТЬ Полуфабрикат.Ссылка, Полуфабрикат.ГП, Полуфабрикат.Позиция, Полуфабрикат.ИмяСделОпер, Полуфабрикат.ВидОперации, Полуфабрикат.ПараметрОбъема, Полуфабрикат.Параметр, ВЫБОР КОГДА Полуфабрикат.Параметр = &ДлинаКромки ТОГДА Спецификации.ДлинаКромки ИНАЧЕ ВЫБОР КОГДА Полуфабрикат.Параметр = &ТолщинаКромки ТОГДА Спецификации.ТолщинаКромки ИНАЧЕ ВЫБОР КОГДА Полуфабрикат.Параметр = &ДиаметрОтверстия ТОГДА Спецификации.ДиаметрОтверстия ИНАЧЕ 0 КОНЕЦ КОНЕЦ КОНЕЦ КАК ЗначениеПареметра если есть идеи - подскажите |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |