|
Как объединить 2 таблицы значений? | ☑ | ||
---|---|---|---|---|
0
mirrr
03.09.12
✎
16:37
|
Есть 2 ТЗ, у которых есть колонки: "номенклатура" и "сумма". Как из них сделать одну ТЗ, свернутую по номенклатуре?
|
|||
1
Boleev
03.09.12
✎
16:38
|
да много вариантов
|
|||
2
xenos
03.09.12
✎
16:38
|
Отправить обе в запрос а там объединить
|
|||
3
Heckfy
03.09.12
✎
16:38
|
Запрос-Внутреннее соединение-выгрузить-свернуть.
|
|||
4
Maxus43
03.09.12
✎
16:39
|
(3) и чо будет?
|
|||
5
Maxus43
03.09.12
✎
16:39
|
(2) +1
|
|||
6
ДенисЧ
03.09.12
✎
16:39
|
тзНовая = тз1.Скопировать();
Для Каждого стр из тз2 Цикл ЗАполнитьЗначенияСвойств(тзНовая.Добавить(), стр); КонецЦикла; |
|||
7
mirrr
03.09.12
✎
16:41
|
(2), (3) перед использованием в запросе ТЗ надо проиндексировать?
|
|||
8
unregistered
03.09.12
✎
16:41
|
(0) Из общего модуля типовой бухни:
// Добавляет в таблицу значений строки из другой таблицы значений и // в них значения колонок с совпадающими наименованиями. // Параметры: // ТаблицаИсточник - таблица значений, откуда берутся значения. // ТаблицаПриемник - таблица значений, куда добавляются строки. Процедура ЗагрузитьВТаблицуЗначений(ТаблицаИсточник, ТаблицаПриемник) Экспорт Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриемника, СтрокаТаблицыИсточника); КонецЦикла; КонецПроцедуры // ЗагрузитьВТаблицуЗначений() |
|||
9
Boleev
03.09.12
✎
16:42
|
тупые одинэсники
|
|||
10
unregistered
03.09.12
✎
16:42
|
+ к (8): потом естественно ТвояТЗ.Свернуть("Номенклатура", "Сумма")
|
|||
11
Reset
03.09.12
✎
16:46
|
(6) Можно выпендрюсь? Так в 50% случаев будет немного быстрее :P
тзНовая=?(тз1.Количество()>тз1.Количество(),тз1,тз2).Скопировать(); Для Каждого стр из ?(тз1.Количество()>тз1.Количество(),тз1,тз2) Цикл ЗАполнитьЗначенияСвойств(тзНовая.Добавить(), стр); КонецЦикла; |
|||
12
Reset
03.09.12
✎
16:47
|
выпендрился блин
"тз1.Количество()>тз1.Количество()" --> "тз1.Количество()>тз2.Количество()," |
|||
13
Reset
03.09.12
✎
16:47
|
копипаста зло
|
|||
14
fisher
03.09.12
✎
16:48
|
(7) Не надо. Но лучше делай как в (8). Это более оптимальный в большинстве случаев вариант.
|
|||
15
mirrr
03.09.12
✎
16:51
|
(14) имел ввиду, что перед использованием в запросе поля ТЗ должны быть типизированы.
|
|||
16
Maxus43
03.09.12
✎
16:52
|
(15) да
|
|||
17
palpetrovich
03.09.12
✎
16:59
|
(11) а вот интересно, в строке "Для Каждого стр из ?(тз1.Количество()>тз1.Количество(),тз1,тз2) Цикл" условие будет вычисляться постоянно или один раз? :)
|
|||
18
Reset
03.09.12
✎
16:59
|
(17) Один
|
|||
19
palpetrovich
03.09.12
✎
17:04
|
(18) проверял? ...вот к примеру, если-б я выполнял этот цикл "вруную", я-б вычислял постоянно ...я к чему это, я (может ошибочно) предпочитаю конструкцию
Количество = ?(тз1.Количество()>тз1.Количество(),тз1,тз2) Для Каждого стр из Количество Цикл |
|||
20
Reset
03.09.12
✎
17:12
|
(19) Да, многократно.
(19) Нет, не ошибочно. Тот или иной вариант может быть читабельнее в разных случаях. еще 1 ошибку нашел в (11). Вот так вроде работоспособно [не проверял :D] тзНовая=?(тз1.Количество()>тз2.Количество(),тз1,тз2).Скопировать(); Для Каждого стр из ?(тз1.Количество()>тз2.Количество(),тз2,тз1) Цикл ЗАполнитьЗначенияСвойств(тзНовая.Добавить(), стр); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |