|
Как добиться такого переноса строк с одной таблицы в другую. | ☑ | ||
---|---|---|---|---|
0
razbiralshik
20.12.17
✎
16:08
|
Две табличеи на форме.
В одной выделяем строки, нажимаем кнопку и выделенные строки должны перенестись с другую табличку а из предыдущей удалится. Сделал так: Для Каждого тек Из Элементы.ВсеТовары.ВыделенныеСтроки Цикл СтрВТ = ТоварыДляПечати.Добавить(); ЗаполнитьЗначенияСвойств(СтрВТ, ВсеТовары[тек]); ВсеТовары.Удалить(ВсеТовары.Индекс(ВсеТовары.НайтиПоИдентификатору(тек))); КонецЦикла; Но он не удаляет все строки и не все переносит. Если без удаления то нормально переносятся. При удалении строки в массиве строк становится на одну строку меньше, непонятно почему. Как сделать правильно? |
|||
1
Lexey_
20.12.17
✎
16:11
|
(0) обратным циклом или удаляй после обхода коллекции
|
|||
2
razbiralshik
20.12.17
✎
16:17
|
(1) после удалять пробовал, результат тотже.
как обратным циклом по выделенным строкам? |
|||
3
Lexey_
20.12.17
✎
16:20
|
(2) показывай, как пробовал
|
|||
4
razbiralshik
20.12.17
✎
16:22
|
Для Каждого тек Из Элементы.ВсеТовары.ВыделенныеСтроки Цикл
СтрВТ = ТоварыДляПечати.Добавить(); ЗаполнитьЗначенияСвойств(СтрВТ, ВсеТовары[тек]); КонецЦикла; Для Каждого тек Из Элементы.ВсеТовары.ВыделенныеСтроки Цикл ВсеТовары.Удалить(тек); КонецЦикла; |
|||
5
X Leshiy
20.12.17
✎
16:23
|
>>При удалении строки в массиве строк становится на одну строку меньше, непонятно почему.
Поржал :) |
|||
6
Lexey_
20.12.17
✎
16:24
|
(4) мда...
|
|||
7
razbiralshik
20.12.17
✎
16:25
|
(5) да понятно почему, ржи, просто я хз как описать чтобы всем угодить
|
|||
8
DexterMorgan
20.12.17
✎
16:25
|
(0) >>При удалении строки в массиве строк становится на одну строку меньше, непонятно почему.
сп ВыделенныеСтроки (SelectedRows) Использование: Только чтение. Описание: Тип: Массив. Содержит массив идентификаторов выделенных строк. Давай думать вместе. "Содержит массив идентификаторов выделенных строк." "При удалении строки в массиве строк становится на одну строку меньше" |
|||
9
razbiralshik
20.12.17
✎
16:25
|
(6) мда.
|
|||
10
razbiralshik
20.12.17
✎
16:26
|
(8) это я прекрасно знаю, вот решение найти пытаюсь
|
|||
11
Lexey_
20.12.17
✎
16:26
|
(4) добавляй в новый массив строки, которые нужно удалить, потом обходи его
|
|||
12
razbiralshik
20.12.17
✎
16:27
|
(11) делал, результата не дало, угадаешь почему?
|
|||
13
Lexey_
20.12.17
✎
16:29
|
(12) показывай, как делал
|
|||
14
razbiralshik
20.12.17
✎
16:29
|
(13) мда
|
|||
15
Lexey_
20.12.17
✎
16:39
|
(12) угадаю - в твоем коде нет НайтиПоИдентификатору()
|
|||
16
Сияющий в темноте
20.12.17
✎
16:39
|
выделенные строки обходим,переносим в новую таблицу и добавляем в отдельный массив
по окончании перебора перебираеи вновь созданный массив и удаляем все строки,которые в нем есть |
|||
17
razbiralshik
20.12.17
✎
16:43
|
(15) не угодал
|
|||
18
Lexey_
20.12.17
✎
16:45
|
(17) код почему не показываешь?
|
|||
19
X Leshiy
20.12.17
✎
16:54
|
(17) Нижилей пирименых )))
|
|||
20
razbiralshik
21.12.17
✎
08:06
|
(18)
МД = Новый Массив; Для Каждого тек Из Элементы.ВсеТовары.ВыделенныеСтроки Цикл СтрВТ = ТоварыДляПечати.Добавить(); ЗаполнитьЗначенияСвойств(СтрВТ, ВсеТовары[тек]); МД.Добавить(тек); КонецЦикла; Для Каждого текс Из МД Цикл ВсеТовары.Удалить(ВсеТовары.НайтиПоИдентификатору(текс)); КонецЦикла; делаешь такой код на обе таблички и потом спустя несколько перекидывай он выдает: {Документ.ПередачаТовараНаДоставку.Форма.ФормаКомплектовочнаяВедомость.Форма(26)}: Индекс находится за границами массива ЗаполнитьЗначенияСвойств(СтрВТ, ВсеТовары[тек]); т.к. индекс не обнуляется... в этом главная проблема... |
|||
21
Lexey_
21.12.17
✎
08:18
|
(20) а почему в одном цикле ты
используешь НайтиПоИдентификатору, а в другом нет? |
|||
22
razbiralshik
21.12.17
✎
08:23
|
(21) ты прав, так сработало, спасибо ))
|
|||
23
Buster007
21.12.17
✎
10:35
|
А если так
Пока Элементы.ВсеТовары.ВыделенныеСтроки.Количество() Цикл ВсеТовары.Удалить(ВсеТовары.НайтиПоИдентификатору(Элементы.ВсеТовары.ВыделенныеСтроки[0])); КонецЦикла; ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |