|
c сокращение прохождения времени запроса | ☑ | ||
---|---|---|---|---|
0
borzay999
09.04.13
✎
12:14
|
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = &Номенклатура | И (Номенклатура.Ссылка В ИЕРАРХИИ (&Группа1) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа2) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа3) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа4) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа5) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа6) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа9) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа10) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа11) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа12) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа13) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа14) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа7) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа8))"; Запрос.УстановитьПараметр("Номенклатура",Номенклатура); Запрос.УстановитьПараметр("Группа1",Справочники.Номенклатура.НайтиПоКоду("00002783"));//Ноутбуки Запрос.УстановитьПараметр("Группа2",Справочники.Номенклатура.НайтиПоКоду("10002129")); Запрос.УстановитьПараметр("Группа3",Справочники.Номенклатура.НайтиПоКоду("10020261")); Запрос.УстановитьПараметр("Группа4",Справочники.Номенклатура.НайтиПоКоду("00011680")); Запрос.УстановитьПараметр("Группа5",Справочники.Номенклатура.НайтиПоКоду("00000001")); Запрос.УстановитьПараметр("Группа6",Справочники.Номенклатура.НайтиПоКоду("00000501")); Запрос.УстановитьПараметр("Группа7",Справочники.Номенклатура.НайтиПоКоду("00000457")); Запрос.УстановитьПараметр("Группа8",Справочники.Номенклатура.НайтиПоКоду("10021521")); Запрос.УстановитьПараметр("Группа9",Справочники.Номенклатура.НайтиПоКоду("00012959")); Запрос.УстановитьПараметр("Группа10",Справочники.Номенклатура.НайтиПоКоду("10026251")); Запрос.УстановитьПараметр("Группа11",Справочники.Номенклатура.НайтиПоКоду("00001832")); Запрос.УстановитьПараметр("Группа12",Справочники.Номенклатура.НайтиПоКоду("00000171")); Запрос.УстановитьПараметр("Группа13",Справочники.Номенклатура.НайтиПоКоду("00008886")); Запрос.УстановитьПараметр("Группа14",Справочники.Номенклатура.НайтиПоКоду("10053630")); Выборка=Запрос.Выполнить().Выбрать(); Если выборка.Количество()>0 тогда СтрСв = ВернутьСтрокуСвойств(Номенклатура); Если СтрСв = "" Тогда Продолжить; КонецЕсли; результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; очень долго проходит, как сократить какие будут варианты? |
|||
1
Wobland
09.04.13
✎
12:16
|
убрать второе условие целиком
|
|||
2
palpetrovich
09.04.13
✎
12:17
|
быстрее не знаю, но короче однозначно :)
| Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (Номенклатура.Ссылка В ИЕРАРХИИ &СписокГрупп) |
|||
3
borzay999
09.04.13
✎
12:21
|
1 убрать второе условие целиком?
2 все-равно будет ведь проверять весь список групп( |
|||
4
Wobland
09.04.13
✎
12:22
|
(3) это был намёк на бессмысленность первого
|
|||
5
Wobland
09.04.13
✎
12:23
|
или что вообще надо? проверит вхождение этой номенклатуры в эти группы?
|
|||
6
pessok
09.04.13
✎
12:23
|
ОМФГ...
|
|||
7
alkov
09.04.13
✎
12:27
|
Посоны из 1С пишут, что вместо ИЛИ в условии кошернее использовать объединение
|
|||
8
borzay999
09.04.13
✎
12:27
|
да проверить и записать его.проверка проходит в файле и в др файл записывается
|
|||
9
borzay999
09.04.13
✎
12:28
|
7 какое можежт быть объединение , если мне нужно пройти проверку на или?
|
|||
10
Wobland
09.04.13
✎
12:29
|
(8) полный код не устроит?
|
|||
11
borzay999
09.04.13
✎
12:31
|
9000 номенклатуры, проходит через этот запрос 4 часа
|
|||
12
pessok
09.04.13
✎
12:31
|
(11) из-за ИЛИ. (2) пробовал?
|
|||
13
azernot
09.04.13
✎
12:32
|
Дык может стоит одним запросом проверять все 9000 элементов?
|
|||
14
azernot
09.04.13
✎
12:33
|
А лучше дейсвтительно искать код нужных групп в полном коде как советует (10).
|
|||
15
Широкий
09.04.13
✎
12:33
|
"В иерархии" - тут в цикле строиться временная таблица.. а ты их вон сколько закинул
|
|||
16
В тылу врага
09.04.13
✎
12:35
|
тут проще без цикла
|
|||
17
Murdoch
09.04.13
✎
12:35
|
(1)
Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = &Номенклатура вот этого достаточно. дальнейший код запроса и подстановка групп в данном контексте бессмысленна |
|||
18
В тылу врага
09.04.13
✎
12:35
|
+(16) без запроса
|
|||
19
В тылу врага
09.04.13
✎
12:35
|
(17) а этот запрос тоже бессмысленен, если ссылка не битая
|
|||
20
GANR
09.04.13
✎
12:36
|
(0) а так?
Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = &Номенклатура | И Номенклатура.Ссылка В ИЕРАРХИИ(&МассивГрупп)"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); МассивГрупп = Новый Массив; МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00002783")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10002129")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10020261")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00011680")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000501")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000457")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10021521")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00012959")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10026251")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00001832")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000171")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00008886")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10053630")); Запрос.УстановитьПараметр("МассивГрупп", МассивГрупп); А вообще выкинь В ИЕРАРХИИ из запроса. |
|||
21
azernot
09.04.13
✎
12:37
|
+(14) Только искать со слэшами, чтобы код "000010" не был эквивалентен "1000010":
Найти("/"+ПолныйКод,"/"+"000010"+"/") |
|||
22
GANR
09.04.13
✎
12:38
|
(20) + ВернутьСтрокуСвойств(Номенклатура); - по получение данных в цикле?
|
|||
23
GANR
09.04.13
✎
12:42
|
Имхо, надо:
1. Избавиться от В ИЕРАРХИИ 2. Избавиться от ВернутьСтрокуСвойств(Номенклатура) в цикле |
|||
24
borzay999
09.04.13
✎
12:42
|
это все так же по времени будет проходить.
|
|||
25
В тылу врага
09.04.13
✎
12:43
|
проще в цикле проходиться по родителям и сравнивать с данным списком
|
|||
26
borzay999
09.04.13
✎
12:43
|
наверное буду делать временную таблицу
|
|||
27
GANR
09.04.13
✎
12:43
|
(23) Пардон, п.2 НЕ в цикле - там Если
|
|||
28
GANR
09.04.13
✎
12:43
|
(26) с какой целью?
|
|||
29
borzay999
09.04.13
✎
12:44
|
25 цикл займет не меньше времени
|
|||
30
borzay999
09.04.13
✎
12:45
|
и проверка по если тоже займет много времени, а временная табл должна сократить время прохождения.
|
|||
31
GANR
09.04.13
✎
12:46
|
(30) за счет чего, вопрос?
|
|||
32
azernot
09.04.13
✎
12:46
|
Мысли вслух попёрли... Оставим автора наедине с собой, она не готова воспринимать информацию.
|
|||
33
borzay999
09.04.13
✎
12:47
|
пробовать то надо, по если и по массиву пробовали уже
|
|||
34
В тылу врага
09.04.13
✎
12:47
|
(29) цикл?
Родитель = Родитель.Родитель; .... надеюсь этот запрос не в цикле? |
|||
35
borzay999
09.04.13
✎
12:47
|
я вам доверяю просто ваши варианты опробованны, тоже по 4 часа
|
|||
36
borzay999
09.04.13
✎
12:48
|
34 не поняла
|
|||
37
GANR
09.04.13
✎
12:51
|
(36) код из (20) ускорил что-нибудь ???
запрос из (0) не в цикле выполняется? |
|||
38
borzay999
09.04.13
✎
12:52
|
Процедура ВыполнитьОбработку2() Экспорт
РабочийКаталог = "C:\SendPrice\"; имяФайла = РабочийКаталог + "nomenc.txt"; ТекДок = Новый ТекстовыйДокумент; ТекДок.Прочитать(имяФайла); КоличествоСтрок = ТекДок.КоличествоСтрок(); Результат = Новый ТекстовыйДокумент; //Результат.Прочитать(РабочийКаталог + "ext_attr.txt"); Для сч = 1 По КоличествоСтрок Цикл Состояние(Строка(сч)+"/"+Строка(КоличествоСтрок)); Строка = ТекДок.ПолучитьСтроку(сч); Поз = Найти(Строка,";"); Строка = Прав(Строка,СтрДлина(Строка)-Поз); Поз = Найти(Строка,";"); Код = Лев(Строка,Поз-1); Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = &Номенклатура | И (Номенклатура.Ссылка В ИЕРАРХИИ (&Группа1) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа2) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа3) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа4) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа5) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа6) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа9) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа10) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа11) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа12) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа13) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа14) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа7) | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа8))"; Запрос.УстановитьПараметр("Номенклатура",Номенклатура); Запрос.УстановитьПараметр("Группа1",Справочники.Номенклатура.НайтиПоКоду("00002783"));//Ноутбуки Запрос.УстановитьПараметр("Группа2",Справочники.Номенклатура.НайтиПоКоду("10002129"));//Нетбуки Запрос.УстановитьПараметр("Группа3",Справочники.Номенклатура.НайтиПоКоду("10020261"));//Планшетные компьютеры Запрос.УстановитьПараметр("Группа4",Справочники.Номенклатура.НайтиПоКоду("00011680"));//Телевизоры Запрос.УстановитьПараметр("Группа5",Справочники.Номенклатура.НайтиПоКоду("00000001"));//Материнские платы Запрос.УстановитьПараметр("Группа6",Справочники.Номенклатура.НайтиПоКоду("00000501"));//Видеокарты Запрос.УстановитьПараметр("Группа7",Справочники.Номенклатура.НайтиПоКоду("00000457"));//Жесткие диски Запрос.УстановитьПараметр("Группа8",Справочники.Номенклатура.НайтиПоКоду("10021521"));//Сотовые телефоны Запрос.УстановитьПараметр("Группа9",Справочники.Номенклатура.НайтиПоКоду("00012959"));//Коммуникаторы Запрос.УстановитьПараметр("Группа10",Справочники.Номенклатура.НайтиПоКоду("10026251"));//Внешние жесткие диски Запрос.УстановитьПараметр("Группа11",Справочники.Номенклатура.НайтиПоКоду("00001832"));//Фотоаппараты Запрос.УстановитьПараметр("Группа12",Справочники.Номенклатура.НайтиПоКоду("00000171"));//Процессоры Запрос.УстановитьПараметр("Группа13",Справочники.Номенклатура.НайтиПоКоду("00008886"));//Жесткие диски для ноутбуков Запрос.УстановитьПараметр("Группа14",Справочники.Номенклатура.НайтиПоКоду("10053630"));//Ультрабуки Выборка=Запрос.Выполнить().Выбрать(); Если выборка.Количество()>0 тогда СтрСв = ВернутьСтрокуСвойств(Номенклатура); Если СтрСв = "" Тогда Продолжить; КонецЕсли; результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; КонецЦикла; ИмяРезультат = РабочийКаталог + "ext_attr.txt"; Результат.Записать(ИмяРезультат,КодировкаТекста.ANSI); ЗапуститьПриложение(РабочийКаталог + "curlXLS.bat " + ИмяРезультат, РабочийКаталог, Истина); HTTP = Новый HTTPСоединение("oldsite.snowbars.ru"); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".html"); HTTP.Получить("update.php", ИмяВременногоФайла); КонецПроцедуры |
|||
39
В тылу врага
09.04.13
✎
12:52
|
МассивРодителей = .... //тут хранятся твои группы
Ссылка = ... //исходная ссылка Родитель = Ссылка.Родитель; Нашлим = Ложь; Пока ЗначениеЗаполнено(Родитель) Цикл Если МассивРодителей.Найти(Родитель)<>Неопределено Тогда Нашли = Истина; Прервать; КонецЕсли; Родитель = Родитель.Родитель; КонецЦикла; |
|||
40
borzay999
09.04.13
✎
12:52
|
38 это полный код
|
|||
41
В тылу врага
09.04.13
✎
12:52
|
(38) запрос в цикле, на кол!
|
|||
42
GANR
09.04.13
✎
12:53
|
(38) А почему это должно работать быстро?????
|
|||
43
borzay999
09.04.13
✎
12:59
|
42 хочеться)
|
|||
44
azernot
09.04.13
✎
13:01
|
Результат = Новый ТекстовыйДокумент;
//Результат.Прочитать(РабочийКаталог + "ext_attr.txt"); МассивКодовГрупп = Новый Массив(); //Желательно расположить перечень групп от верхнего к нижнему МассивКодовГрупп.Добавить("00002783");//Ноутбуки МассивКодовГрупп.Добавить("10002129");//Нетбуки МассивКодовГрупп.Добавить("10020261");//Планшетные компьютеры МассивКодовГрупп.Добавить("00011680");//Телевизоры МассивКодовГрупп.Добавить("00000001");//Материнские платы МассивКодовГрупп.Добавить("00000501");//Видеокарты МассивКодовГрупп.Добавить("00000457");//Жесткие диски МассивКодовГрупп.Добавить("10021521");//Сотовые телефоны МассивКодовГрупп.Добавить("00012959");//Коммуникаторы МассивКодовГрупп.Добавить("10026251");//Внешние жесткие диски МассивКодовГрупп.Добавить("00001832");//Фотоаппараты МассивКодовГрупп.Добавить("00000171");//Процессоры МассивКодовГрупп.Добавить("00008886");//Жесткие диски для ноутбуков МассивКодовГрупп.Добавить("10053630");//Ультрабуки Для сч = 1 По КоличествоСтрок Цикл Состояние(Строка(сч)+"/"+Строка(КоличествоСтрок)); Строка = ТекДок.ПолучитьСтроку(сч); Поз = Найти(Строка,";"); Строка = Прав(Строка,СтрДлина(Строка)-Поз); Поз = Найти(Строка,";"); Код = Лев(Строка,Поз-1); Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); ПолныйКод = "/"+Номенклатура.ПолныйКод(); Для каждого КодГруппы Из МассивКодовГрупп Цикл Если Найти(КодГруппы,ПолныйКод)>0 Тогда СтрСв = ВернутьСтрокуСвойств(Номенклатура); Если НЕ СтрСв = "" Тогда результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; Прервать; КонецЕсли; КонецЦикла; КонецЦикла; ИмяРезультат = РабочийКаталог + "ext_attr.txt"; |
|||
45
GANR
09.04.13
✎
13:01
|
Процедура ВыполнитьОбработку2() Экспорт
РабочийКаталог = "C:\SendPrice\"; имяФайла = РабочийКаталог + "nomenc.txt"; ТекДок = Новый ТекстовыйДокумент; ТекДок.Прочитать(имяФайла); КоличествоСтрок = ТекДок.КоличествоСтрок(); Результат = Новый ТекстовыйДокумент; //Результат.Прочитать(РабочийКаталог + "ext_attr.txt"); МассивНоменклатуры = Новый Массив; Для сч = 1 По КоличествоСтрок Цикл Состояние(Строка(сч)+"/"+Строка(КоличествоСтрок)); Строка = ТекДок.ПолучитьСтроку(сч); Поз = Найти(Строка,";"); Строка = Прав(Строка,СтрДлина(Строка)-Поз); Поз = Найти(Строка,";"); Код = Лев(Строка,Поз-1); Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); МассивНоменклатуры.Добавить(Номенклатура); КонецЦикла; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В(&МассивНоменклатуры) | И Номенклатура.Ссылка В ИЕРАРХИИ(&МассивГрупп)"; Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры); МассивГрупп = Новый Массив; МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00002783")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10002129")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10020261")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00011680")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000501")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000457")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10021521")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00012959")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10026251")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00001832")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000171")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00008886")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10053630")); Выборка=Запрос.Выполнить().Выбрать(); Если выборка.Количество()>0 тогда СтрСв = ВернутьСтрокуСвойств(Номенклатура); Если СтрСв <> "" Тогда результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; КонецЕсли; ИмяРезультат = РабочийКаталог + "ext_attr.txt"; Результат.Записать(ИмяРезультат,КодировкаТекста.ANSI); ЗапуститьПриложение(РабочийКаталог + "curlXLS.bat " + ИмяРезультат, РабочийКаталог, Истина); HTTP = Новый HTTPСоединение("oldsite.snowbars.ru"); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".html"); HTTP.Получить("update.php", ИмяВременногоФайла); КонецПроцедуры |
|||
46
GANR
09.04.13
✎
13:02
|
Пока выборка.Следующий() Цикл
СтрСв = ВернутьСтрокуСвойств(выборка.Ссылка); Если СтрСв <> "" Тогда результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; КонецЕсли; |
|||
47
azernot
09.04.13
✎
13:04
|
(45) Можно вместо
Номенклатура.Ссылка В(&МассивНоменклатуры) сделать Номенклатура.Код в (&МассивКодовНоменклатуры) |
|||
48
GANR
09.04.13
✎
13:05
|
(0) Вот так заработало? Извиняюсь за ошибки, конечно, но идея-то хоть понятна? (47) можно
Процедура ВыполнитьОбработку2() Экспорт РабочийКаталог = "C:\SendPrice\"; имяФайла = РабочийКаталог + "nomenc.txt"; ТекДок = Новый ТекстовыйДокумент; ТекДок.Прочитать(имяФайла); КоличествоСтрок = ТекДок.КоличествоСтрок(); Результат = Новый ТекстовыйДокумент; //Результат.Прочитать(РабочийКаталог + "ext_attr.txt"); МассивНоменклатуры = Новый Массив; Для сч = 1 По КоличествоСтрок Цикл Состояние(Строка(сч)+"/"+Строка(КоличествоСтрок)); Строка = ТекДок.ПолучитьСтроку(сч); Поз = Найти(Строка,";"); Строка = Прав(Строка,СтрДлина(Строка)-Поз); Поз = Найти(Строка,";"); Код = Лев(Строка,Поз-1); Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Код); МассивНоменклатуры.Добавить(Номенклатура); КонецЦикла; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В(&МассивНоменклатуры) | И Номенклатура.Ссылка В ИЕРАРХИИ(&МассивГрупп)"; Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры); МассивГрупп = Новый Массив; МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00002783")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10002129")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10020261")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00011680")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000501")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000457")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10021521")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00012959")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10026251")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00001832")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000171")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("00008886")); МассивГрупп.Добавить(Справочники.Номенклатура.НайтиПоКоду("10053630")); Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтрСв = ВернутьСтрокуСвойств(Выборка.Ссылка); Если СтрСв <> "" Тогда результат.ДобавитьСтроку(Код+";"+СтрСв); КонецЕсли; КонецЦикла; ИмяРезультат = РабочийКаталог + "ext_attr.txt"; Результат.Записать(ИмяРезультат,КодировкаТекста.ANSI); ЗапуститьПриложение(РабочийКаталог + "curlXLS.bat " + ИмяРезультат, РабочийКаталог, Истина); HTTP = Новый HTTPСоединение("oldsite.snowbars.ru"); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".html"); HTTP.Получить("update.php", ИмяВременногоФайла); КонецПроцедуры |
|||
49
palpetrovich
09.04.13
✎
13:09
|
(48)Еще можно заменить:
Поз = Найти(Строка,";"); Строка = Прав(Строка,СтрДлина(Строка)-Поз); Поз = Найти(Строка,";"); Код = Лев(Строка,Поз-1); На: РазбитаяСтр = СтрЗаменить(Строка, ";", Символы.ПС); Код = СтрПолучитьСтроку(РазбитаяСтр, 2); ...и проверить как скажется на времени работы |
|||
50
GANR
09.04.13
✎
13:35
|
(49) скажется, конечно, но не так сильно, как запрос с В ИЕРАРХИИ в цикле
|
|||
51
palpetrovich
09.04.13
✎
13:55
|
(50) НЕ, ну (38) - вне конкуренции ;)
|
|||
52
borzay999
09.04.13
✎
15:43
|
50 что вы хотите, сама на это плохо смотрю, просто в той компании где я работаю, по моему приходу так уже было(и чесно, только по вашей наводке сегодня заметила что запрос в цикле(
|
|||
53
GANR
09.04.13
✎
15:56
|
(52) Переделай на (48) с учетом рекомендаций (47)(49).
|
|||
54
borzay999
09.04.13
✎
16:26
|
спасибо огромное!
|
|||
55
GANR
09.04.13
✎
19:06
|
(49) Кстати, СтрПолучитьСтроку до 8.2.18 медленнее, чем Текст,ПолучитьСтроку(Сч) v8: Функция СтрПолучитьСтроку вот v8: v8: Вcтречаем! Версия 8.2.18, вышла в релизе 8.2.18.61
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |