Имя: Пароль:
1C
1С v8
Ускорение процедуры Свернуть в ТЗ
0 Coldboy
 
25.10.13
17:01
Здравствуйте. Как можно ускорить выполнение функции Свернуть()? можно через запрос, а то имею такой код ускорение работы процедуры Таблица.Свернуть()
    СтрокиАвтопеределов = ТаблицаПроизводства.НайтиСтроки(Новый Структура("ИзАвтопеределов", Истина));
    ТаблицаАвтопеределов = ТаблицаПроизводства.Скопировать(СтрокиАвтопеределов, "НоменклатурнаяГруппа, Ингредиент, РецептураАвтопередела, ИзАвтопеределов, КоличествоИнгредиентаНорма, КоэффициентИнгредиента, ЕдиницаИзмеренияИнгредиента");
    ТаблицаАвтопеределов.Свернуть("НоменклатурнаяГруппа, Ингредиент, РецептураАвтопередела, ИзАвтопеределов, КоэффициентИнгредиента, ЕдиницаИзмеренияИнгредиента", "КоличествоИнгредиентаНорма");

Работает очень долго, хочу ускорить момент Свернуть, он как раз долго и работает.
1 H A D G E H O G s
 
25.10.13
17:06
Никак. Это максимум.
2 H A D G E H O G s
 
25.10.13
17:06
он как раз долго и работает.

Неверю.
3 МихаилМ
 
25.10.13
17:09
бред . либо неверная типизация
4 ptiz
 
25.10.13
17:12
(0) Долго - это сколько? Сколько строк в таблице?
5 wms
 
25.10.13
17:36
ну запросом сверни и сравни
6 МихаилМ
 
25.10.13
17:44
можно еще использовать скд, Анализ данных и возможно построитель запроса
7 Coldboy
 
25.10.13
18:00
я лах, простите меня ошибся строчкой ... опять ошибка была в строче РегистрыБухлагетерии.Остатки(); как и в предыдущем перевожу на запрос и думаю опять ускорение ...
а на самом деле нашел статью на мисте можно ускорить в разы Тз.Свернуть() функцию.
8 Coldboy
 
25.10.13
18:01
(5) а запросом как свернуть?
9 Fragster
 
модератор
25.10.13
18:04
Вариант синтаксиса: Скопировать по отбору

Синтаксис:

Скопировать(<ПараметрыОтбора>, <Колонки>)
Параметры:
10 hhhh
 
25.10.13
18:09
(8) проиндексируй таблицу. Тогда побыстрее будет работать
11 kiruha
 
25.10.13
18:10
Он еще не написал сколько строк.
Может он в цикле 10 000 раз сворачивает
12 kiruha
 
25.10.13
18:11
И не напишет
13 Coldboy
 
25.10.13
19:09
(10) индексировать то зачем обыную ТЗ?
14 Coldboy
 
25.10.13
19:09
http://kb.mista.ru/article.php?id=228 вот какую тему нашел кому интересно вдруг будет.
15 Rovan
 
модератор
25.10.13
19:12
(8) в запрос умеешь ТЗ передавать ?
16 Coldboy
 
25.10.13
19:29
(15) нет вот и спрашиваю или где прочитать про это с комментариями лучше.
17 Рэйв
 
25.10.13
19:31
>>ТаблицаАвтопеределов = ТаблицаПроизводства.Скопировать(
Нахрена?
Если тз настолько юольшая, то лишнее ее копирование это чуть ли не + 2 к замедлению.
18 Coldboy
 
25.10.13
19:39
(17) в типовой конфигурации Общепит Рарус вопрос к ним. у них знаешь скоко моментов я уже оптимизировал, тьфу тьфу, время группового перепроведения месяца с 32.5 часов до 6.5 сократил, не хило да?
19 hhhh
 
25.10.13
20:02
(13) в 8.0 медленно работал метод свернуть. Поэтому начиная с 8.1 придумали индексировать таблицу. Основная цель - чтобы быстрее работал метод Свернуть.
20 Coldboy
 
25.10.13
20:05
ТЗ.свернуть() сам индексирует и значит щас работает оптимально?
(19) а я думал в 8.2.14 начали такие вещи править читал в обновлениях платформы ...
21 Coldboy
 
25.10.13
20:06
(19) а разве средставим СУБД не быстрее будет? тока бы знать как в запрос и средствами субд все это рулить ...
22 kiruha
 
27.10.13
11:04
Когда сознаешься сколько элементов в таблице сворачиваешь ?
Как бы несколько раз спросили ?
Или проще на разработчиков 1С наехать, чем свою нетленку показать ?
В цикле небось сворачиваешь по 5 000 раз ?
23 dmpl
 
27.10.13
12:21
(19) Медленно метод Свернуть() работал в 7.7. А в 8.0 уже нормально.

(21) Дык кто тебе скажет быстрее или нет? Надо же знать, сколько строк за раз сворачивается и сколько раз сворачивается. Можно сказать, что оптимально будет написать такой запрос, который выдаст уже все свернутое.
24 H A D G E H O G s
 
28.10.13
11:28
"Что ж такое: были же люди как люди, и вдруг все сразу стали кретины. Парадокс! …" © Брат-2

Фееричный аленистый метод Гения порадовал, спасибо.
Про индексы, придуманные для свертки - тоже поржал, жгите еще.
25 Infsams654
 
28.10.13
11:38
(0) А зачем НайтиСтроки из ТаблицаПередела, а потом еще раз из ТаблицаПредела их Скопировать?
Можно сразу
Скопировать(<ПараметрыОтбора>, <Колонки>)
26 Infsams654
 
28.10.13
11:39
(25) блин, из ТаблицаПроизводства
27 dk
 
28.10.13
11:53
про типизацию уже было?
28 Fragster
 
гуру
28.10.13
11:55
вот у меня есть вопрос: как ускорить соединение ТЗ которые источники данных в СКД?
29 H A D G E H O G s
 
28.10.13
11:56
(27) Что там не так с типизацией?
30 Coldboy
 
28.10.13
12:04
(22) см (7)
31 kiruha
 
28.10.13
12:08
(30)
Остатки() - это неявный запрос.
Пишешь свой запрос(он выполняется столько же) и там вместо последующего свернуть - сгруппировать как хошь. Если нужны несколько разрезов свертки - итоги.
Если и тоги не годятся - помещаешь во временную и оттуда в пакете в разных комбинациях группирования
32 Bober
 
28.10.13
12:11
(28) сложные условия соединения?
33 Coldboy
 
28.10.13
12:12
(30) за что вы так со мной?
34 kiruha
 
28.10.13
13:01
В смысле ?
Если хочешь ускорить - не метод сгруппировать нужно, а по возможности все преобразования в запросе сделать - это вплне возможно, хотя бывает очень сложно
AdBlock убивает бесплатный контент. 1Сергей