|
Можно ли оптимизировать выгрузку из ТаблицыЗначений? | ☑ | ||
---|---|---|---|---|
0
Anabella
21.04.16
✎
14:56
|
Необходимо данные таблицы значений передать в строку json. Решается задача в цикле:
Для каждого СтрТЗ из ТаблицаЗаказов Цикл Строка = Строка + Строка("["+Период + "," + КоличествоПродано + "," + Символ(34)+СтрТЗ.Дилеры+Символ(34)+","+СуммаПродано+"],"); КонецЦикла; Получается строка вида: [[20160104,1,"Москва",3240],[20160104,3,"Москва",3452],[20160105,1,"Питер", 4201]] На эту строку уходит 70% времени, гораздо больше, чем на собственно запрос. Можно ли как-то оптимизировать или изменить сие ? |
|||
1
H A D G E H O G s
21.04.16
✎
14:58
|
Записывайте предварительно в файл через ЗаписьТекста()
На крайняк компонуйте в отдельную переменную внутри цикла, потом эту переменную скидывайте в общую переменную. |
|||
2
H A D G E H O G s
21.04.16
✎
14:58
|
Ну или пользуйте внешнюю компоненту.
|
|||
3
Anabella
21.04.16
✎
15:01
|
(1)Попробую через ЗаписьТекста(), спасибо.
А насчет "компонуйте в отдельную переменную внутри цикла, потом эту переменную скидывайте в общую переменную" - разве сейчас не то же самое, только немного проще? |
|||
4
asady
21.04.16
✎
15:03
|
(0) хотелось бы глянуть на процесс получения данной ТЗ - если это запрос - то текст запроса.
если нет - то почему не запрос? и почему ТЗ а не банальная выборка? |
|||
5
1cVandal
21.04.16
✎
15:03
|
(3) то же самое
|
|||
6
RomanYS
21.04.16
✎
15:04
|
СтрТЗ.Дилеры - это ссылка или строка?
Если ссылка - то получать представление в запросе |
|||
7
Anabella
21.04.16
✎
15:08
|
(4) Да, ТЗ получаю в запросе. Скорость срабатывания запроса меня устраивает (Запрос выполняется за 3 секунды, а эта строка заполняется за 30 сек). Боюсь если я выложу текст запроса всё сведется к обсуждению косяков запроса, а мне бы ТЗ в json передать :)
Не совсем поняла насчет выборки. (6) Это строка. |
|||
8
Serginio1
21.04.16
✎
15:08
|
Используй ЗаписьXML ЗаписатьБезОбработки
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); Для сч = 1 по КоличествоИтераций Цикл ЗаписьXML.ЗаписатьБезОбработки(Строка(сч)); КонецЦикла; Стр = ЗаписьXML.Закрыть(); http://catalog.mista.ru/public/448668/ |
|||
9
Serginio1
21.04.16
✎
15:10
|
||||
10
Anabella
21.04.16
✎
15:10
|
(9) Огромное спасибо за ссылку!
|
|||
11
Serginio1
21.04.16
✎
15:11
|
Или сделай структуру, а из неё получи JSON
|
|||
12
Anabella
21.04.16
✎
17:12
|
(9) Сделала всё через ЗаписьXML, теперь выполняется за 0,3 сек!!! Спасибо огромное всем!
|
|||
13
Drac0
21.04.16
✎
17:38
|
Кстати, если версия платформы позволяет, то можно попробовать метод СтрСоединить(). Не проверял быстродействие, правда.
|
|||
14
mingw
21.04.16
✎
17:41
|
Удивляют конструкции вида Строка = Строка + Строка(...);
|
|||
15
mingw
21.04.16
✎
17:43
|
(14)+ Интереснее только
Функция Функция() Функция = Функция(...); Возврат Функция; КонецФункции |
|||
16
mingw
21.04.16
✎
17:44
|
(15) Сорри. Лучше так.
Функция Функция(Функция) Функция = Функция(...); Возврат Функция; КонецФункции |
|||
17
Anabella
26.04.16
✎
09:57
|
(16) А как правильно? Подскажите, пожалуйста
|
|||
18
hhhh
26.04.16
✎
10:02
|
(17) ну вы миллионы символов гоняете туда сюда. Это правильно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |