Имя: Пароль:
1C
1С v8
Помогите с тривиальной задачей
0 Godofsin
 
20.07.11
13:05
Доброго время суток! Задача: Перенести некоторые колонки таб. части документа в другой, идентичный. Я крайне слаб в программировании на v8. Попробовал так:

   ДокОт = ПолеВвода1.ПолучитьОбъект();
   ДокКуда = ПолеВвода2.ПолучитьОбъект();
   Для к=0 по  ДокОт.Товары.Количество() цикл
       От = ДокОт.Товары.Получить(к);
       Куда = ДокКуда.Товары.Получить(к);
       Куда.Номенклатура = От.Номенклатура;
       Куда.ЕдиницаИзмерения = От.ЕдиницаИзмерения;
   КонецЦикла;
   ДокКуда.Записать();

Ошибка:
От = ДокОт.Товары.Получить(к);

Значение индекса выходит за границы диапазона

Что не так?
1 BigRoma
 
20.07.11
13:06
действительно, тривиально
2 vde69
 
20.07.11
13:06
в новом документе сколько строк?
3 Wobland
 
20.07.11
13:07
по Количество()-1?
4 Milok
 
20.07.11
13:07
Если табличные части одиннаковые - то методы "Выгрузить" и "Загрузить"
5 poligraf
 
20.07.11
13:07
Не так - индекс вышел за границы массива...
Подумай, нумерация в массивах начинается с 0, а ты цикл делаешь по количество строк. Какой последний индекс будет?

И цикл по обходу коллекции значений:
Для Каждого ЗдесьИтератор Из Колеекция Цикл
КонецЦикла
6 szhukov
 
20.07.11
13:12
(0) Если новый документ строк не имеет то лучше сделать так:

Для Каждого СтрокаДокумента Из ДокОт.Товары Цикл

 НоваяСтрока = ДокКуда.Добавить();
 ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаДокумента);

КонецЦикла;

ДокКуда.Записать();

Если же новый документ уже заполнен, тогда связать по номеру строки СтрокаДокумента.НомерСтроки
7 Godofsin
 
20.07.11
13:12
(3)(5) Блин, вот я втупливаю под конец рабочего дня:) Спасибо!