Кто-нибудь пробовал переделывать стандартный отчет "ОСВ по счету"? #745857


#0 by Fergus
Всем привет. Есть стандартный отчет "ОСВ по счету". Сам отчет по счету, допустим 29 со всеми вкл. субконто на вкладке "Детализация" с отбором по складу за период допустим Год делается 1-2 часа. Замер производительности показывает, что проблема в двух местах: Через конструктор запросов (запрос выполняется) - 6,97 сек. Те же параметры Через свой самодельный внешний отчет, который выводит те же данные - 126 сек Что можете подсказать? Может стоить сесть и переписать стандартный отчет ОСВ по счету? и заменить его своим? Просто там затра...ся с расшифровками?
#1 by Звездец
Лучше сразу БП пишите, а то 3,0 особо быстродействием не балует
#2 by Рус Иван
зато интерфейс красивый
#3 by GROOVY
А ТС говорил о 3.0?
#4 by Рус Иван
был случай, когда ОСВ по счету формировалась более часа, проблему удалось решить с пом. тестирования и исправления инф. базы. БП 2.0.
#5 by Звездец
нет, но если у него не 3,0, то там его жде много удивительного в быстродействии
#6 by Fergus
Сейчас пытаюсь перенести исполнения кода (см выше) на сервер. Не все гладко! 1. Создал модуль с галкой "Сервер" 2. Создал экспортную функцию "ОСВПоСчетуСервер" 3. Пытаюсь передать туда параметры, сохранить результат в хранилищезначений 4. Вытащить макет из хранилища Что думаете?
#7 by Рус Иван
Вы бы версию бухгалтерии озвучили
#8 by hhhh
если в бп 2.0, то имеет смысл сохраненные настройки чистить. Они со временем забиваются. Долго грузятся. Удаление настроек увеличивает скорость отчета в 10 раз. И то же самое в 7.7.
#9 by hhhh
у вас не программа там а похоже монстр какой-то. У меня осв за 10 лет больше минуты ни разу не выполнялась. На 7.7 было, но и то пару раз всего.
#10 by Рус Иван
+ попробуйте сформировать стандартную осв по счету по другим счетам
#11 by Fergus
Версия БП 1.6 по другим счетам летает че поделать страхование ОСАГО база большая
#12 by Рус Иван
пробуйте тестирование и исправление, только не на рабочей базе
#13 by Звездец
1.6 и вариант случаем не файловый? что с железом?
#14 by Fergus
ТИИБ сделал, управление итогами рассчитаны, в SQL повесил План обслуживания (реиндексация, дефрагментация и пр)
#15 by Fergus
#16 by Славен
как определил что норм?
#17 by Fergus
а что не норм?
#18 by RomanYS
"че поделать страхование ОСАГО база большая" переписать данный участок на регистры накопления, субконто снести или укрупнить.
#19 by Fergus
лучше разобраться с отчетом, чем переходить на крайности, в конце концов проблем в чем? В том, что стандартный отчет "ОСВ по счету" не может нормально выводить огромные количество записей. А если в конфигурации допустим есть счета с 4-мя и более количество субконто? и по ним есть внушительные таблицы данных. Тоже переписывать на регистры?
#20 by RomanYS
зачем вообще "выводить огромные количество записей"? что можно делать с отчетом из 10^5 записей? "допустим есть счета с 4-мя и более количество субконто" - это и есть крайности, которые не совместимы с "большими" данными. Такие варианты нельзя даже рассматривать, тогда не придется ничего переписывать. Удачи в переписывании ОСВ
#21 by Fergus
А тема то оказывается больная! чувак тоже мучался выводить 600 000 строк в таб док.
#22 by DrShad
Ну как перепишите, создайте тему потеснив ваше мега произведение
#23 by DrShad
А за 4-е субконто уже нужно на кол сажать, не говоря уже про 5 и т.д.
#24 by МаленькийВопросик
я переделывал, в чем проблема? по опредленным счетам (группе счетов)
#25 by Fergus
ваш предел 1 субконто или вообще без субконто? не понял!? Если есть инструмент в 1С, который называется ПланВидовХарактеристик почему им нельзя пользоваться? Тогда пусть 1С официально заявит что 3 субконто это ПРЕДЕЛ, а еще лучше вообще без субконто... Короче фигню несете. Даже если я буду делать на регистрах накопления, все равно открытым остается вопрос как вывести БЫСТРО в табдок сотни тысяч строк...
#26 by Fergus
нашел на ИТС такую вешь, обработка порциями:   "ВЫБРАТЬ ПЕРВЫЕ 1000 Суть переиначал - "Если объём данных, с которыми работает бизнес-логика, сам по себе ничем не ограничен, его нужно ограничивать искусственно, обрабатывая данные порциями" попробую выводить ОСВ по счету по 100000 записей
#27 by ДенисЧ
ОСВ больше 100 записей смысла не имееет
#28 by Lama12
Читай ИТС там написано про 3 субконто.
#29 by hhhh
а итоги на новый месяц пересчитываете всегда?
#30 by Fergus
итоги пересчитаны, регулярно делаются ОСВ больше 100 записей смысла не имеет - отличная мысль, завтра пойду к начальству и скажу, а знаете, оказывается если больше 100 записей, то ОСВ не имеет смысла, сокращайте деятельность, нужно уложиться в 100 записей :)
#31 by Armando
Результат замера слабое место где показывает?
#32 by Fergus
на самом верху моего поста
#33 by Armando
точно)
#34 by hhhh
переходите на бп 2.0. Там осв быстрее. Я на 1.6 тоже осв переделывал.  У меня субконто договоры тормозило. Потому что договоров десятки тысяч.
#35 by Armando
Подозрительно большая разница во времени выполнения запросов: 800 и 7 секунд. Есть ли там условие В ИЕРАРХИИ? У нас ОСВ оптимизирована: если у счета есть субсчета, то будет условие В ИЕРАРХИИ, иначе будет =
#36 by hhhh
да, вспоминаю. Я как раз в договорах убирал условие В ИЕРАРХИИ.
#37 by Necessitudo
Это знаешь на что похоже - вот в торговле 10.3 есть функционал по прикреплению файликов к номенклатуре. По умолчанию файлики хранятся прямо в базе. Говоришь народу -   не вкладывайте туда файлы по 200-300 мегабайт! - а тебе отвечают, что мол функционал же в 1С есть, значит им нужно пользоваться.
#38 by miliko
при чем здесь железо, сделать обычный запрос к SQL
#39 by Fergus
Тема закрыта. Кому интересно выкладываю как была решена эта задачка Итак у нас есть некий счет с 3-мя субконто, причем 3-е субконто это "ДоговорыКонтрагентов". Договоров много, очень много, и ОСВ по счету за период "год" зависал конкретно. Формировался отчет примерно часов 3-4, иногда вылетало с ошибкой: "Сеанс был принудительно разорван администраторм и т.д., и т.п.". Решение: Опытным путем (отлаживая код, замеряя скорость) мы выяснили, что сам запрос выполняется в приемлемое время, но вот код: Выборка = РезультатЗапроса.Выбрать оказался именно тем камнем, куда 1С спотыкалась, потому что в выборке было более 900 000 записей (это только по 3-му субконто) за период "год". Если быть точным, то узким место стало Выборка3. Я примерно покажу код обхода,чтобы было понятно: Выборка3 = Выборка2.Выбрать(ОбходРезультатЗапроса.ПоГруппировкам,"Субконто3") Субконто1 - это ПодразделениеОрганизации здесь проблем нет, поскольку в этой выборке всего ничего записей Субконто2 - это Контрагенты, здесь тоже проблем нет, записей не более 100 000 Но вот Субконто3 - ДоговоыКонтрагентов, здесь АТАС, записей набралось аж более 900 000. Чтобы ускорить вывод отчета, мы скопировали макет отчета "ОСВ по счету", убрали вертикальные секции "Счет","Числа" разбили запрос на 2 запроса в пакете. 1-й запрос по 2-м субконто, 2-й запрос только по 3-му субконто. Далее выгружаем результа 2-го запроса в тз, проиндексируем колонку "Субконто2Владелец", короче вот код: 1. для кнопки Сформировать P.S. Забыл сказать, что в первоначальном варианте Субконто3 было ПодразделениеОрганизации, потом мы сдвинули на 1-е место. Решение не универсальное, но теперь отчет формируется менее чем за 10 мин за период "год" и с иерархией
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С