Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Какими способами можна ускорить работу отчета? / 12 сообщений из 12, страница 1 из 1
11.07.2010, 17:58
    #36734806
Sergey NV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Здравствуйте. совсем недавно с 1с.

Есть отчет. исполняется 1,5 часа.

Когдато в excel(vba) делал отчет. надо было сравнивать кучу ячеек. делался исполнялся он часами.

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

вопрос такой.
как работает функция СоздатьОбъект . (создает временный файл на винте или в оперативке).

Какими способами можна ускорить работу отчета?

спасибо за внимание
...
Рейтинг: 0 / 0
11.07.2010, 18:08
    #36734812
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
что за отчет и на каких данных строится? Телепаты в отпуске почему у вас медленно
...
Рейтинг: 0 / 0
11.07.2010, 18:25
    #36734830
Sergey NV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Господин ПЖчто за отчет и на каких данных строится? Телепаты в отпуске почему у вас медленно

Отчет по Общим продажам.

Фактически идет сравнение записей в двух таблицах по 10000 записей плюс кое какие расчеты.
в результате около 100 000 000 операций.
Ну это, на мое мнение, не настолько много операций чтобы задержывалась обработка на полтора часа.
...
Рейтинг: 0 / 0
11.07.2010, 19:39
    #36734877
Какими способами можна ускорить работу отчета?
что через дня 3 автор удосужится кинуть код отчета.

Каждую из 10000т сравниваете с каждой из 10000т? И наверняка еще и без индексов.


ps Ремонт 2 полос щоссе на мой взгляд еще не является поводом для опоздания пол Москвы... или является?
...
Рейтинг: 0 / 0
12.07.2010, 08:14
    #36735137
DOSS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Список отборных рецептов
...
Рейтинг: 0 / 0
12.07.2010, 08:48
    #36735148
AnyKeyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Sergey NV,
Раз упоминалось СоздатьОбъект(), то делаю вывод, что речь про 1С 7.7. Переменная созданная таким образом предназначена для манипулирования данными и хранится в памяти, хотя работа с этой переменной из языка 1С предполагает периодическое обращение к БД. В общем случе - чем меньше обращений к БД, тем лучше.

Думаю, эквивалент твоих виртуальных массивов в 1С называются "ТаблицаЗначений" - это виртуальная таблица с колонками (возможно, типизированными) и строками. При достаточном объеме памяти операции с виртуальными сущностями быстрее, чем обращения к данным. Поэтому, если у тебя какое-то мутное сравнение выводу предшествует, то можно выгрести себе запросом данных, выгрузить их в ТЗ (в одну или несколько), а уже по ним строить и выводить отчет.

Производительность зависит много от чего, диагностировать узкие места поможет "Замер производительности" в отладчике 1С.

Для больших баз распространено использование SQL формата БД + дополнительной компоненты (библиотеки) 1С++ , что позволяет пулять прямые SQL-запросы к БД (они быстрее Семерочных недозапросов и переборов). Но ты пока с этим не заморачивайся - освой основы сперва, доку покури, свой прикладной алгоритм оптимизируй по возможности, а там сориентируешься.
...
Рейтинг: 0 / 0
12.07.2010, 10:24
    #36735246
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Sergey NV
Какими способами можна ускорить работу отчета?

Нанять программиста 1С или самому долго и мучительно читать мануалы и потом всеравно нанять программиста.
...
Рейтинг: 0 / 0
13.07.2010, 18:40
    #36739221
nicktcher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Злой Бобр,

+100
...
Рейтинг: 0 / 0
13.07.2010, 20:06
    #36739315
Sergey NV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
AnyKeyMan,
Благодарю за ответ.
Чесно говоря чтоб получить конкретный и правильный вопрос надо задать правильный вопрос :).
К сожалению по жызни у меня с этим проблемы..
В принцыпе я получил здесь хорошие совети.
особенно меня просветил:
Переменная созданная таким образом предназначена для манипулирования данными и хранится в памяти
Но в действительности основной причиной был этот кусок кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
		~Метка0:
		ТабТов.ВыбратьСтроки();		

		Пока ТабТов.ПолучитьСтроку()= 1  Цикл
			Если ТабТов.Товар.ЭтоГруппа()= 0  Тогда 
				Если (ТабТов.Приход+ТабТов.Опт+ТабТов.РознСпец+ТабТов.РознОпт+ТабТов.РознМОпт+ТабТов.РознРозн+ТабТов.Розн)= 0  Тогда
					ТабТов.УдалитьСтроку();
					Перейти ~Метка0;
				Конецесли;
			КонецЕсли;
		КонецЦикла;
поставленную задачу решыл и по случаю оптимизировал и другие кусочки кода в отчете.

СПАСИБО
...
Рейтинг: 0 / 0
13.07.2010, 21:00
    #36739363
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
А откуда у вас в тз группы? Что-то мне говорит про неправильный запрос до.

ps Хотя если вдруг группы - то проще отсортировать.
...
Рейтинг: 0 / 0
13.07.2010, 21:39
    #36739403
Sergey NV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Программист 1с,

Чесно говоря- это не мой код. и, я написал бы его по-другому.
но в отсутствии времени я просто ускорил скорость его исполнения исправив кое какие оплошности
...
Рейтинг: 0 / 0
14.07.2010, 09:08
    #36739810
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какими способами можна ускорить работу отчета?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
~Метка0:
ТабТов.ВыбратьСтроки();		

Пока ТабТов.ПолучитьСтроку()= 1  Цикл
	Если ТабТов.Товар.ЭтоГруппа()= 0  Тогда 
            	Если (ТабТов.Приход+ТабТов.Опт+ТабТов.РознСпец
                                   +ТабТов.РознОпт+ТабТов.РознМОпт+ТабТов.РознРозн+ТабТов.Розн)= 0  Тогда
				ТабТов.УдалитьСтроку();
				Перейти ~Метка0;
		Конецесли;
	КонецЕсли;
КонецЦикла;

водку ключница делала ...
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Какими способами можна ускорить работу отчета? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]