|
v7: Таблица значений | ☑ | ||
---|---|---|---|---|
0
eshtrey
14.02.14
✎
18:00
|
Стр = 0;
ТемпДоходы.ВыбратьСтроки(); Пока ТемпДоходы.ПолучитьСтроку() = 1 Цикл ТемпДоходы.Итоги.ВыбратьСтроки(); Пока ТемпДоходы.Итоги.ПолучитьСтроку() = 1 Цикл Сообщить("3-"+ТемпДоходы.Итоги.Податам.Итог("Сумма")); КонецЦикла; КонецЦикла; Если ТемпДоходы.НайтиЗначение("грВыручка", Стр, "Группа") = 1 Тогда ТемпДоходы.ПолучитьСтрокуПоНомеру(Стр); Статьи.ПоДатам.Загрузить(ТемпДоходы.ПоДатам); Статьи.Итоги.Загрузить(ТемпДоходы.Итоги); ПоДатам = Статьи.ПоДатам; ПоДатам.ВыбратьСтроки(); Пока ПоДатам.ПолучитьСтроку()=1 Цикл ПроцентТО = 0; ПолучитьАтрибут(ПрефиксРеквизита+ДатаМесяц(ПоДатам.Месяц),ПроцентТО); ПоДатам.Сумма = Окр(ПоДатам.Сумма*ПроцентТО/100,2); КонецЦикла; Статьи.Итоги.ВыбратьСтроки(); Пока Статьи.Итоги.ПолучитьСтроку()=1 Цикл //ПоДатам = Статьи.Итоги.ПоДатам; Статьи.Итоги.ПоДатам.ВыбратьСтроки(); Пока Статьи.Итоги.ПоДатам.ПолучитьСтроку()=1 Цикл ПроцентТО = 0; ПолучитьАтрибут(ПрефиксРеквизита+ДатаМесяц(Статьи.Итоги.ПоДатам.Месяц),ПроцентТО); Статьи.Итоги.ПоДатам.Сумма = Окр(Статьи.Итоги.ПоДатам.Сумма*ПроцентТО/100,2); КонецЦикла; //Расшифровка = Статьи.Итоги.Расшифровка; Статьи.Итоги.Расшифровка.ВыбратьСтроки(); Пока Статьи.Итоги.Расшифровка.ПолучитьСтроку()=1 Цикл Статьи.Итоги.Расшифровка.Расшифровка.УдалитьСтроки(); //ПоДатам = Статьи.Итоги.Расшифровка.ПоДатам; Статьи.Итоги.Расшифровка.ПоДатам.ВыбратьСтроки(); Пока Статьи.Итоги.Расшифровка.ПоДатам.ПолучитьСтроку()=1 Цикл ПроцентТО = 0; ПолучитьАтрибут(ПрефиксРеквизита+ДатаМесяц(Статьи.Итоги.Расшифровка.ПоДатам.Месяц),ПроцентТО); Статьи.Итоги.Расшифровка.ПоДатам.Сумма = Окр(Статьи.Итоги.Расшифровка.ПоДатам.Сумма*ПроцентТО/100,2); КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; ТемпДоходы.ВыбратьСтроки(); Пока ТемпДоходы.ПолучитьСтроку() = 1 Цикл ТемпДоходы.Итоги.ВыбратьСтроки(); Пока ТемпДоходы.Итоги.ПолучитьСтроку() = 1 Цикл Сообщить("4-"+ТемпДоходы.Итоги.Податам.Итог("Сумма")); КонецЦикла; КонецЦикла; |
|||
1
antoneus
14.02.14
✎
18:01
|
Ах вот оно что.
|
|||
2
Wobland
14.02.14
✎
18:03
|
теперь про запросы что-нибудь
|
|||
3
eshtrey
14.02.14
✎
18:04
|
Добрый день! Приведен отрывок процедуры.
Суть проблемы такова, есть ТЗ Статьи со сложной структурой. Есть ТЗ темпДоходы, это таблица получена путем Статьи.Выгрузить(ТемпДоходы). Проблема в том, что в приведенном отрывке меняются значения таблицы Статьи, а в итоге получается, что и в исходной ТЗ ТемпДоходы значения тоже изменились. |
|||
4
eshtrey
14.02.14
✎
18:05
|
Что не понятно, еще поясню
|
|||
5
eshtrey
14.02.14
✎
18:06
|
К примеру
Сообщить("3-"+ТемпДоходы.Итоги.Податам.Итог("Сумма")); выводит 1000 а Сообщить("4-"+ТемпДоходы.Итоги.Податам.Итог("Сумма")); выводит уже 500. |
|||
6
viktor_vv
14.02.14
✎
18:08
|
А точно получена через выгрузить, а не через присвоение значения переменной ?
|
|||
7
Mikeware
14.02.14
✎
18:08
|
(5) "продолжайте наблюдения"©
|
|||
8
viktor_vv
14.02.14
✎
18:09
|
Хотя таки даже при выгрузить, выгрузятся ссылки на вложенные таблицы значений, а не сами таблицы значений. Так что вполне закономерно ведет себя.
|
|||
9
eshtrey
14.02.14
✎
18:10
|
(8) Как побороть эти связи?
|
|||
10
Mikeware
14.02.14
✎
18:11
|
(9) понять, чем отличается таблица от ссылки на нее.
|
|||
11
viktor_vv
14.02.14
✎
18:12
|
Это тебе надо не выгрузить, а циклом обходить, для вложенных таблиц значений в новой ТемпДоходы в ячейку писать СоздатьОбъект("ТаблицаЗначений") и загружать из источника.
А вообще поставь 1С++ используй индексированную таблицу и не мучайся. |
|||
12
viktor_vv
14.02.14
✎
18:19
|
(11)+ Либо пралельно со Статьям формируй ТемпДоходы, либо получай плоскую таблицу статей, выгружай в плоскую ТемпДоходы, потом можно использовать для группировки обеих
http://infostart.ru/public/14140/ это если с 1С++ не заморачиваться. |
|||
13
eshtrey
14.02.14
✎
18:23
|
(12)Спасибо, наверно буду параллельно формировать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |