|
Помогите с тривиальной задачей
| ☑ |
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) Блин, вот я втупливаю под конец рабочего дня:) Спасибо!
|
|