Имя: Пароль:
1C
1С v8
Запрос на ОФ выполняется почти сразу, а на УФ пару минут.
0 Alekzander Wolf
 
08.08.18
13:26
Запрос на ОФ  выполняется почти сразу, а на УФ пару минут.  Почему? Предполагаю, что слишком много вложенных запросов, как УФ к этому относиться? Запрос типовой из бух 2.0 "Журнал учета полученных счет-фактур"




ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РеестрСчетовФактур.СчетФактура КАК СчетФактура,
    РеестрСчетовФактур.ДатаРегистрации КАК ДатаРегистрации,
    РеестрСчетовФактур.ДатаВходящегоДокумента,
    РеестрСчетовФактур.НомерВходящегоДокумента,
    РеестрСчетовФактур.СуммаДокумента,
    ВЫБОР КОГДА ЕСТЬNULL(РеестрСчетовФактур.ВалютаДокумента, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) ТОГДА &ВалютаРегламентированногоУчета ИНАЧЕ РеестрСчетовФактур.ВалютаДокумента КОНЕЦ КАК ВалютаДокумента,
    РеестрСчетовФактур.Контрагент,
    ВЫБОР
        КОГДА ПОДСТРОКА(РеестрСчетовФактур.Контрагент.НаименованиеПолное, 1, 250) = ""
            ТОГДА РеестрСчетовФактур.Контрагент.Наименование
        ИНАЧЕ ПОДСТРОКА(РеестрСчетовФактур.Контрагент.НаименованиеПолное, 1, 250)
    КОНЕЦ КАК КонтрагентНаименование,
    РеестрСчетовФактур.ДокументОснование,
    РеестрСчетовФактур.ДокументОснованиеДата,
    РеестрСчетовФактур.ДокументОснованиеНомер,
    РеестрСчетовФактур.ОпределитьПараметрыСчетаФактуры
ИЗ
    (ВЫБРАТЬ
        СчетФактураПолученный.Ссылка КАК СчетФактура,
        СчетФактураПолученный.Ссылка.Дата КАК ДатаРегистрации,
        СчетФактураПолученный.ДокументОснование КАК ДокументОснование,
        ВЫБОР
            КОГДА СчетФактураПолученный.Ссылка.СформированПриВводеНачальныхОстатковНДС
                ТОГДА СчетФактураПолученный.Ссылка.СуммаДокумента
            КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = Значение(Перечисление.ВидСчетаФактурыПолученного.НаАванс)
                ТОГДА СчетФактураПолученный.Ссылка.СуммаДокумента
            ИНАЧЕ СчетФактураПолученный.ДокументОснование.СуммаДокумента
        КОНЕЦ КАК СуммаДокумента,
        СчетФактураПолученный.Ссылка.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
        СчетФактураПолученный.Ссылка.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
        ВЫБОР
            КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = Значение(Перечисление.ВидСчетаФактурыПолученного.НаАванс)
                ТОГДА СчетФактураПолученный.Ссылка.Контрагент
            КОГДА СчетФактураПолученный.ДокументОснование ССЫЛКА Документ.АвансовыйОтчет
                ТОГДА ВложенныйЗапрос.Контрагент
            ИНАЧЕ СчетФактураПолученный.ДокументОснование.Контрагент
        КОНЕЦ КАК Контрагент,
        СчетФактураПолученный.ДокументОснование.ВалютаДокумента КАК ВалютаДокумента,
        ВЫБОР
            КОГДА НЕ СчетФактураПолученный.Ссылка.ВидСчетаФактуры = Значение(Перечисление.ВидСчетаФактурыПолученного.НаАванс) И СчетФактураПолученный.ДокументОснование ССЫЛКА Документ.АвансовыйОтчет
                    ИЛИ СчетФактураПолученный.ДокументОснование ССЫЛКА Документ.ОтчетКомиссионераОПродажах
                ТОГДА ИСТИНА
            КОГДА НЕ СчетФактураПолученный.Ссылка.ВидСчетаФактуры = Значение(Перечисление.ВидСчетаФактурыПолученного.НаАванс) И (СчетФактураПолученный.ДокументОснование.ДоговорКонтрагента.Владелец ЕСТЬ NULL
                    ИЛИ СчетФактураПолученный.ДокументОснование.СуммаДокумента ЕСТЬ NULL)
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК ОпределитьПараметрыСчетаФактуры,
        СчетФактураПолученный.ДокументОснование.Дата КАК ДокументОснованиеДата,
        СчетФактураПолученный.ДокументОснование.Номер КАК ДокументОснованиеНомер
    ИЗ
        Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученный
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
                КонтрагентПоАО.Ссылка КАК АО,
                КонтрагентПоАО.СчетФактура КАК СчетФактура,
                КонтрагентПоАО.Контрагент КАК Контрагент
            ИЗ
                (ВЫБРАТЬ
                    АвансовыйОтчетТовары.СчетФактура КАК СчетФактура,
                    АвансовыйОтчетТовары.Поставщик КАК Контрагент,
                    АвансовыйОтчетТовары.Ссылка КАК Ссылка
                ИЗ
                    Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    АвансовыйОтчетПрочее.СчетФактура,
                    АвансовыйОтчетПрочее.Поставщик,
                    АвансовыйОтчетПрочее.Ссылка
                ИЗ
                    Документ.АвансовыйОтчет.Прочее КАК АвансовыйОтчетПрочее) КАК КонтрагентПоАО) КАК ВложенныйЗапрос
            ПО СчетФактураПолученный.ДокументОснование = ВложенныйЗапрос.АО
                И СчетФактураПолученный.Ссылка = ВложенныйЗапрос.СчетФактура
    ГДЕ
        (НЕ СчетФактураПолученный.Ссылка.ПометкаУдаления)
        И СчетФактураПолученный.Ссылка.Дата >= &НачалоПериода
        И СчетФактураПолученный.Ссылка.Дата <= &КонецПериода
        И СчетФактураПолученный.Ссылка.Организация = &Организация
        И (НЕ СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.Корректировочный))        
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ГТДИмпортТовары.Ссылка,
        ВЫБОР
            КОГДА ГТДИмпортТовары.Ссылка.битДатаЖурнал = &ПустаяДата
                ТОГДА ГТДИмпортТовары.Ссылка.Дата
            ИНАЧЕ ГТДИмпортТовары.Ссылка.битДатаЖурнал
        КОНЕЦ,
        ГТДИмпортТовары.Ссылка,
        СУММА(ГТДИмпортТовары.ФактурнаяСтоимость),
        NULL,
        ГТДИмпортТовары.Ссылка.НомерГТД,
        ГТДИмпортТовары.Ссылка.Контрагент,
        ГТДИмпортТовары.Ссылка.ВалютаДокумента,
        ЛОЖЬ,
        ГТДИмпортТовары.Ссылка.Дата,
        ГТДИмпортТовары.Ссылка.Номер
    ИЗ
        Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары
    ГДЕ
        (НЕ ГТДИмпортТовары.Ссылка.ПометкаУдаления)
        И ГТДИмпортТовары.Ссылка.Дата >= &НачалоПериода
        И ГТДИмпортТовары.Ссылка.Дата <= &КонецПериода
        И ГТДИмпортТовары.Ссылка.Организация = &Организация
    
    СГРУППИРОВАТЬ ПО
        ГТДИмпортТовары.Ссылка,
        ГТДИмпортТовары.Ссылка.Дата,
        ГТДИмпортТовары.Ссылка.НомерГТД,
        ГТДИмпортТовары.Ссылка.Контрагент,
        ГТДИмпортТовары.Ссылка.Номер,
        ГТДИмпортТовары.Ссылка,
        ГТДИмпортТовары.Ссылка.Дата) КАК РеестрСчетовФактур
ГДЕ
    ВЫБОР
            КОГДА &ОтбиратьПоКонтрагенту
                ТОГДА РеестрСчетовФактур.Контрагент В ИЕРАРХИИ (&КонтрагентДляОтбора)
            ИНАЧЕ ИСТИНА
        КОНЕЦ

УПОРЯДОЧИТЬ ПО
    ДатаРегистрации,
    ДатаВходящегоДокумента
ИТОГИ
    СУММА(СуммаДокумента),
    МАКСИМУМ(ОпределитьПараметрыСчетаФактуры)
ПО    СчетФактура
1 Галахад
 
гуру
08.08.18
13:33
Запросу пофигу ОФ или УФ.
2 Buster007
 
08.08.18
13:44
как замерил?
3 Alekzander Wolf
 
08.08.18
13:44
(2) Тут даже замерять не требуется, на ОФ сразу выполняется, на УФ полминуты - минута
4 Buster007
 
08.08.18
13:45
(3) ясно
5 Alekzander Wolf
 
08.08.18
13:46
в консоле смотрю, текст запроса просто копирую из одной консоли в другую, параметры одинаково заполняю
6 yzimin
 
08.08.18
13:48
Не сказано где находится клиент и сервер ОФ и УФ
7 Alekzander Wolf
 
08.08.18
13:50
(6) на УФ на сервере на форме, на ОФ в модуле объекта, считай тоже на сервере
8 Alekzander Wolf
 
08.08.18
13:57
ВЫБРАТЬ
    АвансовыйОтчетТовары.СчетФактура КАК СчетФактура,
    АвансовыйОтчетТовары.Поставщик КАК Контрагент,
    АвансовыйОтчетТовары.Ссылка КАК Ссылка
ИЗ
    Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    АвансовыйОтчетПрочее.СчетФактура,
    АвансовыйОтчетПрочее.Поставщик,
    АвансовыйОтчетПрочее.Ссылка
ИЗ
    Документ.АвансовыйОтчет.Прочее КАК АвансовыйОтчетПрочее
9 yzimin
 
08.08.18
13:58
(7) интересует физическое расположение. 1 комп, по сети, RPD, тонкий клиент и т.д.

И ещё, вы БП2 под УФ запустили что ли?
10 Alekzander Wolf
 
08.08.18
13:58
(8) Здесь долго выполняется, тоже на УФ влет
11 Alekzander Wolf
 
08.08.18
13:58
(10) * на УФ влет
12 Alekzander Wolf
 
08.08.18
13:59
(9) БП2- обычные, бп3 управляемые. Переход с бп2 на бп3 у нас
13 Alekzander Wolf
 
08.08.18
13:59
(11) на ОФ
14 yzimin
 
08.08.18
13:59
(12) тьфу тебя, так и пиши, что ты сравниваешь ОФ БП2 и УФ БП3
15 Alekzander Wolf
 
08.08.18
14:02
(14) Вообще в консоле пишет, что запрос выполнялся 0.035 с, а по факту я ждал секунд 30
16 Галахад
 
гуру
08.08.18
14:02
Смешно.
17 Alekzander Wolf
 
08.08.18
14:02
Базы обе файловые
18 oslokot
 
08.08.18
14:03
(10) долго это сколько? в консоли время выполнения что пишет?
19 Deon
 
08.08.18
14:03
RLS?
20 Alekzander Wolf
 
08.08.18
14:03
(18) (15)
21 oslokot
 
08.08.18
14:03
хаха
22 oslokot
 
08.08.18
14:04
эт он тебе весь результат запроса на клиент вываливает, вот ты и ждешь)
23 Alekzander Wolf
 
08.08.18
14:04
(19) под полными правами запускаю
24 Alekzander Wolf
 
08.08.18
14:04
(22) 20 строк?
25 yzimin
 
08.08.18
14:05
При переходе с БП2 на БП3 надо так же делать переход с HDD на SSD и c TCP на HTTP(s)
26 Alekzander Wolf
 
08.08.18
14:06
Я ставил точку останова  на Запрос.Выполнить()  и минуту ждал пока она отвиснет
27 Mort
 
08.08.18
14:06
УФ в файле тока баловаться.
28 ildary
 
08.08.18
14:16
(25) извините, TCP на HTTP(s) - речь идет об отладчике?
29 yzimin
 
08.08.18
14:19
(28) Про работу в тонком клиенте
30 ildary
 
08.08.18
14:20
(29) понял, спасибо!
31 ildary
 
08.08.18
14:37
(0) Озвучьте железо, на котором сейчас БП3.
32 Garykom
 
гуру
08.08.18
15:08
Интересно как долго выполнится "подобный запрос" в бух на 1С 77 на  сравнимом новом железе?
33 Фрэнки
 
08.08.18
15:24
ну написано же в замере, что есть время исполнения запроса...

ТС, сделай этот запрос в виде законченного отчета и повесь его в конфигурацию Расширением. А так у тебя происходит сравнении времени компиляции текста запроса в случае обычных форм и УФ
34 Alekzander Wolf
 
09.08.18
05:47
(33) Так он был в виде законченного запроса
35 Alekzander Wolf
 
09.08.18
05:47
(34) *Отчета
36 vcv
 
09.08.18
06:03
(25) "c TCP на HTTP(s)"
Простите, а какие ваши основания? Или вы исключительно про файловые базы говорите?
37 Фрэнки
 
09.08.18
07:57
(35) установи его внутрь Расширения и посмотри сколько времени он будет запускаться - я пытаюсь донести мысль, что выполнение внешних отчетов делается в два шага: компиляция, затем собственно исполнение. Время исполнения замер показал, а общее время получается завышенным, потому что лучше использовать отчеты встроенные в конфигурацию или в расширение, что позволяет выполнить компиляцию в момент открытия базы, а не непосредственно при запуске отчета
38 ArgonPrime
 
09.08.18
08:42
(15) Это не запрос так долго выполняется, это так долго выполняется вывод результата запроса в табличную часть консоли запросов на управляемых формах. Сам с таким неадекватным поведением управляемых форм пару лет назад столкнулся. А сам запрос, что в первом, что во втором случае выполняется на сервере и быстро, о чём тебе консоль запросов и сообщает, что запрос выполнялся 0.035 с.
39 Tankur
 
09.08.18
09:50
вангую что дело в ПРЕДСТАВЛЕНИЕ()
40 scanduta
 
09.08.18
09:58
(38)+100