#0
by H A D G E H O G s
Ночи доброй. Как говорит мой младший брат про меня: "Брат старый стал - не помнит нихера" © Брат-2 Хочу странного: Выразить(ТоварыНаСкладах.Регистратор как (Документ.ПоступлениеТоваровУслуг, Документ.ВозвраТоваровПокупателем). Как сделать?
#0
by H A D G E H O G s
Ночи доброй. Как говорит мой младший брат про меня: "Брат старый стал - не помнит нихера" © Брат-2 Хочу странного: Выразить(ТоварыНаСкладах.Регистратор как (Документ.ПоступлениеТоваровУслуг, Документ.ВозвраТоваровПокупателем). Как сделать?
#4
by H A D G E H O G s
Тоесть, я точно знаю, что в выборке не будут номера реализаций, отчетов ККМ, и.т.д., чтобы sql по ним не шарился.
#8
by Rie
Так а если тебе нужны только номера - почему не написать ТоварыНаСкладах.Регистратор.Номер
#9
by H A D G E H O G s
Регистратор - составное поле, будет лазать по всем таблицам, если тип не ограничишь.
#10
by alxbzm
ну это для затравки - а потом сие либо во вложенный запрос, либо во временную таблицу и уже оттуда номер не? не то?
#11
by alxbzm
+ ой пардон - как сложно написал... ГДЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
#12
by Inform
Выразить(ТоварыНаСкладах.Регистратор как Документ.ПоступлениеТоваровУслуг) ИЛИ Выразить(ТоварыНаСкладах.Регистратор как Документ.ВозвраТоваровПокупателем) ?
#13
by Inform
вроде как sql все равно клеит со всеми таблицами составного типа, если задано условие по "ССЫЛКА"
#17
by H A D G E H O G s
Вот как то так: ВЫБОР КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваров ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров) КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.КорректировкаЗаписейРегистров) КОНЕЦ
#23
by H A D G E H O G s
Нет, на разовая, объемы данных могут быть большие, все достаточно критично по времени.
#24
by Immortal
конструкция ВЫБОР КОГДА ТОГДА как правило сильно снижает скорость выполнения запроса
#26
by H A D G E H O G s
Проверить 3 поля одной таблицы - это гораздо легче, чем потом Левым соединением по этим полям соединяться к куче других таблиц.
#34
by Asmody
у меня баттхёрт или я чего-то не понимаю: ты фактически написал "если А имеет тип Б, то привести А к типу Б"
#38
by H A D G E H O G s
Да, но не только ПоступлениеТоваров, но и КорректировкаЗаписейРегистра , к примеру.
#42
by Дикообразко
естьnull(ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Номер,ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.КорректировкаЗаписейРегистра ).Номер )
#46
by mirosh
не факт, что оно такого типа. Тут два варианта. 1. Выбрать сначала с одним типом (в разделе ГДЕ слово ССЫЛКА) и объединить с другим типом. 2. Либо проверять сразу в полях через "выбор когда Ссылка тогда выразить"
#55
by Immortal
правда, я не очень понимаю, почему бы просто не выбрать ВЫБРАТЬ Т.Номер ИЗ Документ.ПоступлениеТоваровУслуг КАК Т ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т.Номер ИЗ Документ.Блабла КАК Т, но это видно так надо - из ТоваровНаСкладах?
#61
by mirosh
ключевое слово "если". проще наверно сначала во временную таблицу, там проиндексировать
#62
by Immortal
не тормоза, но ему(движку БД) это тоже надо посчитать два чтения - надо смотреть, что быстрее будет почему к таблицам документов нельзя напрямую обратится? это конечно хорошо..когда темп дб резиновая
#66
by H A D G E H O G s
Потому что она обрежет движения регистра, у которых регистратор не Поступление и не Корректировка
#68
by BOZKURT
При всем уважении как к человеку, НО, как к модеру, некорректно.. Лучше сдай свой пост/должность..
#69
by Дядя Васька
А я и не очень понял... Если использовать приведение типов результат запроса разве как-то изменится? Что ТоварыНаСкладах.Регистратор.Номер что через выразить - количество строк одинаково, а значит через две точки продет как раз по тем ссылкам что есть в результатах запроса ТоварыНаСкладах.Регистратор с выразить или без. Не?
#73
by Дикообразко
без явного указания типа 1с сделает соединения ко всет таблицам типов регистратора
#75
by Armando
Во все не вчитывался. Что в итоге-то? В ИТСах пишут, что надо как . Только если номера нужны, то вот так: ВЫБОР КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваров ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Номер КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.КорректировкаЗаписейРегистров).Номер КОНЕЦ
#77
by H A D G E H O G s
В Итоге - я счаст замеры делаю, запросы SQL смотрю. Но я рад, что не читая ИТС (и как у вас на них время есть?) я пришел к тому же.
#79
by H A D G E H O G s
exec sp_executesql N'SELECT TOP 10 CASE WHEN (T1._RecorderTRef = 0x000001B7) THEN T2._Number WHEN (T1._RecorderTRef = 0x00000154) THEN T3._Number END, T1._Period FROM _AccumRg19347 T1 WITH(NOLOCK) LEFT OUTER JOIN _Document439 T2 WITH(NOLOCK) ON T1._RecorderTRef = AND T1._RecorderRRef = T2._IDRRef LEFT OUTER JOIN _Document340 T3 WITH(NOLOCK) ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef WHERE (T1._RecordKind = @P3)',N' varbinary,@P2 varbinary,@P3 numeric',0x000001B7,0x00000154,0
#82
by H A D G E H O G s
По методу Дикообраза exec sp_executesql N'SELECT TOP 10 ISNULL(CAST(T2._Number AS NCHAR),T3._Number), T1._Period FROM _AccumRg19347 T1 WITH(NOLOCK) LEFT OUTER JOIN _Document439 T2 WITH(NOLOCK) ON T1._RecorderTRef = AND T1._RecorderRRef = T2._IDRRef LEFT OUTER JOIN _Document340 T3 WITH(NOLOCK) ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef WHERE (T1._RecordKind = @P3)',N' varbinary,@P2 varbinary,@P3 numeric',0x000001B7,0x00000154,0
#84
by H A D G E H O G s
Счаст мы им Первые 10 отрежем и посмотрим, как они на 390 тыс. строк запоют.
#94
by Дядя Васька
+ А то чет как-то много всего. Не только соединений, но и WHERE тоже какой-то длиннючий подозрительно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- можно ли в запросе выразить число в строку?
- УТ 10.2.6 "Поступление товаров" по нескольким "Заказам поставщику"
- Привести тип число с помошью ВЫРАЗИТЬ в строку
- Как в инструкции ВЫРАЗИТЬ указать два документа
- Как выразить ссылку в строку в запросе
- СКД Стоимостная оценка склада по нескольким типам цен
- Как выразить дату в запросе 8.1
- Как сделать отбор регистратора в запросе по нескольким видам документов?
- Как в запросе выразить перечисление как строку?
- Выразить в запросе округляет странно...
- "Несовместимые типы выразить в запросе 1с" ошибка в динамическом запросе списка документов
В этой группе 1С
- Помогите разобраться в отличиях плана счетов бухгалтерии бюджетного учреждения 7
- УТ 11 Обрезание базы
- Как удалить Яндекс.Бар ?
- Проведение по партиям УТ 8.2
- КД "Не замещать существующие объекты ..." можно по условию?
- v7: Отбор по виду документа в запросе 7.7 ?
- Существует ли в динамическом списке картинка для группировки???
- Изменение конфигурации не изменяя конфигурацию
- Регистр сведений на форме документа
- Убрать вопрос пользователю про оперативное проведение
- БГУ 8.2 Журнал №4 yt не формируется сальдо и обороты (
- УТ 10.3 Ошибка блокировки
- Венгерская нотация в 1С
- Выгрузка документов из 1с82 и загрузка в 1с77
- ЗУП: индексация ЗП и начисление ЗП у декретниц
- Программирование на Delphi
- v7: Число фильтров субконто превысило допустимое значение!
- Серверная мат. плата Intel Board S5500HCV. Вопрос.
- 1С 8.2 УФ и регистры сведений
- Как восстановить справочник "Номенклатура"?