Формирование отчета за день

1. user1030103 25.12.19 11:04 Сейчас в теме
Прошу помощи по получению остатков и оборотов из хозрасчетного регистра.

Вот этот запрос зависает, если выбрать в периоде 1-2 дня. Если выбран месяц, все замечательно срабатывает. Подскажите, пожалуйста, возможно ли это исправить? Если да, то как.

ВЫБРАТЬ
	ХозрасчетныйОстаткиИОбороты.Регистратор.СкладОтправитель КАК СкладОтправитель,
	ХозрасчетныйОстаткиИОбороты.Регистратор.СкладПолучатель КАК СкладПолучатель,
	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОстаткиИОбороты.КоличествоОборот КАК Оборот,
	ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ.ПеремещениеТоваров).Номер КАК НомерДокумента
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ.ПеремещениеТоваров).СкладПолучатель = &СкладПолучатель
	И ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ.ПеремещениеТоваров).СкладОтправитель = &СкладОтправитель
Показать
По теме из базы знаний
Найденные решения
17. YannikAlx 43 25.12.19 11:40 Сейчас в теме
Вот так будет работать на порядок быстрее

ВЫБРАТЬ
	ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
	ХозрасчетныйОстаткиИОбороты.КоличествоОборот КАК Оборот,
	ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК СкладПолучатель
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, Регистратор, , Счет.Код = "41.01", , Субконто2 = &СкладПолучатель) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
	ХозрасчетныйОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
	И ХозрасчетныйОстаткиИОбороты.Регистратор.СкладОтправитель = &Отправитель
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. YannikAlx 43 25.12.19 11:19 Сейчас в теме
(1)Запрос какой-то странный (мягко сказано)...
Если я выберу счет скажем 20 или 61.02 что он выдать должен?

Не кажется вам что запрос бы довести до ума не помешало бы...
Да и выносить &СкладПолучатель и &СкладОтправитель во вне Виртуальной таблицы - вторая ошибочка....
6. user1030103 25.12.19 11:22 Сейчас в теме
(5) Склады я получаю из Регистратора. Потому что мне нужны перемещения с одного склада на другой.
А счет всегда один.
9. YannikAlx 43 25.12.19 11:27 Сейчас в теме
(6) Если счет один , то зачем его в параметры пользователю давать?
12. user1030103 25.12.19 11:27 Сейчас в теме
(9) А кто Вам сказал, что я его в параметры пользователю даю? Параметр заполняется автоматически, без помощи пользователя.
14. YannikAlx 43 25.12.19 11:30 Сейчас в теме
(12)Счет.Код="41.01"
Это пример
18. user1030103 25.12.19 11:43 Сейчас в теме
(14) Так отчет не формируется вообще
20. YannikAlx 43 25.12.19 11:46 Сейчас в теме
(18) Ну отредактируйте его под свои данные.
Вы вообще его где запускаете в консоли?
Проверьте параметры если без консоли...
22. user1030103 25.12.19 11:48 Сейчас в теме
(20) В данных, что выводит мой отчет в первоначальном виде, есть счет 41.02. На нем и протестировала. Счет я оставлю все же в том варианте, в котором было у меня изначально. Спасибо.
21. YannikAlx 43 25.12.19 11:48 Сейчас в теме
(18) Например я использую всегда ОкончаниеПериода вместо вашего Конца...
ибо О идет по алфавиту после Н и пареметр Окончаниепериода будет в консоли ниже НачалоПериода, что логичнее.. ))))
23. user1030103 25.12.19 11:50 Сейчас в теме
(21) Месторасположение параметров в консоли как-то влияет на скорость работы отчета?
8. Ганс 25.12.19 11:25 Сейчас в теме
(5) а вы сами пробовали в параметрах виртуальной таблицы обратиться к регистратору, просто хочется посмотреть....
2. xSavantx 25 25.12.19 11:09 Сейчас в теме
3. user1030103 25.12.19 11:10 Сейчас в теме
4. xSavantx 25 25.12.19 11:11 Сейчас в теме
(3) Тестирование и исправление - пересчет итогов
7. user1030103 25.12.19 11:23 Сейчас в теме
(4) Процесс займет очень много времени... Мне это не подойдет, к сожалению...
11. YannikAlx 43 25.12.19 11:27 Сейчас в теме
И зачем это к регистратору в Виртуальной обращаться?
ВУы хоть немного знакомы вообще с Хозрасчетным регистром?
13. user1030103 25.12.19 11:28 Сейчас в теме
(11) Мне нужно документ получать, который эти перемещения регистрирует.
Как мне по-другому регистратор получить?
16. Ганс 25.12.19 11:37 Сейчас в теме
(11)

Да и выносить &СкладПолучатель и &СкладОтправитель во вне Виртуальной таблицы - вторая ошибочка....


(11) Хорошо, расскажите как мне в параметрах виртуальной таблицы установить отбор как у автора поста, вы ведь ему это предлагаете, ваша цитата, я поэтому и интересуюсь, как это сделать)
19. YannikAlx 43 25.12.19 11:44 Сейчас в теме
(16) Люые фильтры установленные при формировании виртуальной таблицы работают гораздо быстрее, поэтому при возможноти их установить и пренебрежением к этой возможности вы получаете в результате страшные тормоза.
В случае с текущим запросом Субконто2 содержит Склад получатель и вы можете очень быстро отсечь возможно миллионы записей по другим складам
Этим нельзя пренебрегать!
24. user1030103 25.12.19 11:50 Сейчас в теме
(19) Спасибо большое, Субконто2 действительно лучше поместить в параметры таблицы
25. Ганс 25.12.19 11:51 Сейчас в теме
(19) Это я знаю) Но вы ведь пишете про СкладПолучатель и СкладОтправитель, то что нужно получателя искать по Субконто в виртуальной таблице это понятно, мне было интересно как вы планировали СкладОтправителя туда засунуть.
26. YannikAlx 43 25.12.19 11:54 Сейчас в теме
(25) Вы будете удивллены, но и СкладОтправителя можно засунуть .
В зависимости ЧТО мы изначально ищем...
Есть ведь не только ОстаткиИОбороты. Но и ОборотыДтКт...
27. Ганс 25.12.19 11:56 Сейчас в теме
(26)Это я тоже знаю, но нам ведь нужны не только обороты но и остаток, ОборотыДтКт не подходит...
28. YannikAlx 43 25.12.19 12:02 Сейчас в теме
(27) иногда пользователи выводят подрят ,что под руку попало.
Конечный Остаток не нужен может быть но его все равно выводят...
Я и написал - в зависимости от того что мы ищем.
И по ходу вы просто придираетесь сейчас?
Задача была Ускорить запрос...
Перенос даже одного склада внутрь ускоряет запрос?

И самое интересное , что нужно всегда помнить , что фильтр внутри Виртуальной таблицы и снаружи - не идентичны!
Можно получить совершенно различные результаты тупым переносом фильтра внутрь...
Надеюсь и это вы тоже знаете... ;-)
29. user1030103 25.12.19 12:06 Сейчас в теме
(17) Перенесла &СкладПолучатель в параметры виртуальной таблицы - все сработало! Счет оставила в прежнем виде.

YannikAlx, спасибо за помощь! :)
30. YannikAlx 43 25.12.19 12:09 Сейчас в теме
(29) Ну счет как удобнее - в вашем случае не принципиально...
Но еще раз хочу акцентировать ваше внимание исключительно из образовательных целей на будущее
фильтр внутри Виртуальной таблицы и снаружи - не идентичны!
Можно получить совершенно различные результаты тупым переносом фильтра внутрь...


То есть вы должны понимать где и как накладывать фильтр правильно в каждом отдельном случае...
user1030103; +1 Ответить
31. user1030103 25.12.19 12:18 Сейчас в теме
(30) Я собственно с Вами и не спорила :)
Еще раз благодарю! :)
32. Ганс 25.12.19 12:26 Сейчас в теме
(28)я не придираюсь, просто не часто доводилось работать с Хозрасчётной ВТ, знаю что к регистратору не обратиться в ВТ, но вы указали это как ошибка, поэтому и поинтересовался, как вы хотите эти два условия перекинуть в виртальную таблицу Хозрасчётов, но посыл был в том что если нужно и при определённых условиях, а это уже другие условия, другие таблицы итд
15. Ivan_Sol 19 25.12.19 11:31 Сейчас в теме
Наложите отбор на регистратор что-то вроде ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ПеремещениеТоваров)
17. YannikAlx 43 25.12.19 11:40 Сейчас в теме
Вот так будет работать на порядок быстрее

ВЫБРАТЬ
	ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
	ХозрасчетныйОстаткиИОбороты.КоличествоОборот КАК Оборот,
	ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК СкладПолучатель
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, Регистратор, , Счет.Код = "41.01", , Субконто2 = &СкладПолучатель) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
	ХозрасчетныйОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
	И ХозрасчетныйОстаткиИОбороты.Регистратор.СкладОтправитель = &Отправитель
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот