Имя: Пароль:
1C
1С v8
Вопрос по ComОбъекту и Javascript
0 Cmyk32
 
01.12.11
23:10
Доброй ночи) Подскажите. Работаю с яндекс-картами; пользователи импортируют файл со списком адресов, отображают на карте, вручную выбирают группу адресов и назначают им курьеров. Отмеченные адреса я добавляю в массив и функцией retTo1C() передаю в 1С. НО) Если проделать операцию 1 раз, то МассивЗаказов - содержит весь набор данных, при последующих обработках переменная не меняется. Почему? Может надо как-то "освободить" ComОбъект?
Процедура
МассивЗаказов = ЭлементыФормы.Карта.Документ.parentWindow.eval("retTo1C()");    

//Переношу в список значений    
   СПСЗаказов = новый СписокЗначений;
   
   Пока 1 = 1 цикл
       Попытка            СПСЗаказов.Добавить(МассивЗаказов[строка(инд)]);        
       Исключение
           прервать;
       КонецПопытки
   КонецЦикла;
...
1 Ковычки
 
01.12.11
23:11
ссылка поди
2 Cmyk32
 
01.12.11
23:12
(1) Привет, поясни плиз
3 Cmyk32
 
02.12.11
14:37
апчег
4 Buster007
 
02.12.11
14:53
Пока 1 = 1 цикл
       Попытка            СПСЗаказов.Добавить(МассивЗаказов[строка(инд)]);        
а вот это что?...
5 Cmyk32
 
02.12.11
15:03
(4) Переношу из массив в список значений.
6 Buster007
 
02.12.11
15:08
(5) а функция Количество() не работает?
7 Buster007
 
02.12.11
15:09
+(6) или там массив не массив?)
8 Cmyk32
 
02.12.11
15:46
(6) Не работает. МассивЗаказов - это COMОбъект. Никакой перебор не работает, поэтому такой нелепый цикл.
9 Ковычки
 
02.12.11
15:49
ЭлементыФормы.Карта.Документ.parentWindow.eval("retTo1C().toString()");
10 Ковычки
 
02.12.11
15:57
ЭлементыФормы.Карта.Документ.parentWindow.eval("var x=retTo1C();var y=x;"))
11 AlexTim03
 
02.12.11
17:43
По поводу цикла: обычно у ComОбъекта есть метод lenght, соответственно цикл организуется.
После перебора присвоить МассивЗаказов = Неопределено.

А еще правильнее объявить в данной процедуре
Перем МассивЗаказов
и дальше с ней работать, при каждом вызове она заново будет инициализироваться
12 Cmyk32
 
02.12.11
17:46
(9) Да ну. Со строкой работать?
13 Cmyk32
 
02.12.11
17:51
(11) Не работает length. Ругается. А с "Перем" результата нет - попробовала. Спасибо
14 rs_trade
 
02.12.11
18:35
Вот так работает

Результат = Новый Массив;
МассивЗаказов = Док.parentWindow.getOrderArray(Результат);


В Javascript

function getOrderArray(result)
{  
  result.add(1);
  result.add(2);
  result.add(3);

  return(result);
}
15 Cmyk32
 
02.12.11
18:49
(14) Андрей, спасибо, пробую
16 Cmyk32
 
06.12.11
11:36
(14) Спааааасибо тебе!!)