|
заполнить ТЗ данными из массива | ☑ | ||
---|---|---|---|---|
0
Вебер
01.09.15
✎
05:36
|
закидываю ТЗ в массив, манипулирую массивом.Теперь хочу полученный массив закинуть обратно в ТЗ. Делаю так
ДанныеНаборовЗаписей.Хозрасчетный.Очистить(); Для Каждого Строка Из Строки Цикл НоваястрокаТЗ = ДанныеНаборовЗаписей.Хозрасчетный.Добавить(); ЗаполнитьЗначенияСвойств(НоваястрокаТЗ , Строка); КонецЦикла; но при использовании Очистить() для ТЗ, массив тоже очищается 0_0 (пишет-строка была удаленна) не хочется изобретать велосипед.... посоветуйте что нибудь адекватное ? |
|||
1
GreatOne
01.09.15
✎
05:39
|
1) отладчик
2) используй нормальные имена переменных. СтрокаТЗ к примеру. ТЗ вместе Строки. |
|||
2
Альбатрос
01.09.15
✎
05:54
|
(0) Потому что в массиве хранятся ссылки на строки ТЗ
|
|||
3
Брегорьян
01.09.15
✎
05:55
|
манипулировать ТЗ - не вариант?
|
|||
4
Вебер
01.09.15
✎
06:57
|
при использовании ПостроительЗапроса я получу свою ТЗ или копию ?
|
|||
5
GreatOne
01.09.15
✎
07:05
|
(4) можно вообще ничего не получить
|
|||
6
Cube
01.09.15
✎
07:35
|
Что-то мне подсказывает, что ТС получил массив строк своей ТЗ методом НайтиСтроки и, не изучив СП, удивляется полученному результату... Если так, то он даже и не ведает, что загружать назад не надо, "оно само" (с) там поменялось уже...
|
|||
7
Вебер
01.09.15
✎
09:02
|
(6) проверил, надо, "оно само" туда не попадает
вот весь код Отбор = Новый Структура(); Отбор.Вставить("СчетКт",ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01")); Строки = ДанныеНаборовЗаписей.Хозрасчетный.НайтиСтроки(Отбор); ИндексЭлемента=0; числоСтрок= Строки.количество(); Пока ИндексЭлемента<числоСтрок Цикл Если (Строки[ИндексЭлемента] .СубконтоКт1= УслугиГПМ) или (Строки[ИндексЭлемента] .СубконтоКт1=ТекущеееСодержаниеПодъездныхПутей) Тогда Строки.удалить(ИндексЭлемента); числоСтрок=числоСтрок-1; ИндексЭлемента=ИндексЭлемента-1; Продолжить; КонецЕсли; ИндексЭлемента=ИндексЭлемента+1; КонецЦикла; |
|||
8
Брегорьян
01.09.15
✎
09:06
|
СтрокиСовсемНеДерева = ДанныеНаборовЗаписей.Хозрасчетный.НайтиСтроки(Отбор);
Для Каждого ТекСтрока Из СтрокиСовсемНеДерева Цикл ДанныеНаборовЗаписей.Хозрасчетный.Удалить(ТекСтрока); не? |
|||
9
Брегорьян
01.09.15
✎
09:06
|
+(8) ну или на худой конец загнать движения в ТЗ, сделать (8) и загрузить ТЗ обратно
|
|||
10
Cube
01.09.15
✎
09:12
|
(7) Ха))))) Я телепат 80 лвл!))
А ты делай так: Отбор = Новый Структура(); Отбор.Вставить("СчетКт",ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01")); НайденныестрокиСтроки = ДанныеНаборовЗаписей.Хозрасчетный.НайтиСтроки(Отбор); Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл Если НайденнаяСтрока.СубконтоКт1= УслугиГПМ ИЛИ Найденнаястрока.СубконтоКт1=ТекущеееСодержаниеПодъездныхПутей Тогда ДанныеНаборовЗаписей.Хозрасчетный.Удалить(НайденнаяСтрока); КонецЕсли; КонецЦикла; И не надо лохматить бабушку... |
|||
11
Альбатрос
01.09.15
✎
09:13
|
(10) Я намекал ему еще в (2)
|
|||
12
Cube
01.09.15
✎
09:14
|
Кстати, не люблю лишние переменные... Поэтому вместо этого
Отбор = Новый Структура(); Отбор.Вставить("СчетКт",ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01")); НайденныестрокиСтроки = ДанныеНаборовЗаписей.Хозрасчетный.НайтиСтроки(Отбор); Делай так НайденныестрокиСтроки = ДанныеНаборовЗаписей.Хозрасчетный.НайтиСтроки(Новый Структура("СчетКт", ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01")); |
|||
13
Cube
01.09.15
✎
09:18
|
(11) А, блин, точно, я не заметил)
|
|||
14
Вебер
01.09.15
✎
09:22
|
(10) конечная ТЗ должна быть уже без 44.01, но смысл понятен в цикле перебрать всю ТЗ по нужному условию
|
|||
15
Вебер
01.09.15
✎
09:22
|
(14) голова кругом идет наоборот
|
|||
16
hhhh
01.09.15
✎
09:27
|
(14) ничего не надо перебрать. Просто замени
Строки.удалить(ИндексЭлемента); на ДанныеНаборовЗаписей.Хозрасчетный.Удалить(Строки[ИндексЭлемента]); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |