|
Запрос вешает базу | ☑ | ||
---|---|---|---|---|
0
Lepochkin
18.10.13
✎
11:59
|
Вот запрос
ВЫБРАТЬ РасчетСУчетомВозвратов.Ссылка КАК ДокументПродажи, РасчетСУчетомВозвратов.Номенклатура КАК Номенклатура, СУММА(РасчетСУчетомВозвратов.Количество) КАК Количество, СУММА(РасчетСУчетомВозвратов.Сумма) КАК Сумма ПОМЕСТИТЬ РасчетСУчетомВозвратов ИЗ (ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Количество КАК Количество, РеализацияТоваровУслугТовары.Сумма КАК Сумма ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачПериода И &НаДату И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.ДокументПартии, ВозвратТоваровОтПокупателяТовары.Номенклатура, -1 * ВозвратТоваровОтПокупателяТовары.Количество, -1 * ВозвратТоваровОтПокупателяТовары.Сумма ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка.Дата МЕЖДУ &НачПериода И &НаДату И ВозвратТоваровОтПокупателяТовары.Ссылка.Проведен = ИСТИНА) КАК РасчетСУчетомВозвратов СГРУППИРОВАТЬ ПО РасчетСУчетомВозвратов.Ссылка, РасчетСУчетомВозвратов.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВзаиморасчетыСКонтрагентами.Регистратор, ВзаиморасчетыСКонтрагентами.Контрагент, СУММА(ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов, СУММА(ВзаиморасчетыСКонтрагентами.СуммаУпр) КАК СуммаУпр ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами ГДЕ ВзаиморасчетыСКонтрагентами.Регистратор В (ВЫБРАТЬ РасчетСУчетомВозвратов.ДокументПродажи ИЗ РасчетСУчетомВозвратов КАК РасчетСУчетомВозвратов) СГРУППИРОВАТЬ ПО ВзаиморасчетыСКонтрагентами.Регистратор, ВзаиморасчетыСКонтрагентами.Контрагент После перехода с 8.1 на 8.2 стал вешать базу наглухо. В чем может быть причина. Сразу скажу что это часть одного большого запроса, но вешает именно она |
|||
1
mzelensky
18.10.13
✎
12:00
|
(0) Убейся. Что за запрос вообще?
|
|||
2
mzelensky
18.10.13
✎
12:01
|
(0) ты про виртуальные таблицы вообще что-нибудь слышал?
|
|||
3
Lepochkin
18.10.13
✎
12:02
|
В изначальном варианте запрос делается не к регистру сведений ВзаиморасчетыСКонтрагентами, а к не типовому. Проверил типовой регистр (чисто ради теста) эффект получил такой же.
|
|||
4
Холодильник
18.10.13
✎
12:03
|
жесть полная, а не запрос
его можно(и нужно!) сократить раза в 3 |
|||
5
Maxus43
18.10.13
✎
12:03
|
(1) нехорошо ругаться в сей прекрасный день
(3) ну просто кривой запрос, переписать надо бы |
|||
6
mzelensky
18.10.13
✎
12:05
|
(3) а чем методология работы с типовым регистром отличается от нетипового ?
|
|||
7
mzelensky
18.10.13
✎
12:06
|
(5) ну, день, если честно, как-то не очень :(
|
|||
8
Lepochkin
18.10.13
✎
12:06
|
Поконкретнее можно? Что не нравится, кроме того, что логике в нем и сразу можно все получить из ВзаиморасчетыСКонтрагентами. Я получаю сначала документы за период пихаю их во временную таблицу и потом из другого регистра выбираю все записи, где регистратор в той временной таблице. И на этом 1ска встает колом.
|
|||
9
shuhard
18.10.13
✎
12:07
|
(8) а размер ВТ ты себе представляешь ?
|
|||
10
mzelensky
18.10.13
✎
12:08
|
(8) вот .о чем я и говорил. Ты не понимаешь что такое "виртуальная таблица" и что с ними делать нужно
|
|||
11
Sabbath
18.10.13
✎
12:08
|
(0)
1. Используй виртуальные таблицы с отбором по параметрам, а не с условиями ГДЕ 2. Не юзай почем зря разыменование через точку, ибо в этом случае идет соединение с другой таблицей, соответствующей типу разыменованного поля. |
|||
12
Maxus43
18.10.13
✎
12:09
|
(8) соединение делай к регистру по регистратору, используй табоицу оборотов регистра (ограниченная по датам),
индексируй поле в Вт и ещё куча куча нормальных приёмов для написания запроса который будет радовать глаз и душу. А этот вызывает отвращение и пичаль |
|||
13
mzelensky
18.10.13
✎
12:10
|
(12) ты прям сегодня такой вежливый. Еще чуть-чуть и на исконно руско-дворянском заговоришь, да еще в стиках :)
|
|||
14
Sorm
18.10.13
✎
12:11
|
(0) "СГРУППИРОВАТЬ ПО
РасчетСУчетомВозвратов.Ссылка, РасчетСУчетомВозвратов.Номенклатура" Че тут думать, трясти надо.. Вот первый и главный тормоз. Зачем тебе объединение с группировкой, неужели нельзя сделать соединение? |
|||
15
Ненавижу 1С
гуру
18.10.13
✎
12:13
|
я тут почему-то вижу изобретение регистра Продажи
|
|||
16
User_Agronom
18.10.13
✎
12:14
|
Собственно, ТС нужно читать много специализированной литературы. Я бы порекомендовал разобраться с фразами в постах (2) (4) (6) (12).
|
|||
17
Sabbath
18.10.13
✎
12:22
|
(13) русско-дворянский - это французский
|
|||
18
Maxus43
18.10.13
✎
12:23
|
(17) Aujourd'hui un beau temps, messieurs
|
|||
19
mzelensky
18.10.13
✎
12:27
|
(18) Силен, ничего не скажешь.
Поди у вас и десяточек-другой крепостных, в закромах, имеется?! |
|||
20
Sammo
18.10.13
✎
12:28
|
ВзаиморасчетыСКонтрагентами.Регистратор Ссылка...
|
|||
21
Sammo
18.10.13
✎
12:30
|
+20 не прав. Пятница.
Соединение вместо В. Регистратор, поди составного типа и в резултате поулчаешь неявный join с табличами всех документов, которые входят в тип. |
|||
22
ptiz
18.10.13
✎
12:31
|
попробуй добавить РАЗЛИЧНЫЕ
Регистратор В (ВЫБРАТЬ РАЗЛИЧНЫЕ РасчетСУчетомВозвратов.ДокументПродажи ИЗ РасчетСУчетомВозвратов КАК РасчетСУчетомВозвратов) |
|||
23
Maxus43
18.10.13
✎
12:32
|
тогда уж
(Регистратор, Истина) В (ВЫБРАТЬ РасчетСУчетомВозвратов.ДокументПродажи, Истина ИЗ РасчетСУчетомВозвратов КАК РасчетСУчетомВозвратов) |
|||
24
Maxus43
18.10.13
✎
12:33
|
короче - соединения наше всё, в данном случае
|
|||
25
Sammo
18.10.13
✎
12:39
|
(23) Я правильно помню, что подобное используется для того, чтобы в скуле было не in(), а exist() ?
|
|||
26
Fragster
модератор
18.10.13
✎
12:43
|
(23) я смотрю, тебе таки понравилась эа магия :)
|
|||
27
Fragster
модератор
18.10.13
✎
12:43
|
на самом деле просто в первом запросе добавить индекс
|
|||
28
Fragster
модератор
18.10.13
✎
12:44
|
но сам запрос - велосипед.
|
|||
29
america2013
18.10.13
✎
12:54
|
Сам не раз сталкивался с тем, что набросав (в последствии выяснив, что не очень грамотно) запрос в консоли, база уходила в глубокий аут(((
(0) Этот запрос действительно выглядит неряшливо (или по крайней мере не оптимизировано). Вполне возможно, что при достаточно больших объемах данных база может висеть, честно отрабатывая. Может быть, если знать точнее задачи, которые должен выполнять запрос, то и строить его надо было бы по другому. Вряд ли архитектура самой базы построена так, что нету там ни регистров с нужными данными, ни возможности установить параметры для виртуальных таблиц. Скорее всего загвоздка именно в незнании технических средств запросов. К слову виртуальная таблица тем и хороша, что позволяет получить сразу нужные данные, а не сначала получить кучу про запас, а потом выбирать что надо. В общем, появление сами документов в запросе уже грозит большой ресурсожерством. |
|||
30
Fragster
модератор
18.10.13
✎
12:56
|
а самый быстрый вариант будет (если есть уверенность, что период движений совпадает с датой документа) - это выбрать все с датами и сделать внутреннее соединение по дате и ссылке
|
|||
31
Lepochkin
18.10.13
✎
13:11
|
С соединением все работает. Интересно почему в 8.1 работало, а в 8.2 перестало...
|
|||
32
america2013
18.10.13
✎
13:13
|
(31) Насколько разный объем данных?
|
|||
33
Lepochkin
18.10.13
✎
13:21
|
та же база.
|
|||
34
Sammo
18.10.13
✎
13:32
|
Статистика съехала, например.
|
|||
35
Lepochkin
18.10.13
✎
13:37
|
да каждое утро на скуле регламенты отрабатывают
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |