Имя: Пароль:
1C
1С v8
долго формируется табличный документ, что можно сделать?
0 I_learn_1c
 
12.10.22
10:01
Доброе утро,

вопрос скорее теоретический, но возможно, кто-то подскажет как быть

есть отчет, довольно много требований для него, получается объемный, на скд его не построить (изначально был, но с изменением требований перерисовали на обычный макет).
поэтому есть запрос (пакет), потом результаты перебираются, формируется и выводится на форму табличный документ.

если брать за год, то получается много строк. вот за январь-октябрь пакет запросов выполняем (выполнение около 40сек), получаем результат более 100тыс строк,
и потом почти 120тыс строк в табличном документе получается. и этот отчет строится несколько часов. может висеть, висеть потом выдать ошибку про нехватку памяти на сервере.

как можно улучшить ситуацию? чтобы отчет строился быстрее.
1 mikecool
 
12.10.22
10:01
замер производительности
2 PR
 
12.10.22
10:03
(0) 1. Не строить это непонятно кому нужное говно
2. Убрать миллиард колонок
3. Переиграть группировки на более читабельные
3 H A D G E H O G s
 
12.10.22
10:03
Представление(Ссылка)
4 H A D G E H O G s
 
12.10.22
10:04
Не передавать табдок напрямую на клиент, все равно его читать никто не будет
5 mikecool
 
12.10.22
10:05
(3) тоже легко может быть
6 alarm2020
 
12.10.22
10:06
(0) Отчетливо осознать возможности человеческого организма в плане прочитывания цифр. И никогда не делать отчеты более, чем с 4-7  цифрами
7 unenu
 
12.10.22
10:06
(0) не выводите вообще - сохраняйте в эксель без показа.

переборы, представления и т.д. можно улучшить, но это побарабану при выводе 100К+ строк на экран.
8 PR
 
12.10.22
10:16
(6) То есть сравнение двух ОСВ за два периода для тебя уже слишком сложно?
9 I_learn_1c
 
12.10.22
11:31
(2)
1. рады бы) но не вариант, просят - делаем
2. колонки только добавляются с новыми хотелками, сейчас около 30. нужно бооольше данных видеть сразу одновременно))
3. с группировками уже игрались, учитывая требования там не много вариантов. группировок и не так много. 1 уровень

(7) сохранять в эксель без показа надо проверить сколько займет.. возможно вариант, спасибо)
10 RomanYS
 
12.10.22
11:34
Замер производительности у же делали?
Ставлю на (3), и получение реквизитов через точку.
А "выдать ошибку про нехватку памяти на сервере" - +кривые запросы
11 PR
 
12.10.22
11:38
(10) Что ты ставишь на (3), если ТС уже в (9) признался, что у него 30 колонок?
То есть у него в документе три с половиной миллиона заполненных ячеек
12 mistеr
 
12.10.22
11:43
(0) 1. Понять, что отчет на 120К строк бесполезен.
13 mistеr
 
12.10.22
11:44
(12) 2. Понять, что же на самом деле нужно.
3. Реализовать.
14 Bigbro
 
12.10.22
12:05
поддержу коллег..
была как то схожая ситуация, формировали портянки километровые которые часами рассчитывались и собирались по куче странных критериев.
потом удалось поговорить по душам с заказчиком.
в итоге обошлись одними итогами на красивом отчете в 2 страницы - там было все что нужно, и ничего лишнего.
более того этот отчет заказчик в силу его простоты и компактности смог на общие совещания таскать, раздавать и оперировать показателями.
когда раньше с этим рулоном в своем углу сидел и судорожно пытался оттуда что-то вытащить.
15 Kassern
 
12.10.22
12:07
(0) "и этот отчет строится несколько часов" - В отладке проверяли какой момент столько времени отъедает? Вывод на экран, или же получение результата зарпоса
16 RomanYS
 
12.10.22
12:18
(11) чтобы заполнить 3 млн ячеек нужно несколько часов?
17 PR
 
12.10.22
12:22
(16) Причем здесь заполнить, если речь про то, что потом эту арбу с дерьмом нужно доставить на клиента
18 Kassern
 
12.10.22
12:24
Обычно отчет делают на определенном уровне детализации, чтобы можно было сделать какие-то выводы. Портянка из 100500 строк ни о чем не скажет. Она нужна лишь для разбора полетов, а откуда эта сумма в группировке получилась.
19 OldCondom
 
12.10.22
12:24
Покажите мне человека, которому нужно хотя бы 100 тысяч строк для чего-либо.

Отчет более, чем бесполезен, ставьте задачу заново.
20 Ivan_495
 
12.10.22
12:37
создать документ " формирование отчета" привязать его к регистру , самые тяжелые расчеты выполнить и записать в регистр, а потом тащить из регитсра в отчет
21 Kassern
 
12.10.22
12:47
(0) "как можно улучшить ситуацию?" - не писать запросы в циклах, выводить данные в реквизит формы, а не ТабДок.Показать(). Сгруппировать данные, чтобы не рисовать огромную портянку. Сделать возможность расшифровки при желании, возможно обычными СКД отчетами.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший