Имя: Пароль:
1C
1C 7.7
v7: 7.7 Комплексная, стали долго проводиться документы РКО
,
0 zenon46
 
26.05.23
12:01
Доброго дня!
Есть в наличии база на 7.7 Комплексная, стали долго проводиться документы РКО (ПКО наверное тоже не проверял)
Сделал замер производительности, 97% времени занимает, сортировка таблицы, размер таблицы кажет 38000 тысяч записей. Находится это в типовой процедуре глДвижениеДолгов, как то можно оптимизировать ?

ВремВзаим.ВыгрузитьИтоги(ТаблИтогов,1,1);
ТаблИтогов.Сортировать("+КредДокумент",1); // погашаем долги по ФИФО
1 Волшебник
 
26.05.23
12:03
Не надо выбирать 38 тысяч. Выбирайте последние 100 записей
2 zenon46
 
26.05.23
12:05
(1) а я и не выбираю из регистра так выгружается ВремВзаим.ВыгрузитьИтоги(ТаблИтогов,1,1);
А почему 100, а не 1000 или 10 ?
3 Волшебник
 
26.05.23
12:06
(2) Этого хватит для закрытия долгов
4 Builder
 
26.05.23
12:07
(2) Проверьте фильтр на этом регистре какой стоит.
Либо регистры не закрываются и накопилось там дохрена записей.
5 toypaul
 
гуру
26.05.23
12:09
можно. если подключены прямые запросы. там 3800 запросов на то, чтобы получить дату для каждого документа и потом отсортировать. нужно сделать одним запросом. или переписать хотя бы на (типовые) запросы (без Сортировать)
6 zenon46
 
26.05.23
12:09
(4) фильтр такой стоит

ВремВзаим.УстановитьЗначениеФильтра("Фирма"        ,Фирма,        1);
ВремВзаим.УстановитьЗначениеФильтра("Договор"    ,Договор,    1);
7 toypaul
 
гуру
26.05.23
12:10
(6) так это не нормально когда по договору 38 тыс остатков
8 agres
 
26.05.23
12:11
38000 тысяч = 38 млн
9 zenon46
 
26.05.23
12:14
(7) да там есть моменты через одно место сделанные для ведения учета "как надо" - вопрос в том как ускорить ?
Как предложил волшебник выгрузить 100 записей не вариант - ВыгрузитьИтоги - так не умеет
10 Волшебник
 
26.05.23
12:19
(9) Тогда закройте остатки. Там не должны быть тысячи записей
11 Bigbro
 
26.05.23
12:51
вариантов всего два
правильный - разобраться с бардаком в регистре чтобы не тянуть миллионы строк по взаиморасчетам.
быстрый - отключить эту проверку раз судя по всему на состояние взаиморасчетов всем плевать а документы делаются только для печати.
12 toypaul
 
гуру
26.05.23
14:03
(9) я написал как
13 uno-group
 
26.05.23
14:11
Написать обработку которой раз в месяц сворачивать не закрывающиеся долги которые на самом деле закрыты.
Убрать лишние не закрывающиеся измерения и перенести их в реквизиты если эта информация для чего то нужна.
14 Харлампий Дымба
 
26.05.23
18:35
(12) А через пару месяц ТС откроет новую тему: "При открытии нового периода 1С висит уже сутки и не отвечает. Что делать?".
Вот буквально пару месяцев назад с такой же фигнёй разбирался - мелкооптовая розница, только складской учет в ТиСе, реализация документом "Реализация" на покупателя "Розничный покупатель". Через 5 лет продаж регистр "Покупатели" треснул. Просто посоздавал обработкой документ "ПКО" в конец каждого месяца, файл регистра усох с 800 до 40 мегабайт.

Так что в вариант-то на самом деле один: закрой регистр "Поставщики" по "КредДокумент", как  uno-group говорит. Всё равно, судя по всему, это измерение не используется должным образом.
15 Злопчинский
 
26.05.23
20:14
Харлампий правильно говорит.
Регистр взаиморасчётов не закрыт.
Поэтому тянется тонны дерьма.
В таблице движений внешним редактором тупо заменить измерение КредДокумент на пустое значение. Удалить таблицу итогов и пересчитать итоги по этому регистру. В коде найти места где задаётся измерение КредДокумент и занулить. Всё.
.
Совершенно аналогично занулить измерение фирма в остатках и партиях если торгуют от Интер кампании, но перепродажу не делают
16 Bigbro
 
27.05.23
07:37
да уж.. а когда то, всего лишь каких то 20 лет назад такие огороды городили с этими автоперепродажами друг другу, с автодвижениями товаров.
помню когда ограничение делали по торговым площадям - когда в кассе магазина получаешь вместо одного 4 чека от разных ООО ))
и все это приходилось автоматизировать чтобы у юзеров одна кнопка, а вся логика скрыта и работает как часы))
17 NorthWind
 
27.05.23
10:13
(0) сильно зависит от того, пользуется ли кто-либо взаиморасчетами в этой базе. Скорее всего, регистры незакрыты. Присоединяюсь к (14) - вычитайте обработкой незакрытое, создайте на каждый случай ПКО, чтобы закрылось в ноль.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший