|
1c 8.3 УФ, оптимизация Запроса РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто | ☑ | ||
---|---|---|---|---|
0
Geroy
13.07.16
✎
13:41
|
Пробую по разному, все равно максимум пару мили секунд удается ускорить
Может ткнете как по другому сделать "ВЫБРАТЬ | Хозрасчетный.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ_Счета |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | (Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) | ИЛИ Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОНЕЦ КАК Движение, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОНЕЦ КАК Справочник.Номенклатура) КАК Номенклатура, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОНЕЦ КАК Справочник.Склады) КАК Склад, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.КоличествоДт | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Количество, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаСНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаБезНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК НДС, | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Содержание КАК СТРОКА(200)) КАК Содержание, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СчетДт | КОНЕЦ КАК Счет |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНачало, &ДатаОкончания, ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.ПеремещениеТоваров), , ) КАК ХозрасчетныйДвиженияССубконто |ГДЕ | (ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета)) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период, | ХозрасчетныйДвиженияССубконто.Регистратор, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК Справочник.Склады), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Сумма * -1 КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ((ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Содержание КАК СТРОКА(200)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СчетКт КАК ПланСчетов.Хозрасчетный) |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( | &ДатаНачало, | &ДатаОкончания, | ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ПеремещениеТоваров), | СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета), | ) КАК ХозрасчетныйДвиженияССубконто | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период, | ХозрасчетныйДвиженияССубконто.Регистратор, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Справочник.Номенклатура), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК Справочник.Склады), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.КоличествоДт КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Сумма * 1.18 КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Сумма КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Содержание КАК СТРОКА(200)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СчетДт КАК ПланСчетов.Хозрасчетный) |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( | &ДатаНачало, | &ДатаОкончания, | ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ПеремещениеТоваров), | СчетДт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета), | ) КАК ХозрасчетныйДвиженияССубконто" |
|||
1
Nuobu
13.07.16
✎
13:49
|
Не использовать "ИЛИ", "В". Только "Объединить Все" и динамическое создание запроса.
|
|||
2
Geroy
13.07.16
✎
13:57
|
(1) а какая разница ведь количество запросов увеличится
или конкретные условия быстрее отрабатываться и затем Объеденит Все? |
|||
3
Nuobu
13.07.16
✎
14:12
|
Да.
|
|||
4
hhhh
13.07.16
✎
14:15
|
(2) там главное попасть в индекс. Тогда быстро будет. А применение ИЛИ - это автоматический вылет из индекса. Как оказалось.
|
|||
5
H A D G E H O G s
13.07.16
✎
14:18
|
(4) Как оказалось - нет. "Специалисты" лезут на свет.
|
|||
6
Geroy
13.07.16
✎
14:18
|
(4) буду знать
попробую еще индексировать |
|||
7
Nuobu
13.07.16
✎
14:19
|
(5) Поясни, пожалуйста, про индекс и про "ИЛИ", "В". У меня спеца по платформе нету, поэтому не понимаю. То, что написал в (1) - это из опыта и статей в нете.
|
|||
8
H A D G E H O G s
13.07.16
✎
14:20
|
ИЛИ - это вылет из индекса при поиске по 2-м разным полям.
Если поле одно - вылета из индекса не будет. |
|||
9
H A D G E H O G s
13.07.16
✎
14:21
|
ГДЕ
| (Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) | ИЛИ Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)) нормально отработает по индексу, так как поле "Родитель" в условии - одно. |
|||
10
Nuobu
13.07.16
✎
14:21
|
(8) (ХозрасчетныйДвиженияССубконто.СчетКт В
| (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета)) | (9) Тут и таблица маленькая. |
|||
11
H A D G E H O G s
13.07.16
✎
14:21
|
Точно также при В(&СписокЗначений)
|
|||
12
H A D G E H O G s
13.07.16
✎
14:22
|
(10) Моя первичная отсылка в утверждению в (4).
|
|||
13
Nuobu
13.07.16
✎
14:24
|
(10) Ты знаешь, мне мой опыт подсказывает другое. Я, когда менял "ИЛИ" на "Объединить все", то запрос работал быстрей. Хотя поле было одно и то же. Никаких замеров я не делал, но разница на 20К записей в таблице была внушительной - где-то минута и полсекунды.
|
|||
14
hhhh
13.07.16
✎
14:34
|
у автора тут 2 разных поля
|
|||
15
Nuobu
13.07.16
✎
14:36
|
(14) В последних двух запросах одно поле.
|
|||
16
hhhh
13.07.16
✎
15:26
|
(15) вот это? ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ПеремещениеТоваров) ?? попадет в индекс?
|
|||
17
Nuobu
13.07.16
✎
15:31
|
(16) Это ты у хандехоха спроси.
|
|||
18
Geroy
13.07.16
✎
16:21
|
(16) тоже интересно
|
|||
19
Geroy
13.07.16
✎
16:44
|
1. Запрос "Кривой" выполнился быстрее в 2 раза чем второй
Первый "Кривой" |ВЫБРАТЬ | Хозрасчетный.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ_Счета |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | (Хозрасчетный.Родитель.КодБыстрогоВыбора = ""41"" | ИЛИ Хозрасчетный.Родитель.КодБыстрогоВыбора = ""10"") |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОНЕЦ КАК Движение, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОНЕЦ КАК Номенклатура, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт2 | КОНЕЦ КАК ДокументПоступления, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОНЕЦ КАК Склад, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.КоличествоДт | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Количество, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаСНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаБезНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК НДС, | ХозрасчетныйДвиженияССубконто.Содержание КАК Содержание, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СчетДт | КОНЕЦ КАК Счет |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНачало, &ДатаОкончания, ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.ПеремещениеТоваров), , ) КАК ХозрасчетныйДвиженияССубконто |ГДЕ | (ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета))" Второй "Почти правильный" |ВЫБРАТЬ | Хозрасчетный.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ_Счета |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Хозрасчетный.Ссылка |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы) | |ИНДЕКСИРОВАТЬ ПО | Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОНЕЦ КАК Движение, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОНЕЦ КАК Справочник.Номенклатура) КАК Номенклатура, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОНЕЦ КАК Справочник.Склады) КАК Склад, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.КоличествоДт | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Количество, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаСНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаБезНДС, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК НДС, | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Содержание КАК СТРОКА(200)) КАК Содержание, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СчетДт | КОНЕЦ КАК Счет |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНачало, &ДатаОкончания, ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.ПеремещениеТоваров), , ) КАК ХозрасчетныйДвиженияССубконто |ГДЕ | ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период, | ХозрасчетныйДвиженияССубконто.Регистратор, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | КОНЕЦ, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОНЕЦ КАК Справочник.Номенклатура), | ВЫРАЗИТЬ(ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОНЕЦ КАК Справочник.Склады), | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.КоличествоКт * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.КоличествоДт | КОНЕЦ КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * 1.18 * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 | КОНЕЦ КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.Сумма * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА (ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма) * -1 | ИНАЧЕ ХозрасчетныйДвиженияССубконто.Сумма * 1.18 - ХозрасчетныйДвиженияССубконто.Сумма | КОНЕЦ КАК ЧИСЛО(15, 2)), | ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Содержание КАК СТРОКА(200)), | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВозвратТоваровОтПокупателя) | И ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | КОГДА ХозрасчетныйДвиженияССубконто.СчетКт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета) | ТОГДА ХозрасчетныйДвиженияССубконто.СчетКт | ИНАЧЕ ХозрасчетныйДвиженияССубконто.СчетДт | КОНЕЦ |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНачало, &ДатаОкончания, ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.ПеремещениеТоваров), , ) КАК ХозрасчетныйДвиженияССубконто |ГДЕ | ХозрасчетныйДвиженияССубконто.СчетДт В | (ВЫБРАТЬ | ВТ_Счета.Ссылка | ИЗ | ВТ_Счета)" |
|||
20
Geroy
13.07.16
✎
16:47
|
Попробую избавиться от "В"
|
|||
21
H A D G E H O G s
13.07.16
✎
16:49
|
А сколько он вообще выполняется? по времени?
|
|||
22
H A D G E H O G s
13.07.16
✎
16:53
|
Просто выборка ВСЕХ движений по 41 и 10 счету - это довольно нехилая заявка на тормоза.
|
|||
23
Geroy
14.07.16
✎
00:12
|
(22) Период 10 дней 4191 строка
1. "Кривой" 42 секунды (По Консоли запросов Время выполнения 11.14 с) 2. "Второй" 1м 32с секунды (По Консоли запросов Время выполнения 22,016 С ) |
|||
24
H A D G E H O G s
14.07.16
✎
00:16
|
(23) Всего строк - сколько?
|
|||
25
H A D G E H O G s
14.07.16
✎
00:16
|
ms sql?
|
|||
26
Geroy
14.07.16
✎
00:18
|
(25) MSSQL 2014, всего обрабатывается 4191 строка за выбранный период
|
|||
27
Geroy
14.07.16
✎
00:19
|
(25) я пока убрал 2 и 3 под запрос ( которые только перемещения)
|
|||
28
H A D G E H O G s
14.07.16
✎
00:20
|
(27) Я могу подключиться, глянуть, стучись в icq 374881272
|
|||
29
Geroy
14.07.16
✎
00:23
|
(28) завтра уже, спасибо обязательно напишу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |