|
256 таблиц, 2 примера с "выразить", какой правильнее? | ☑ | ||
---|---|---|---|---|
0
Ns33
10.12.14
✎
18:17
|
Набросал 2 примера использования ВЫРАЗИТЬ (по итогам поиска по форуму с проблемой 256 таблиц). Какой правильнее?
1) ВЫБРАТЬ ПартииТоваровНаСкладахОбороты.Регистратор, ВЫБОР КОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.ПоступлениеТоваровУслуг) ССЫЛКА Документ.ПоступлениеТоваровУслуг ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.ПоступлениеТоваровУслуг).Контрагент КОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.РеализацияТоваровУслуг) ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.РеализацияТоваровУслуг).Контрагент ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК Поле1, ПартииТоваровНаСкладахОбороты.КоличествоОборот ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&Дата1, &Дата2, Регистратор, ) КАК ПартииТоваровНаСкладахОбороты 2) ВЫБРАТЬ ПартииТоваровНаСкладахОбороты.Регистратор, ВЫБОР КОГДА ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.ПоступлениеТоваровУслуг).Контрагент КОГДА ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ.РеализацияТоваровУслуг).Контрагент ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК Поле1, ПартииТоваровНаСкладахОбороты.КоличествоОборот ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&Дата1, &Дата2, Регистратор, ) КАК ПартииТоваровНаСкладахОбороты |
|||
1
Господин ПЖ
10.12.14
✎
18:19
|
эм... а скуль обновить - никак?
|
|||
2
Господин ПЖ
10.12.14
✎
18:20
|
зы в регистраторах ПартииТоваровНаСкладах 256 таблиц разве наберется?
|
|||
3
DirecTwiX
10.12.14
✎
18:20
|
Первый упадёт, второй взлетит
|
|||
4
vicof
10.12.14
✎
18:23
|
(0) И шо таки значит пгавильнее?
|
|||
5
Ns33
10.12.14
✎
18:25
|
(2) Это просто для примера, реальный запрос другой. В реальном запросе много мест, где надо оптимизировать, поэтому мне желательно знать какой вариант, чтобы не переделывать.
(3) Оба вышеуказанных запроса работают. |
|||
6
Господин ПЖ
10.12.14
✎
18:28
|
(5) тут только вскрытие покажет - смотреть что на скуль приходит
|
|||
7
Fragster
гуру
10.12.14
✎
18:28
|
если они отличаются только Выразить в куске "когда" то вариант 2 правильнее. первый вариант возвращает лажу
|
|||
8
DirecTwiX
10.12.14
✎
18:32
|
(5) Уверен?
У меня на подобном запросе вылезает несоответствие типов
|
|||
9
DirecTwiX
10.12.14
✎
18:33
|
Точнее, "Несовместимые типы ВЫРАЗИТЬ ..."
А такой работает
|
|||
10
Господин ПЖ
10.12.14
✎
18:34
|
(8) работать не будет - это и так понятно
|
|||
11
DirecTwiX
10.12.14
✎
18:39
|
Вот ещё:
http://zapros-1c-8.ru/interest/11-express >Регистратор у регистров часто имеет составной тип, чтобы преобразовать его к одиночному типу используйте конструкцию ВЫРАЗИТЬ правда если на этапе выборки вы попытаетесь преобразовать документ реализацию в документ поступление, то запрос обязательно вылетит с ошибкой, поэтому перед преобразованием следует проверить тип ссылки. |
|||
12
DirecTwiX
10.12.14
✎
18:41
|
Да и выражать одно поле по несколько раз не очень оптимально.
|
|||
13
Ns33
10.12.14
✎
18:52
|
Поставил себе SQL EXPRESS, сделал в тестовой базе 300 видов документов, у одного вида реквизит контрагент. Сделал регистр сведений с измерением типа документ.ссылка. И запрос к этому измерению вида РегистрСведений.Документ.Контрагент нормально отрабатывает, вот печаль.
|
|||
14
Йохохо
10.12.14
✎
19:32
|
(13) здиш
|
|||
15
vvp91
10.12.14
✎
23:09
|
> (0) Какой правильнее?
Правильнее так: ВЫБРАТЬ Партии.Регистратор, ЕСТЬNULL(Поступления.Контрагент, ЕСТЬNULL(Реализации.Контрагент, НЕОПРЕДЕЛЕНО)) КАК Контрагент, Партии.КоличествоОборот ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&Дата1, &Дата2, Регистратор, ) КАК Партии ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК Поступления ПО Поступления.Ссылка = Партии.Регистратор ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализации ПО Реализации.Ссылка = Партии.Регистратор |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |