|
Ерунда с очетом | ☑ | ||
---|---|---|---|---|
0
koketka
30.11.12
✎
16:17
|
Написала отчет в отчете сначало выбираю в запросе1 ос по нужному парамтру, а потом в другом запросе2 выбираю всех ос кроме из запроса1,
Может криво звучит но только так получилось сделать так как мне надо. Вопрос на своем компе отчет делается минуту. На сервер от 1 минуты до 1 часа и всегда поразному один и тот же отчет за один и тот же промежуток времени! Подсккажите почему так? |
|||
1
ДенисЧ
30.11.12
✎
16:19
|
gdb dna
|
|||
2
narayanan
30.11.12
✎
16:20
|
код запроса в студию
|
|||
3
koketka
30.11.12
✎
16:22
|
ЗапросСписок = Новый Запрос;
ЗапросСписок.Текст = "ВЫБРАТЬ | ЗалогOCСрезПоследних.ОсновноеСредство.Ссылка КАК ОС |ИЗ | РегистрСведений.ЗалогOC.СрезПоследних(&датаКон, ) КАК ЗалогOCСрезПоследних |ГДЕ | ЗалогOCСрезПоследних.НаходитсяВЗалогеОС = ИСТИНА"; ЗапросСписок.УстановитьПараметр("ДатаКон",Новый Граница(КонецДня(ДатаКон))); Выборка = ЗапросСписок.Выполнить().Выгрузить(); СписокОС = Выборка.ВыгрузитьКолонку("ОС"); ОС=Новый СписокЗначений; ОС.ЗагрузитьЗначения(СписокОС); ОС.СортироватьПоЗначению(); Макет = ВнешняяОбработкаОбъект.ПолучитьМакет("ОтчетНЗ"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1.Код, | ХозрасчетныйОстатки.Субконто1.Ссылка, | ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт, | ХозрасчетныйОстатки1.СуммаОстатокКт КАК СуммаОстатокКт, | ВЫБОР | КОГДА ХозрасчетныйОстатки1.СуммаОстатокКт ЕСТЬ NULL | ТОГДА ХозрасчетныйОстатки.СуммаОстатокДт | ИНАЧЕ ХозрасчетныйОстатки.СуммаОстатокДт - ХозрасчетныйОстатки1.СуммаОстатокКт | КОНЕЦ КАК Поле1, | ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период КАК ДатаВВодаВЭксплуатацию |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, Счет = &Счет, , ) КАК ХозрасчетныйОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, Счет = &Счет1, , ) КАК ХозрасчетныйОстатки1 | ПО ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОстатки1.Субконто1 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ДатаКон, ) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних | ПО ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство |ГДЕ | (НЕ ХозрасчетныйОстатки.Субконто1.Ссылка В (&Список)) |ИТОГИ | СУММА(СуммаОстатокДт), | СУММА(СуммаОстатокКт), | СУММА(Поле1) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("ДатаКон",Новый Граница(КонецДня(ДатаКон))); Запрос.УстановитьПараметр("Список", ОС); Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01")); Запрос.УстановитьПараметр("Счет1", ПланыСчетов.Хозрасчетный.НайтиПоКоду("02.01")); Результат = Запрос.Выполнить(); |
|||
4
НЕА123
30.11.12
✎
16:25
|
мдя. (с)
|
|||
5
koketka
30.11.12
✎
16:26
|
что скажите?
|
|||
6
koketka
30.11.12
✎
16:27
|
вы скажите почему на в одном запросе - у меня там терялись данные а так все выводится
|
|||
7
koketka
30.11.12
✎
16:28
|
я думаю что дело в списке , но почему такие тормоза и всегда разное время выполнения отчета
|
|||
8
narayanan
30.11.12
✎
16:31
|
По идее вложенный запрос нужно делать или временную таблицу, но как не знаю. Потому что во воторой запрос идет список из таблицы значений, вот там и проблема мне кажется
|
|||
9
koketka
30.11.12
✎
16:35
|
я тоже примерное на это грешу - но не понятно почему так?
|
|||
10
narayanan
30.11.12
✎
16:35
|
(9) да я не знаю, может кто-нить ответит
|
|||
11
learn1c
30.11.12
✎
16:41
|
Может быть убрать:
|ГДЕ | (НЕ ХозрасчетныйОстатки.Субконто1.Ссылка В (&Список)) и сделать фильтр сразу в виртуальной таблице: | РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, Счет = &Счет, ,Субоконто1 НЕ В (&Список)) КАК ХозрасчетныйОстатки |
|||
12
koketka
30.11.12
✎
16:43
|
попробую
|
|||
13
palpetrovich
30.11.12
✎
16:44
|
(0) "от 1 минуты до 1 часа" - наверное надо таки сделать замер производительности
и ВЫБОР... может заменить лучше на такое? (ХозрасчетныйОстатки.СуммаОстатокДт - ЕСТЬNULL(ХозрасчетныйОстатки1.СуммаОстатокКт,0)) КАК Поле1 |
|||
14
narayanan
30.11.12
✎
16:46
|
Функция ЕСТЬNULL является свернутым ВЫБОР…КОНЕЦ, но ЕСТЬNULL предпочтительнее, не должен сильно влиять на скорость
|
|||
15
palpetrovich
30.11.12
✎
16:47
|
(14) а кто спорит? (13) - читабельнее по любому :)
|
|||
16
koketka
30.11.12
✎
16:48
|
(13) хорошо попробую просто сейчас на сервере опять 1 минуту выполняется в понедельник поэксперементирую когда будет много пользователей
Если у кого будут мысли пишите я попробую |
|||
18
Vladal
30.11.12
✎
16:56
|
А что значит "на своём компе"? В файловой базе локально, файловой по сети или клиент-сервер?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |