|   |   | 
| 
 | 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) завтра уже, спасибо обязательно напишу     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |