Имя: Пароль:
1C
1С v8
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