Имя: Пароль:
1C
1С v8
бух обороты не используют итоги
0 Defender77
 
23.06.23
13:45
Всем привет

помогите разобраться с такой проблемой: при выполнении запроса за год с 01/01/2022 по 31/12/2022  в профайлере 1С формирует три SQL запроса: по итогам с '4021-01-01 00:00:00','4021-12-01 00:00:00' и два по основной таблице
с периодом '4021-12-01 00:00:00' до '4021-12-31 23:59:59'. Из-за запросов по основной таблице все это выполняется несколько минут.

в другой базе за аналогичный период запрос один - только по итогам, выполняется меньше секунды.

сделал откат бух итогов на 0001.01.01 с возвратом на текущий период, двигая помесячно. полный перерасчет невозможен из-за слишком большой базы.
статистика свежая, индексы тоже

релиз 1С 8.3.21.1709

сам запрос:
    запрос.Текст = "ВЫБРАТЬ
                   |    ХозрасчетныйОбороты.Счет КАК Счет,
                   |    ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
                   |ИЗ
                   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата1, &Дата2, , , , , , ) КАК ХозрасчетныйОбороты";
                                                                            
    запрос.УстановитьПараметр("Дата1", Период.ДатаНачала);
    запрос.УстановитьПараметр("Дата2", Новый Граница(КонецДня(Период.ДатаОкончания), ВидГраницы.Включая));
1 Мультук
 
23.06.23
14:34
(0)

0) У вас отчёт за 2022 год, а данные у вас формируются за 2021 + 2000 смещение = 4021. 21 и 22 год -- как то странно.
1) Имхо, в случае с оборотами достаточно обычной даты.
2) А по какую дату рассчитаны бух.итоги ? Там точно уже 2023 год ?
3) Не знаю насколько у вас большая база.

Но БП в пару десятков гигибайт перерасчитывает за вменяемое время (до часа точно)
Но только из 1С-предприятия, из стандартной обработки управления итогами
Из конфигуратора виснет.

P.S.  


   запрос.Текст = "ВЫБРАТЬ
                   |    ХозрасчетныйОбороты.Счет КАК Счет,
                   |    ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот
                   |ИЗ
                   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата1, &Дата2, , , , , , ) КАК ХозрасчетныйОбороты";
                                                                            
    запрос.УстановитьПараметр("Дата1", Период.ДатаНачала);
    запрос.УстановитьПараметр("Дата2", КонецДня(Период.ДатаОкончания));
2 Defender77
 
23.06.23
15:00
(1)
0) Окошком ошибся, не тот период скопировал. но идея такая же. период разбивается на два и последний месяц обсчитывается по основной таблице
1) Попробовал все )) с датой такой же результат
2) точно. 31 мая 2023
3) SQL говорит что база 680гб. места для tempdb не хватает
3 Chai Nic
 
23.06.23
15:14
(2) "SQL говорит что база 680гб"
А сколько из этого занимают данные? Может там сканы документов в блобах лежат. Смотрите количество записей в регистре бухгалтерии.
4 Defender77
 
23.06.23
15:22
строк в таблице 161 548 042
5 BDA80
 
23.06.23
15:51
В запросах по основной таблице в секции WHERE присутствует PeriodAdjustment?
6 Defender77
 
23.06.23
16:09
(5) Да, присутствует. Тоже обратил внимание что в тормозящей базе уточнение периода = 1
7 pablo_escobar
 
23.06.23
16:14
(6) Вот статья была по этому https://infostart.ru/1c/articles/1635057/
8 Chai Nic
 
23.06.23
16:32
(7) "Причина неисправления:Не ошибка. Это проектное поведение, реализованное в задаче Поддержки межотчетного периода."

Однако, здравствуйте. Интересно, этот беспредел творится с ведома Нуралиевых, или же это молодые джависты, пришедшие в разработку, развлекаются?
9 timurhv
 
25.06.23
15:50
(8) Выводы неверные, в БГУ 2.0 уточнения изначально не было (насколько помню, не было платформенной возможности). Добавляли намного раньше БП3 и подобных проблем с падением производительности не было.
10 Chai Nic
 
25.06.23
17:44
(9) Я не об уточнении периода, которое конечно костыль, но раз правительство сказало надо - сделаем. Я о том, что неоптимально происходит обращение к бухитогам со сканом таблиц, и это объявляют не багой, а фичей..
11 timurhv
 
25.06.23
21:23
(10) Это смотря как описание ошибки сформулировать. То что написано в багрепорте я бы тоже отклонил)
Независимо от того, куда вы едете — это в гору и против ветра!